Mercurial > projects > ldc
comparison gen/todebug.cpp @ 811:8e6135be6999
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.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 01 Dec 2008 02:10:16 +0100 |
parents | 340acf1535d0 |
children | 01d9ece9982a |
comparison
equal
deleted
inserted
replaced
810:67fcd9df8b79 | 811:8e6135be6999 |
---|---|
132 { | 132 { |
133 std::vector<LLConstant*> vals(6); | 133 std::vector<LLConstant*> vals(6); |
134 vals[0] = DBG_TAG(DW_TAG_compile_unit); | 134 vals[0] = DBG_TAG(DW_TAG_compile_unit); |
135 vals[1] = DBG_CAST(getDwarfAnchor(DW_TAG_compile_unit)); | 135 vals[1] = DBG_CAST(getDwarfAnchor(DW_TAG_compile_unit)); |
136 | 136 |
137 vals[2] = DtoConstUint(DW_LANG_C);// _D)); // doesn't seem to work | 137 if (global.params.symdebug == 2) |
138 vals[2] = DtoConstUint(DW_LANG_C); | |
139 else | |
140 vals[2] = DtoConstUint(DW_LANG_D); | |
138 vals[3] = DtoConstStringPtr(FileName::name(m->srcfile->name->toChars()), "llvm.metadata"); | 141 vals[3] = DtoConstStringPtr(FileName::name(m->srcfile->name->toChars()), "llvm.metadata"); |
139 std::string srcpath(FileName::path(m->srcfile->name->toChars())); | 142 std::string srcpath(FileName::path(m->srcfile->name->toChars())); |
140 if (!FileName::absolute(srcpath.c_str())) { | 143 if (!FileName::absolute(srcpath.c_str())) { |
141 llvm::sys::Path tmp = llvm::sys::Path::GetCurrentDirectory(); | 144 llvm::sys::Path tmp = llvm::sys::Path::GetCurrentDirectory(); |
142 tmp.appendComponent(srcpath); | 145 tmp.appendComponent(srcpath); |