From 418b6e875f844261064c5dd43e76cb401117ac74 Mon Sep 17 00:00:00 2001 From: Gordon Henriksen Date: Sun, 17 Aug 2008 16:18:50 +0000 Subject: [PATCH] Don't instantiate GC metadata for declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54895 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/GCMetadata.cpp | 2 ++ lib/CodeGen/GCStrategy.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/CodeGen/GCMetadata.cpp b/lib/CodeGen/GCMetadata.cpp index c02a73b7080..0b5c6f0662c 100644 --- a/lib/CodeGen/GCMetadata.cpp +++ b/lib/CodeGen/GCMetadata.cpp @@ -99,7 +99,9 @@ getOrCreateCollector(const Module *M, const std::string &Name) { } CollectorMetadata &CollectorModuleMetadata::get(const Function &F) { + assert(!F.isDeclaration() && "Can only get GCFunctionInfo for a definition!"); assert(F.hasCollector()); + function_map_type::iterator I = Map.find(&F); if (I != Map.end()) return *I->second; diff --git a/lib/CodeGen/GCStrategy.cpp b/lib/CodeGen/GCStrategy.cpp index 629a2e13dee..f5cb9ab6312 100644 --- a/lib/CodeGen/GCStrategy.cpp +++ b/lib/CodeGen/GCStrategy.cpp @@ -144,7 +144,7 @@ bool LowerIntrinsics::doInitialization(Module &M) { CollectorModuleMetadata *CMM = getAnalysisToUpdate(); assert(CMM && "LowerIntrinsics didn't require CollectorModuleMetadata!?"); for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->hasCollector()) + if (!I->isDeclaration() && I->hasCollector()) CMM->get(*I); // Instantiate the Collector. bool MadeChange = false; -- 2.34.1