encode the version of the objc runtime into the dwarf compile unit.  rdar://6848435,
several other fixes coming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70616 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp
index c8d3d63..6f3ecdb 100644
--- a/lib/CodeGen/CGDebugInfo.cpp
+++ b/lib/CodeGen/CGDebugInfo.cpp
@@ -103,13 +103,20 @@
     LangTag = llvm::dwarf::DW_LANG_C89;
   }
 
+  std::string Producer = "clang";// FIXME: clang version.
+  bool isOptimized = false; // FIXME: Encode optimization level.
+  const char *Flags = "";   // FIXME: Encode command line options.
+
+  // Figure out which version of the ObjC runtime we have.
+  unsigned RuntimeVers = 0;
+  if (LO.ObjC1)
+    RuntimeVers = LO.ObjCNonFragileABI ? 2 : 1;
+  
   // Create new compile unit.
-  // FIXME: Do not know how to get clang version yet.
-  // FIXME: Encode command line options.
-  // FIXME: Encode optimization level.
   return Unit = DebugFactory.CreateCompileUnit(LangTag, AbsFileName.getLast(),
                                                AbsFileName.getDirname(), 
-                                               "clang", isMain);
+                                               Producer, isMain, isOptimized,
+                                               Flags, RuntimeVers);
 }
 
 /// CreateType - Get the Basic type from the cache or create a new