llvm-project/clang/test/CoverageMapping
Vedant Kumar f224d707df [Coverage] Don't emit mappings for functions in dependent contexts (fixes PR32679)
The coverage implementation marks functions which won't be emitted as
'deferred', so that it can emit empty coverage regions for them later
(once their linkages are known).

Functions in dependent contexts are an exception: if there isn't a full
instantiation of a function, it shouldn't be marked 'deferred'. We've
been breaking that rule without much consequence because we just ended
up with useless, extra, empty coverage mappings. With PR32679, this
behavior finally caused a crash, because clang marked a partial template
specialization as 'deferred', causing the MS mangler to choke in its
delayed-template-parsing mode:

  error: cannot mangle this template type parameter type yet
  (http://bugs.llvm.org/show_bug.cgi?id=32679)

Fix this by checking if a decl's context is a dependent context before
marking it 'deferred'.

Based on a patch by Adam Folwarczny!

Differential Revision: https://reviews.llvm.org/D32144

llvm-svn: 300723
2017-04-19 17:58:30 +00:00
..
Inputs Reapply [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. 2016-06-07 10:07:51 +00:00
abspath.cpp [Coverage] Attempt to appease a Windows builder 2016-07-22 00:25:09 +00:00
block-storage-starts-region.m [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
break.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
builtinmacro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
casts.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
classtemplate.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
comment-in-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
continue.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
control-flow-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
decl.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
header.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
if.cpp [Coverage] Support for C++17 if initializers 2016-10-14 23:38:16 +00:00
implicit-def-in-macro.m Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
include-macros.c [Lexer] Don't merge macro args from different macro files 2016-05-19 23:44:02 +00:00
includehell.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
ir.c Restrengthen tests relaxed in r259955 2016-02-17 00:58:13 +00:00
label.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
lambda.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
logical.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
loopmacro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
loops.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macro-expansion.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macro-expressions.cpp Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
macroception.c [Coverage] Suppress creating a code region if the same area is covered by an expansion region. 2016-08-31 07:04:16 +00:00
macroparams.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macroparams2.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
macros.c [Coverage] Suppress creating a code region if the same area is covered by an expansion region. 2016-08-31 07:04:16 +00:00
macroscopes.cpp [Coverage] Fix an issue where a coverage region might not be created for a macro containing a loop statement. 2016-05-04 15:38:26 +00:00
md.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
moremacros.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
nestedclass.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
objc.m Suppress uninteresting warnings in test/CoverageMapping, NFC. 2017-02-25 07:05:41 +00:00
pr32679.cpp [Coverage] Don't emit mappings for functions in dependent contexts (fixes PR32679) 2017-04-19 17:58:30 +00:00
preprocessor.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
return.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
switch.cpp [Coverage] Support for C++17 switch initializers 2016-10-14 23:38:13 +00:00
switchmacro.c [Coverage] The coverage region for switch covers the code after the switch. 2016-09-27 23:30:36 +00:00
system_macro.cpp [Coverage] Do not write out coverage mappings with zero entries 2016-07-26 00:24:59 +00:00
templates.cpp [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
test.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
trycatch.cpp [Coverage] Push a new region when handling CXXTryStmts 2016-06-22 19:57:58 +00:00
trymacro.cpp [Coverage] Push a new region when handling CXXTryStmts 2016-06-22 19:57:58 +00:00
unreachable-macro.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00
unused_function.cpp Reapply [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. 2016-06-07 10:07:51 +00:00
unused_names.c clang/test/CoverageMapping/unused_names.c: Relax an expression for targeting PECOFF. 2017-04-14 03:16:48 +00:00
while.c [PGO] cc1 option name change for profile instrumentation 2016-02-04 18:39:09 +00:00