DwarfLineSectionSym =
emitSectionSym(Asm, TLOF.getDwarfLineSection(), "section_line");
emitSectionSym(Asm, TLOF.getDwarfLocSection());
- if (HasDwarfPubSections) {
- emitSectionSym(Asm, TLOF.getDwarfPubNamesSection());
- emitSectionSym(Asm, TLOF.getDwarfPubTypesSection());
- } else if (GenerateGnuPubSections) {
+ if (GenerateGnuPubSections) {
emitSectionSym(Asm, TLOF.getDwarfGnuPubNamesSection());
emitSectionSym(Asm, TLOF.getDwarfGnuPubTypesSection());
+ } else if (HasDwarfPubSections) {
+ emitSectionSym(Asm, TLOF.getDwarfPubNamesSection());
+ emitSectionSym(Asm, TLOF.getDwarfPubTypesSection());
}
DwarfStrSectionSym =
case dwarf::DW_TAG_structure_type:
case dwarf::DW_TAG_union_type:
case dwarf::DW_TAG_enumeration_type:
+ return dwarf::PubIndexEntryDescriptor(
+ dwarf::GIEK_TYPE, CU->getLanguage() != dwarf::DW_LANG_C_plus_plus
+ ? dwarf::GIEL_STATIC
+ : dwarf::GIEL_EXTERNAL);
case dwarf::DW_TAG_typedef:
case dwarf::DW_TAG_base_type:
case dwarf::DW_TAG_subrange_type:
void DwarfDebug::emitDebugPubTypes(bool GnuStyle) {
const MCSection *ISec = Asm->getObjFileLowering().getDwarfInfoSection();
- const MCSection *PSec = Asm->getObjFileLowering().getDwarfPubTypesSection();
+ const MCSection *PSec =
+ GnuStyle ? Asm->getObjFileLowering().getDwarfGnuPubTypesSection()
+ : Asm->getObjFileLowering().getDwarfPubTypesSection();
for (DenseMap<const MDNode *, CompileUnit *>::iterator I = CUMap.begin(),
E = CUMap.end();
; int global_namespace_variable = 1;
; }
-
+; ASM: .section .debug_gnu_pubnames
; ASM: .byte 32 # Kind: VARIABLE, EXTERNAL
+; ASM: .section .debug_gnu_pubtypes
+; ASM: .byte 16 # Kind: TYPE, EXTERNAL
+
; CHECK: .debug_info contents:
; CHECK: 0x00000046: DW_TAG_subprogram
; CHECK-NEXT: DW_AT_MIPS_linkage_name