Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50848 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/ModuleBuilder.cpp b/lib/CodeGen/ModuleBuilder.cpp
index 53ee2e4..6387c62 100644
--- a/lib/CodeGen/ModuleBuilder.cpp
+++ b/lib/CodeGen/ModuleBuilder.cpp
@@ -34,13 +34,15 @@
     const llvm::TargetData *TD;
     ASTContext *Ctx;
     const LangOptions &Features;
+    bool GenerateDebugInfo;
   protected:
     llvm::Module *&M;
     CodeGen::CodeGenModule *Builder;
   public:
     CodeGenerator(Diagnostic &diags, const LangOptions &LO,
-                  llvm::Module *&DestModule)
-    : Diags(diags), Features(LO), M(DestModule) {}
+                  llvm::Module *&DestModule, bool DebugInfoFlag)
+    : Diags(diags), Features(LO), GenerateDebugInfo(DebugInfoFlag),
+    M(DestModule) {}
     
     ~CodeGenerator() {
       delete Builder;
@@ -52,7 +54,8 @@
       M->setTargetTriple(Ctx->Target.getTargetTriple());
       M->setDataLayout(Ctx->Target.getTargetDescription());
       TD = new llvm::TargetData(Ctx->Target.getTargetDescription());
-      Builder = new CodeGen::CodeGenModule(Context, Features, *M, *TD, Diags);
+      Builder = new CodeGen::CodeGenModule(Context, Features, *M, *TD, Diags,
+                                           GenerateDebugInfo);
     }
     
     virtual void HandleTopLevelDecl(Decl *D) {
@@ -103,7 +106,8 @@
 
 ASTConsumer *clang::CreateLLVMCodeGen(Diagnostic &Diags, 
                                       const LangOptions &Features,
-                                      llvm::Module *&DestModule) {
-  return new CodeGenerator(Diags, Features, DestModule);
+                                      llvm::Module *&DestModule,
+                                      bool GenerateDebugInfo) {
+  return new CodeGenerator(Diags, Features, DestModule, GenerateDebugInfo);
 }