Workaround for templates
authorJim Laskey <jlaskey@mac.com>
Fri, 13 Oct 2006 13:02:19 +0000 (13:02 +0000)
committerJim Laskey <jlaskey@mac.com>
Fri, 13 Oct 2006 13:02:19 +0000 (13:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30927 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/DwarfWriter.cpp

index aa393f3678486e494b6fa18fc277042caf89a90c..9065607ca5e7f1b11cc8ca72702daaae7fec7737 100644 (file)
@@ -1267,6 +1267,7 @@ DIE *DwarfWriter::NewType(DIE *Context, TypeDesc *TyDesc, CompileUnit *Unit) {
   // Type DIE result.
   DIE *Ty = NULL;
 
+  // FIXME - Not sure why programs and variables are coming through here.
   // Short cut for handling subprogram types (not really a TyDesc.)
   if (SubprogramDesc *SubprogramTy = dyn_cast<SubprogramDesc>(TyDesc)) {
     Slot = Ty = new DIE(DW_TAG_pointer_type);
@@ -1275,6 +1276,15 @@ DIE *DwarfWriter::NewType(DIE *Context, TypeDesc *TyDesc, CompileUnit *Unit) {
     Context->AddChild(Ty);
     return Slot;
   }
+  // Short cut for handling global variable types (not really a TyDesc.)
+  if (GlobalVariableDesc *GlobalVariableTy =
+                                         dyn_cast<GlobalVariableDesc>(TyDesc)) {
+    Slot = Ty = new DIE(DW_TAG_pointer_type);
+    Ty->AddUInt(DW_AT_byte_size, 0, TAI->getAddressSize());
+    Ty->AddString(DW_AT_name, DW_FORM_string, GlobalVariableTy->getName());
+    Context->AddChild(Ty);
+    return Slot;
+  }
   
   // Get core information.
   const std::string &Name = TyDesc->getName();