summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-02-09 02:03:05 +0000
committerDouglas Gregor <dgregor@apple.com>2011-02-09 02:03:05 +0000
commit2575631c0f76753eb61a59461e214900de47be2a (patch)
tree48610fb93fbbbe5d7d2b3d61bea738437ab4a586 /clang/lib/CodeGen/CodeGenModule.cpp
parentc8ae55050dcf5becdb8a80b065ecabdd6ae59744 (diff)
downloadbcm5719-llvm-2575631c0f76753eb61a59461e214900de47be2a.tar.gz
bcm5719-llvm-2575631c0f76753eb61a59461e214900de47be2a.zip
When IRgen refers to a function declaration that is not a definition,
and we later find the definition, make sure that we add the definition (not the declaration) to the list of deferred definitions to emit. Fixes PR8864. Thanks to Nick Lewycky for testing this patch out llvm-svn: 125157
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 89aeeb6fc79..56bc31a8587 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -857,10 +857,10 @@ CodeGenModule::GetOrCreateLLVMFunction(llvm::StringRef MangledName,
if (isa<CXXRecordDecl>(FD->getLexicalDeclContext())) {
if (FD->isImplicit() && !ForVTable) {
assert(FD->isUsed() && "Sema didn't mark implicit function as used!");
- DeferredDeclsToEmit.push_back(D);
+ DeferredDeclsToEmit.push_back(D.getWithDecl(FD));
break;
} else if (FD->isThisDeclarationADefinition()) {
- DeferredDeclsToEmit.push_back(D);
+ DeferredDeclsToEmit.push_back(D.getWithDecl(FD));
break;
}
}
OpenPOWER on IntegriCloud