diff options
author | Nate Begeman <natebegeman@mac.com> | 2008-04-20 06:29:50 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2008-04-20 06:29:50 +0000 |
commit | 8e8d498d34744e90ef02d0ccd01576a95aab46c9 (patch) | |
tree | 282d0d0702009eea7ee67bd35c7d6057089098b4 /clang/lib/CodeGen/CodeGenModule.h | |
parent | 470ab00c76a0c9a8043c6b328947f6fb61cf95cc (diff) | |
download | bcm5719-llvm-8e8d498d34744e90ef02d0ccd01576a95aab46c9.tar.gz bcm5719-llvm-8e8d498d34744e90ef02d0ccd01576a95aab46c9.zip |
Only generate code for static functions and global variables that are actually used.
Warn about unused static functions and variables.
This fixes PR1998.
llvm-svn: 49987
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h index d40e35e00ce..aa676d6fdc6 100644 --- a/clang/lib/CodeGen/CodeGenModule.h +++ b/clang/lib/CodeGen/CodeGenModule.h @@ -59,6 +59,8 @@ class CodeGenModule { llvm::Function *MemCpyFn; llvm::Function *MemSetFn; llvm::DenseMap<const Decl*, llvm::Constant*> GlobalDeclMap; + std::vector<const Decl*> StaticDecls; + std::vector<llvm::Constant*> GlobalCtors; std::vector<llvm::Constant*> Annotations; @@ -103,10 +105,12 @@ public: void EmitGlobalCtors(void); void AddAnnotation(llvm::Constant *C) { Annotations.push_back(C); } void EmitAnnotations(void); + void EmitStatics(void); void EmitObjCMethod(const ObjCMethodDecl *OMD); void EmitFunction(const FunctionDecl *FD); void EmitGlobalVar(const VarDecl *D); + void EmitGlobalVarInit(const VarDecl *D); void EmitGlobalVarDeclarator(const VarDecl *D); void UpdateCompletedType(const TagDecl *D); llvm::Constant *EmitGlobalInit(const Expr *E); |