mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
Remove the darwin gdb option, that version of gdb is now dead and
the rest of the compatibility should be done on a dwarf-N level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189903 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
04031a6c22
commit
0a69049b62
@ -100,7 +100,7 @@ int64_t CompileUnit::getDefaultLowerBound() const {
|
|||||||
|
|
||||||
/// addFlag - Add a flag that is true.
|
/// addFlag - Add a flag that is true.
|
||||||
void CompileUnit::addFlag(DIE *Die, uint16_t Attribute) {
|
void CompileUnit::addFlag(DIE *Die, uint16_t Attribute) {
|
||||||
if (!DD->useDarwinGDBCompat())
|
if (DD->getDwarfVersion() >= 4)
|
||||||
Die->addValue(Attribute, dwarf::DW_FORM_flag_present,
|
Die->addValue(Attribute, dwarf::DW_FORM_flag_present,
|
||||||
DIEIntegerOne);
|
DIEIntegerOne);
|
||||||
else
|
else
|
||||||
@ -1242,17 +1242,6 @@ DIE *CompileUnit::getOrCreateSubprogramDIE(DISubprogram SP) {
|
|||||||
// Add function template parameters.
|
// Add function template parameters.
|
||||||
addTemplateParams(*SPDie, SP.getTemplateParams());
|
addTemplateParams(*SPDie, SP.getTemplateParams());
|
||||||
|
|
||||||
// Unfortunately this code needs to stay here instead of below the
|
|
||||||
// AT_specification code in order to work around a bug in older
|
|
||||||
// gdbs that requires the linkage name to resolve multiple template
|
|
||||||
// functions.
|
|
||||||
// TODO: Remove this set of code when we get rid of the old gdb
|
|
||||||
// compatibility.
|
|
||||||
StringRef LinkageName = SP.getLinkageName();
|
|
||||||
if (!LinkageName.empty() && DD->useDarwinGDBCompat())
|
|
||||||
addString(SPDie, dwarf::DW_AT_MIPS_linkage_name,
|
|
||||||
GlobalValue::getRealLinkageName(LinkageName));
|
|
||||||
|
|
||||||
// If this DIE is going to refer declaration info using AT_specification
|
// If this DIE is going to refer declaration info using AT_specification
|
||||||
// then there is no need to add other attributes.
|
// then there is no need to add other attributes.
|
||||||
if (DeclDie) {
|
if (DeclDie) {
|
||||||
@ -1264,7 +1253,8 @@ DIE *CompileUnit::getOrCreateSubprogramDIE(DISubprogram SP) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add the linkage name if we have one.
|
// Add the linkage name if we have one.
|
||||||
if (!LinkageName.empty() && !DD->useDarwinGDBCompat())
|
StringRef LinkageName = SP.getLinkageName();
|
||||||
|
if (!LinkageName.empty())
|
||||||
addString(SPDie, dwarf::DW_AT_MIPS_linkage_name,
|
addString(SPDie, dwarf::DW_AT_MIPS_linkage_name,
|
||||||
GlobalValue::getRealLinkageName(LinkageName));
|
GlobalValue::getRealLinkageName(LinkageName));
|
||||||
|
|
||||||
@ -1459,21 +1449,15 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
|
|||||||
} else {
|
} else {
|
||||||
addBlock(VariableDIE, dwarf::DW_AT_location, 0, Block);
|
addBlock(VariableDIE, dwarf::DW_AT_location, 0, Block);
|
||||||
}
|
}
|
||||||
// Add linkage name.
|
// Add the linkage name.
|
||||||
StringRef LinkageName = GV.getLinkageName();
|
StringRef LinkageName = GV.getLinkageName();
|
||||||
if (!LinkageName.empty()) {
|
if (!LinkageName.empty())
|
||||||
// From DWARF4: DIEs to which DW_AT_linkage_name may apply include:
|
// From DWARF4: DIEs to which DW_AT_linkage_name may apply include:
|
||||||
// TAG_common_block, TAG_constant, TAG_entry_point, TAG_subprogram and
|
// TAG_common_block, TAG_constant, TAG_entry_point, TAG_subprogram and
|
||||||
// TAG_variable.
|
// TAG_variable.
|
||||||
addString(IsStaticMember && VariableSpecDIE ?
|
addString(IsStaticMember && VariableSpecDIE ?
|
||||||
VariableSpecDIE : VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
|
VariableSpecDIE : VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
|
||||||
GlobalValue::getRealLinkageName(LinkageName));
|
GlobalValue::getRealLinkageName(LinkageName));
|
||||||
// In compatibility mode with older gdbs we put the linkage name on both
|
|
||||||
// the TAG_variable DIE and on the TAG_member DIE.
|
|
||||||
if (IsStaticMember && VariableSpecDIE && DD->useDarwinGDBCompat())
|
|
||||||
addString(VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
|
|
||||||
GlobalValue::getRealLinkageName(LinkageName));
|
|
||||||
}
|
|
||||||
} else if (const ConstantInt *CI =
|
} else if (const ConstantInt *CI =
|
||||||
dyn_cast_or_null<ConstantInt>(GV.getConstant())) {
|
dyn_cast_or_null<ConstantInt>(GV.getConstant())) {
|
||||||
// AT_const_value was added when the static member was created. To avoid
|
// AT_const_value was added when the static member was created. To avoid
|
||||||
|
@ -84,14 +84,6 @@ DwarfAccelTables("dwarf-accel-tables", cl::Hidden,
|
|||||||
clEnumVal(Disable, "Disabled"), clEnumValEnd),
|
clEnumVal(Disable, "Disabled"), clEnumValEnd),
|
||||||
cl::init(Default));
|
cl::init(Default));
|
||||||
|
|
||||||
static cl::opt<DefaultOnOff>
|
|
||||||
DarwinGDBCompat("darwin-gdb-compat", cl::Hidden,
|
|
||||||
cl::desc("Compatibility with Darwin gdb."),
|
|
||||||
cl::values(clEnumVal(Default, "Default for platform"),
|
|
||||||
clEnumVal(Enable, "Enabled"),
|
|
||||||
clEnumVal(Disable, "Disabled"), clEnumValEnd),
|
|
||||||
cl::init(Default));
|
|
||||||
|
|
||||||
static cl::opt<DefaultOnOff>
|
static cl::opt<DefaultOnOff>
|
||||||
SplitDwarf("split-dwarf", cl::Hidden,
|
SplitDwarf("split-dwarf", cl::Hidden,
|
||||||
cl::desc("Output prototype dwarf split debug info."),
|
cl::desc("Output prototype dwarf split debug info."),
|
||||||
@ -206,11 +198,6 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
|||||||
// and handle split dwarf.
|
// and handle split dwarf.
|
||||||
bool IsDarwin = Triple(A->getTargetTriple()).isOSDarwin();
|
bool IsDarwin = Triple(A->getTargetTriple()).isOSDarwin();
|
||||||
|
|
||||||
if (DarwinGDBCompat == Default)
|
|
||||||
IsDarwinGDBCompat = IsDarwin;
|
|
||||||
else
|
|
||||||
IsDarwinGDBCompat = DarwinGDBCompat == Enable;
|
|
||||||
|
|
||||||
if (DwarfAccelTables == Default)
|
if (DwarfAccelTables == Default)
|
||||||
HasDwarfAccelTables = IsDarwin;
|
HasDwarfAccelTables = IsDarwin;
|
||||||
else
|
else
|
||||||
@ -1898,10 +1885,10 @@ void DwarfDebug::emitSectionLabels() {
|
|||||||
DwarfLineSectionSym =
|
DwarfLineSectionSym =
|
||||||
emitSectionSym(Asm, TLOF.getDwarfLineSection(), "section_line");
|
emitSectionSym(Asm, TLOF.getDwarfLineSection(), "section_line");
|
||||||
emitSectionSym(Asm, TLOF.getDwarfLocSection());
|
emitSectionSym(Asm, TLOF.getDwarfLocSection());
|
||||||
if (HasDwarfPubSections)
|
if (HasDwarfPubSections) {
|
||||||
emitSectionSym(Asm, TLOF.getDwarfPubNamesSection());
|
emitSectionSym(Asm, TLOF.getDwarfPubNamesSection());
|
||||||
if (useDarwinGDBCompat() || HasDwarfPubSections)
|
|
||||||
emitSectionSym(Asm, TLOF.getDwarfPubTypesSection());
|
emitSectionSym(Asm, TLOF.getDwarfPubTypesSection());
|
||||||
|
}
|
||||||
DwarfStrSectionSym =
|
DwarfStrSectionSym =
|
||||||
emitSectionSym(Asm, TLOF.getDwarfStrSection(), "info_string");
|
emitSectionSym(Asm, TLOF.getDwarfStrSection(), "info_string");
|
||||||
if (useSplitDwarf()) {
|
if (useSplitDwarf()) {
|
||||||
|
@ -151,7 +151,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
|||||||
; DARWINP: DW_AT_external
|
; DARWINP: DW_AT_external
|
||||||
; DARWINP: DW_AT_declaration
|
; DARWINP: DW_AT_declaration
|
||||||
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x03)
|
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x03)
|
||||||
; DARWINP: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1aE"
|
|
||||||
; DARWINP: DW_TAG_member
|
; DARWINP: DW_TAG_member
|
||||||
; DARWINP-NEXT: DW_AT_name {{.*}} "const_a"
|
; DARWINP-NEXT: DW_AT_name {{.*}} "const_a"
|
||||||
; DARWINP: DW_AT_external
|
; DARWINP: DW_AT_external
|
||||||
@ -161,7 +160,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
|||||||
; DARWINP: 0x[[DECL_B:[0-9a-f]+]]: DW_TAG_member
|
; DARWINP: 0x[[DECL_B:[0-9a-f]+]]: DW_TAG_member
|
||||||
; DARWINP-NEXT: DW_AT_name {{.*}} "b"
|
; DARWINP-NEXT: DW_AT_name {{.*}} "b"
|
||||||
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
||||||
; DARWINP: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1bE"
|
|
||||||
; DARWINP: DW_TAG_member
|
; DARWINP: DW_TAG_member
|
||||||
; DARWINP-NEXT: DW_AT_name {{.*}} "const_b"
|
; DARWINP-NEXT: DW_AT_name {{.*}} "const_b"
|
||||||
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x02)
|
||||||
@ -169,7 +167,6 @@ declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
|
|||||||
; DARWINP: 0x[[DECL_C:[0-9a-f]+]]: DW_TAG_member
|
; DARWINP: 0x[[DECL_C:[0-9a-f]+]]: DW_TAG_member
|
||||||
; DARWINP-NEXT: DW_AT_name {{.*}} "c"
|
; DARWINP-NEXT: DW_AT_name {{.*}} "c"
|
||||||
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
||||||
; DARWINP: DW_AT_MIPS_linkage_name {{.*}} "_ZN1C1cE"
|
|
||||||
; DARWINP: DW_TAG_member
|
; DARWINP: DW_TAG_member
|
||||||
; DARWINP-NEXT: DW_AT_name {{.*}} "const_c"
|
; DARWINP-NEXT: DW_AT_name {{.*}} "const_c"
|
||||||
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
; DARWINP: DW_AT_accessibility [DW_FORM_data1] (0x01)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
; RUN: llc -mtriple=x86_64-macosx -darwin-gdb-compat=Disable %s -o %t -filetype=obj
|
; RUN: llc -mtriple=x86_64-macosx %s -o %t -filetype=obj
|
||||||
; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
|
; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
|
||||||
|
|
||||||
; CHECK: DW_TAG_subprogram [9] *
|
; CHECK: DW_TAG_subprogram [9] *
|
||||||
|
Loading…
Reference in New Issue
Block a user