most of this is plumbing to get CompileOptions down into 
CodeGenModule.  Once there, add a new NoCommon option to
it and implement -fno-common.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67735 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index a327748..228020c 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -14,15 +14,13 @@
 #ifndef CLANG_CODEGEN_CODEGENMODULE_H
 #define CLANG_CODEGEN_CODEGENMODULE_H
 
-#include "CodeGenTypes.h"
 #include "clang/AST/Attr.h"
+#include "CGBlocks.h"
+#include "CGCall.h"
+#include "CodeGenTypes.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringSet.h"
-
-#include "CGBlocks.h"
-#include "CGCall.h"
-
 #include <list>
 
 namespace llvm {
@@ -52,6 +50,7 @@
   class ValueDecl;
   class VarDecl;
   class LangOptions;
+  class CompileOptions;
   class Diagnostic;
   class AnnotateAttr;
 
@@ -71,6 +70,7 @@
 
   ASTContext &Context;
   const LangOptions &Features;
+  const CompileOptions &CompileOpts;
   llvm::Module &TheModule;
   const llvm::TargetData &TheTargetData;
   Diagnostic &Diags;
@@ -138,9 +138,8 @@
   /// strings. This value has type int * but is actually an Obj-C class pointer.
   llvm::Constant *CFConstantStringClassRef;
 public:
-  CodeGenModule(ASTContext &C, const LangOptions &Features, llvm::Module &M,
-                const llvm::TargetData &TD, Diagnostic &Diags,
-                bool GenerateDebugInfo);
+  CodeGenModule(ASTContext &C, const CompileOptions &CompileOpts,
+                llvm::Module &M, const llvm::TargetData &TD, Diagnostic &Diags);
 
   ~CodeGenModule();