Workaround for templates

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30927 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey 2006-10-13 13:02:19 +00:00
parent 774f85465e
commit 339ec4cb15

View 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();