summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2008-04-20 06:29:50 +0000
committerNate Begeman <natebegeman@mac.com>2008-04-20 06:29:50 +0000
commit8e8d498d34744e90ef02d0ccd01576a95aab46c9 (patch)
tree282d0d0702009eea7ee67bd35c7d6057089098b4 /clang/lib/CodeGen/CodeGenModule.h
parent470ab00c76a0c9a8043c6b328947f6fb61cf95cc (diff)
downloadbcm5719-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.h4
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);
OpenPOWER on IntegriCloud