forked from OSchip/llvm-project
DebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes version field
Summary: LLVM would generate DWARF with version 3 in the .debug_pubname and .debug_pubtypes version fields. This would lead SGI dwarfdump to fail parsing the DWARF with (in the instance of .debug_pubnames) would exit with: dwarfdump ERROR: dwarf_get_globals: DW_DLE_PUBNAMES_VERSION_ERROR (123) This fixes PR16950. Reviewers: echristo, dblaikie Reviewed By: echristo CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1454 llvm-svn: 188869
This commit is contained in:
parent
77df9cdd0b
commit
ed89b5c6e7
|
@ -56,7 +56,9 @@ enum llvm_dwarf_constants {
|
|||
|
||||
DW_TAG_user_base = 0x1000, // Recommended base for user tags.
|
||||
|
||||
DW_CIE_VERSION = 1 // Common frame information version.
|
||||
DW_CIE_VERSION = 1, // Common frame information version.
|
||||
DW_PUBTYPES_VERSION = 2, // Section version number for .debug_pubtypes.
|
||||
DW_PUBNAMES_VERSION = 2 // Section version number for .debug_pubnames.
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "llvm/MC/MCSymbol.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/Dwarf.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/FormattedStream.h"
|
||||
#include "llvm/Support/MD5.h"
|
||||
|
@ -2321,7 +2322,7 @@ void DwarfDebug::emitDebugPubnames() {
|
|||
Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("pubnames_begin", ID));
|
||||
|
||||
Asm->OutStreamer.AddComment("DWARF Version");
|
||||
Asm->EmitInt16(DwarfVersion);
|
||||
Asm->EmitInt16(dwarf::DW_PUBNAMES_VERSION);
|
||||
|
||||
Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
|
||||
Asm->EmitSectionOffset(Asm->GetTempSymbol(ISec->getLabelBeginName(), ID),
|
||||
|
@ -2368,7 +2369,7 @@ void DwarfDebug::emitDebugPubTypes() {
|
|||
TheCU->getUniqueID()));
|
||||
|
||||
if (Asm->isVerbose()) Asm->OutStreamer.AddComment("DWARF Version");
|
||||
Asm->EmitInt16(DwarfVersion);
|
||||
Asm->EmitInt16(dwarf::DW_PUBTYPES_VERSION);
|
||||
|
||||
Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
|
||||
const MCSection *ISec = Asm->getObjFileLowering().getDwarfInfoSection();
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
; Skip the output to the header of the pubnames section.
|
||||
; CHECK: debug_pubnames
|
||||
; CHECK: Version: 2
|
||||
|
||||
; Check for each name in the output.
|
||||
; CHECK: global_namespace_variable
|
||||
|
|
Loading…
Reference in New Issue