Fixed ModuleInfo generation to no longer use the ModuleInfo class' default initializer for types/defaults, it's unsafe as initializers don't necesarily match the "formal" type. There might be explicit padding.

Changed -g switch to emit DW_LANG_D debug info, make demangling work with a patched GDB, still more work to do for full support of D's Dwarf extensions.
Added getNullValue helper method.
This commit is contained in:
Tomas Lindquist Olsen 2008-12-01 02:10:16 +01:00
parent 8553fc9aa0
commit e0972b0793
6 changed files with 51 additions and 35 deletions

View file

@ -134,7 +134,10 @@ static LLGlobalVariable* dwarfCompileUnit(Module* m)
vals[0] = DBG_TAG(DW_TAG_compile_unit);
vals[1] = DBG_CAST(getDwarfAnchor(DW_TAG_compile_unit));
vals[2] = DtoConstUint(DW_LANG_C);// _D)); // doesn't seem to work
if (global.params.symdebug == 2)
vals[2] = DtoConstUint(DW_LANG_C);
else
vals[2] = DtoConstUint(DW_LANG_D);
vals[3] = DtoConstStringPtr(FileName::name(m->srcfile->name->toChars()), "llvm.metadata");
std::string srcpath(FileName::path(m->srcfile->name->toChars()));
if (!FileName::absolute(srcpath.c_str())) {