[MCDwarf] Delete unneeded DW_AT_unspecified_parameters

This commit is contained in:
Fangrui Song 2020-05-24 22:30:59 -07:00
parent 20e9fc55fe
commit 1b79509f97
3 changed files with 4 additions and 30 deletions

View File

@ -841,19 +841,13 @@ static void EmitGenDwarfAbbrev(MCStreamer *MCOS) {
// DW_TAG_label DIE abbrev (2).
MCOS->emitULEB128IntValue(2);
MCOS->emitULEB128IntValue(dwarf::DW_TAG_label);
MCOS->emitInt8(dwarf::DW_CHILDREN_yes);
MCOS->emitInt8(dwarf::DW_CHILDREN_no);
EmitAbbrev(MCOS, dwarf::DW_AT_name, dwarf::DW_FORM_string);
EmitAbbrev(MCOS, dwarf::DW_AT_decl_file, dwarf::DW_FORM_data4);
EmitAbbrev(MCOS, dwarf::DW_AT_decl_line, dwarf::DW_FORM_data4);
EmitAbbrev(MCOS, dwarf::DW_AT_low_pc, dwarf::DW_FORM_addr);
EmitAbbrev(MCOS, 0, 0);
// DW_TAG_unspecified_parameters DIE abbrev (3).
MCOS->emitULEB128IntValue(3);
MCOS->emitULEB128IntValue(dwarf::DW_TAG_unspecified_parameters);
MCOS->emitInt8(dwarf::DW_CHILDREN_no);
EmitAbbrev(MCOS, 0, 0);
// Terminate the abbreviations for this compilation unit.
MCOS->emitInt8(0);
}
@ -1085,12 +1079,6 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
const MCExpr *AT_low_pc = MCSymbolRefExpr::create(Entry.getLabel(),
MCSymbolRefExpr::VK_None, context);
MCOS->emitValue(AT_low_pc, AddrSize);
// The DW_TAG_unspecified_parameters DIE abbrev (3).
MCOS->emitULEB128IntValue(3);
// Add the NULL DIE terminating the DW_TAG_unspecified_parameters DIE's.
MCOS->emitInt8(0);
}
// Add the NULL DIE terminating the Compile Unit DIE's.

View File

@ -41,10 +41,10 @@ b:
// DWARF4: DW_AT_ranges [DW_FORM_sec_offset] (0x00000000
// DWARF5: DW_AT_ranges [DW_FORM_sec_offset] (0x0000000c
// DWARF: 0x{{[0-9a-f]+}}: DW_TAG_label [2] *
// DWARF: 0x{{[0-9a-f]+}}: DW_TAG_label [2]
// DWARF-NEXT: DW_AT_name [DW_FORM_string] ("a")
// DWARF: 0x{{[0-9a-f]+}}: DW_TAG_label [2] *
// DWARF: 0x{{[0-9a-f]+}}: DW_TAG_label [2]
// DWARF-NEXT: DW_AT_name [DW_FORM_string] ("b")

View File

@ -25,14 +25,12 @@ _x: .long 1
// CHECK: DW_AT_producer DW_FORM_string
// CHECK: DW_AT_language DW_FORM_data2
// CHECK: [2] DW_TAG_label DW_CHILDREN_yes
// CHECK: [2] DW_TAG_label DW_CHILDREN_no
// CHECK: DW_AT_name DW_FORM_string
// CHECK: DW_AT_decl_file DW_FORM_data4
// CHECK: DW_AT_decl_line DW_FORM_data4
// CHECK: DW_AT_low_pc DW_FORM_addr
// CHECK: [3] DW_TAG_unspecified_parameters DW_CHILDREN_no
// CHECK: .debug_info contents:
@ -53,30 +51,18 @@ _x: .long 1
// CHECK: DW_AT_decl_line (5)
// CHECK: DW_AT_low_pc (0x0000000000000000)
// CHECK: DW_TAG_unspecified_parameters
// CHECK: NULL
// CHECK: DW_TAG_label
// CHECK: DW_AT_name ("foo")
// CHECK: DW_AT_decl_file ([[FILE]])
// CHECK: DW_AT_decl_line (9)
// CHECK: DW_AT_low_pc (0x0000000000000007)
// CHECK: DW_TAG_unspecified_parameters
// CHECK: NULL
// CHECK: DW_TAG_label
// CHECK: DW_AT_name ("baz")
// CHECK: DW_AT_decl_file ([[FILE]])
// CHECK: DW_AT_decl_line (10)
// CHECK: DW_AT_low_pc (0x0000000000000007)
// CHECK: DW_TAG_unspecified_parameters
// CHECK: NULL
// CHECK: NULL
// CHECK: .debug_aranges contents: