File tree Expand file tree Collapse file tree 4 files changed +40
-5
lines changed Expand file tree Collapse file tree 4 files changed +40
-5
lines changed Original file line number Diff line number Diff line change @@ -949,16 +949,15 @@ bool ELFObjectFile<ELFT>::isSectionText(DataRefImpl Sec) const {
949949template <class ELFT >
950950bool ELFObjectFile<ELFT>::isSectionData(DataRefImpl Sec) const {
951951 const Elf_Shdr *EShdr = getSection (Sec);
952- return EShdr->sh_type == ELF::SHT_PROGBITS &&
953- EShdr->sh_flags & ELF::SHF_ALLOC &&
954- !( EShdr->sh_flags & ELF::SHF_EXECINSTR) ;
952+ return ( EShdr->sh_flags & ELF::SHF_ALLOC) &&
953+ !( EShdr->sh_flags & ELF::SHF_EXECINSTR) &&
954+ EShdr->sh_type != ELF::SHT_NOBITS ;
955955}
956956
957957template <class ELFT >
958958bool ELFObjectFile<ELFT>::isSectionBSS(DataRefImpl Sec) const {
959959 const Elf_Shdr *EShdr = getSection (Sec);
960- return EShdr->sh_flags & (ELF::SHF_ALLOC | ELF::SHF_WRITE) &&
961- EShdr->sh_type == ELF::SHT_NOBITS;
960+ return EShdr->sh_flags & ELF::SHF_ALLOC && EShdr->sh_type == ELF::SHT_NOBITS;
962961}
963962
964963template <class ELFT >
Original file line number Diff line number Diff line change 22# RUN: llvm-nm --no-sort %t | FileCheck %s
33
44# CHECK: b mybss_local
5+ # CHECK-NEXT: b mybss2_local
56# CHECK-NEXT: d mydata_local
7+ # CHECK-NEXT: d mydata2_local
68# CHECK-NEXT: d mytdata_local
79# CHECK-NEXT: B mybss_global
810# CHECK-NEXT: D mydata_global
@@ -18,17 +20,27 @@ Sections:
1820 - Name: mybss
1921 Type: SHT_NOBITS
2022 Flags: [ SHF_ALLOC, SHF_WRITE ]
23+ - Name: mybss2
24+ Type: SHT_NOBITS
25+ Flags: [ SHF_ALLOC ]
2126 - Name: mydata
2227 Type: SHT_PROGBITS
2328 Flags: [ SHF_ALLOC, SHF_WRITE ]
29+ - Name: mydata2
30+ Type: 0x1000
31+ Flags: [ SHF_ALLOC, SHF_WRITE ]
2432 - Name: mytdata
2533 Type: SHT_PROGBITS
2634 Flags: [ SHF_ALLOC, SHF_WRITE, SHF_TLS ]
2735Symbols:
2836 - Name: mybss_local
2937 Section: mybss
38+ - Name: mybss2_local
39+ Section: mybss2
3040 - Name: mydata_local
3141 Section: mydata
42+ - Name: mydata2_local
43+ Section: mydata2
3244 - Name: mytdata_local
3345 Section: mytdata
3446
Original file line number Diff line number Diff line change 44# CHECK: r myrodata0_local
55# CHECK-NEXT: r myrodata1_local
66# CHECK-NEXT: r myrodata2_local
7+ # CHECK-NEXT: r myrodata3_local
78# CHECK-NEXT: R myrodata0_global
89# CHECK-NEXT: R myrodata1_global
910# CHECK-NEXT: R myrodata2_global
11+ # CHECK-NEXT: R myrodata3_global
1012
1113!ELF
1214FileHeader:
@@ -24,13 +26,18 @@ Sections:
2426 - Name: myrodata2
2527 Type: SHT_PROGBITS
2628 Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ]
29+ - Name: myrodata3
30+ Type: 0x1000
31+ Flags: [ SHF_ALLOC ]
2732Symbols:
2833 - Name: myrodata0_local
2934 Section: myrodata0
3035 - Name: myrodata1_local
3136 Section: myrodata1
3237 - Name: myrodata2_local
3338 Section: myrodata2
39+ - Name: myrodata3_local
40+ Section: myrodata3
3441
3542 - Name: myrodata0_global
3643 Binding: STB_GLOBAL
@@ -41,3 +48,6 @@ Symbols:
4148 - Name: myrodata2_global
4249 Binding: STB_GLOBAL
4350 Section: myrodata2
51+ - Name: myrodata3_global
52+ Binding: STB_GLOBAL
53+ Section: myrodata3
Original file line number Diff line number Diff line change 1717# WHITESPACE-NEXT: {{^}} 4 .other 00000000 0000000000000000 0000000000000000 {{$}}
1818# WHITESPACE-NEXT: {{^}} 5 .debug_abbrev 00000000 0000000000000000 0000000000000000 DEBUG{{$}}
1919# WHITESPACE-NEXT: {{^}} 6 .debug_info 00000000 0000000000000000 0000000000000000 DATA, DEBUG{{$}}
20+ # WHITESPACE-NEXT: {{^}} 7 .mydata 00000000 0000000000000000 0000000000000000 DATA{{$}}
21+ # WHITESPACE-NEXT: {{^}} 8 .bss1 00000000 0000000000000000 0000000000000000 BSS{{$}}
22+ # WHITESPACE-NEXT: {{^}} 9 .nonalloc.bss 00000000 0000000000000000 0000000000000000 {{$}}
2023
2124# WHITESPACE-NO-LMA: {{^}}Sections:{{$}}
2225# WHITESPACE-NO-LMA-NEXT: {{^}}Idx Name Size VMA Type{{$}}
2730# WHITESPACE-NO-LMA-NEXT: {{^}} 4 .other 00000000 0000000000000000 {{$}}
2831# WHITESPACE-NO-LMA-NEXT: {{^}} 5 .debug_abbrev 00000000 0000000000000000 DEBUG{{$}}
2932# WHITESPACE-NO-LMA-NEXT: {{^}} 6 .debug_info 00000000 0000000000000000 DATA, DEBUG{{$}}
33+ # WHITESPACE-NO-LMA-NEXT: {{^}} 7 .mydata 00000000 0000000000000000 DATA{{$}}
34+ # WHITESPACE-NO-LMA-NEXT: {{^}} 8 .bss1 00000000 0000000000000000 BSS{{$}}
35+ # WHITESPACE-NO-LMA-NEXT: {{^}} 9 .nonalloc.bss 00000000 0000000000000000 {{$}}
3036
3137--- !ELF
3238FileHeader:
@@ -51,6 +57,14 @@ Sections:
5157 - Name: .debug_info
5258 Type: SHT_PROGBITS
5359 Flags: [ SHF_WRITE, SHF_ALLOC ]
60+ - Name: .mydata
61+ Type: 0x70000000
62+ Flags: [ SHF_ALLOC ]
63+ - Name: .bss1
64+ Type: SHT_NOBITS
65+ Flags: [SHF_ALLOC]
66+ - Name: .nonalloc.bss
67+ Type: SHT_NOBITS
5468
5569## Check that --section-headers and --headers are aliases for -h.
5670# RUN: llvm-objdump --section-headers --show-lma %t-whitespace.o \
You can’t perform that action at this time.
0 commit comments