-
Notifications
You must be signed in to change notification settings - Fork 12.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MC][ELF] Do not error on parsing .debug_* section directive for MIPS
MIPS .debug_* sections should have SHT_MIPS_DWARF section type to distinguish among sections contain DWARF and ECOFF debug formats, but in assembly files these sections have SHT_PROGBITS (@progbits) type. Now assembler shows 'changed section type for ...' error when parsing `.section .debug_*,"",@progbits` directive for MIPS targets. The same problem exists for x86-64 target and this patch extends workaround implemented in D76151. The patch adds one more case when assembler ignores section types mismatch after `SwitchSection()` call. Differential Revision: https://reviews.llvm.org/D107707
- Loading branch information
Showing
2 changed files
with
56 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,42 @@ | ||
# RUN: llvm-mc -filetype=obj -triple=mips-linux-gnu -g %s -o - \ | ||
# RUN: | llvm-readobj -S - | FileCheck %s | ||
|
||
# MIPS .debug_* sections should have SHT_MIPS_DWARF section type | ||
# to distinguish among sections contain DWARF and ECOFF debug formats, | ||
# but in assembly files these sections have SHT_PROGBITS type. | ||
|
||
.section .debug_abbrev,"",@progbits | ||
.section .debug_addr,"",@progbits | ||
.section .debug_aranges,"",@progbits | ||
.section .debug_info,"",@progbits | ||
.section .debug_line,"",@progbits | ||
.section .debug_loclists,"",@progbits | ||
.section .debug_pubnames,"",@progbits | ||
.section .debug_pubtypes,"",@progbits | ||
.section .debug_ranges,"",@progbits | ||
.section .debug_rnglists,"",@progbits | ||
.section .debug_str,"MS",@progbits,1 | ||
|
||
# CHECK: Section { | ||
# CHECK: Name: .debug_abbrev | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_addr | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_aranges | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_info | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_line | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF (0x7000001E) | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_loclists | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_pubnames | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_pubtypes | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_ranges | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_rnglists | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF | ||
# CHECK: Name: .debug_str | ||
# CHECK-NEXT: Type: SHT_MIPS_DWARF |