InstrProf: Fix a misuse of the FunctionDecl API when generating coverage
This was calling FD->hasBody(), meaning "Does the function that this decl refers to have a body?", rather than FD->doesThisDeclarationHaveABody(), meaning "Is this decl a non-deleted definition?". We might want to consider renaming these APIs :/ llvm-svn: 243360
This commit is contained in:
parent
80414569b8
commit
203f09223b
|
@ -3406,7 +3406,7 @@ void CodeGenModule::AddDeferredUnusedCoverageMapping(Decl *D) {
|
|||
case Decl::ObjCMethod:
|
||||
case Decl::CXXConstructor:
|
||||
case Decl::CXXDestructor: {
|
||||
if (!cast<FunctionDecl>(D)->hasBody())
|
||||
if (!cast<FunctionDecl>(D)->doesThisDeclarationHaveABody())
|
||||
return;
|
||||
auto I = DeferredEmptyCoverageMappingDecls.find(D);
|
||||
if (I == DeferredEmptyCoverageMappingDecls.end())
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
// Ensure that declarations without definitions don't have maps emitted for them
|
||||
|
||||
// RUN: %clang_cc1 -fprofile-instr-generate -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only %s > %t
|
||||
// FileCheck -input-file %t %s
|
||||
// RUN: FileCheck -check-prefix BAR -input-file %t %s
|
||||
|
||||
// FOO: foo:
|
||||
// FOO-NOT: foo:
|
||||
inline int foo() { return 0; }
|
||||
extern inline int foo();
|
||||
|
||||
// BAR: bar:
|
||||
// BAR-NOT: bar:
|
||||
int bar() { return 0; }
|
||||
extern int bar();
|
Loading…
Reference in New Issue