Only generate code for static functions and global variables that are actually used.
Warn about unused static functions and variables.
This fixes PR1998.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49987 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index d40e35e..aa676d6 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -59,6 +59,8 @@
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 @@
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);