Construct a skeleton cu for each compile unit in the module, not just
authorEric Christopher <echristo@gmail.com>
Tue, 5 Feb 2013 07:32:03 +0000 (07:32 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 5 Feb 2013 07:32:03 +0000 (07:32 +0000)
for the first compile unit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174352 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 6b19c5a7519e82970b089dd6657731956592a0fd..967c149b53d10fa548b5c6d99a39fabb7fc61a83 100644 (file)
@@ -686,12 +686,12 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) {
   if (!FirstCU)
     FirstCU = NewCU;
 
-  // This should be a unique identifier when we want to build .dwp files.
-  if (useSplitDwarf())
+  if (useSplitDwarf()) {
+    // This should be a unique identifier when we want to build .dwp files.
     NewCU->addUInt(Die, dwarf::DW_AT_GNU_dwo_id, dwarf::DW_FORM_data8, 0);
-
-  if (useSplitDwarf() && !SkeletonCU)
-    SkeletonCU = constructSkeletonCU(N);
+    // Now construct the skeleton CU associated.
+    constructSkeletonCU(N);
+  }
 
   InfoHolder.addUnit(NewCU);
 
@@ -2477,6 +2477,9 @@ CompileUnit *DwarfDebug::constructSkeletonCU(const MDNode *N) {
   if (!CompilationDir.empty())
     NewCU->addLocalString(Die, dwarf::DW_AT_comp_dir, CompilationDir);
 
+  if (!SkeletonCU)
+    SkeletonCU = NewCU;
+
   SkeletonHolder.addUnit(NewCU);
 
   return NewCU;