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 {
949
949
template <class ELFT >
950
950
bool ELFObjectFile<ELFT>::isSectionData(DataRefImpl Sec) const {
951
951
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 ;
955
955
}
956
956
957
957
template <class ELFT >
958
958
bool ELFObjectFile<ELFT>::isSectionBSS(DataRefImpl Sec) const {
959
959
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;
962
961
}
963
962
964
963
template <class ELFT >
Original file line number Diff line number Diff line change 2
2
# RUN: llvm-nm --no-sort %t | FileCheck %s
3
3
4
4
# CHECK: b mybss_local
5
+ # CHECK-NEXT: b mybss2_local
5
6
# CHECK-NEXT: d mydata_local
7
+ # CHECK-NEXT: d mydata2_local
6
8
# CHECK-NEXT: d mytdata_local
7
9
# CHECK-NEXT: B mybss_global
8
10
# CHECK-NEXT: D mydata_global
@@ -18,17 +20,27 @@ Sections:
18
20
- Name: mybss
19
21
Type: SHT_NOBITS
20
22
Flags: [ SHF_ALLOC, SHF_WRITE ]
23
+ - Name: mybss2
24
+ Type: SHT_NOBITS
25
+ Flags: [ SHF_ALLOC ]
21
26
- Name: mydata
22
27
Type: SHT_PROGBITS
23
28
Flags: [ SHF_ALLOC, SHF_WRITE ]
29
+ - Name: mydata2
30
+ Type: 0x1000
31
+ Flags: [ SHF_ALLOC, SHF_WRITE ]
24
32
- Name: mytdata
25
33
Type: SHT_PROGBITS
26
34
Flags: [ SHF_ALLOC, SHF_WRITE, SHF_TLS ]
27
35
Symbols:
28
36
- Name: mybss_local
29
37
Section: mybss
38
+ - Name: mybss2_local
39
+ Section: mybss2
30
40
- Name: mydata_local
31
41
Section: mydata
42
+ - Name: mydata2_local
43
+ Section: mydata2
32
44
- Name: mytdata_local
33
45
Section: mytdata
34
46
Original file line number Diff line number Diff line change 4
4
# CHECK: r myrodata0_local
5
5
# CHECK-NEXT: r myrodata1_local
6
6
# CHECK-NEXT: r myrodata2_local
7
+ # CHECK-NEXT: r myrodata3_local
7
8
# CHECK-NEXT: R myrodata0_global
8
9
# CHECK-NEXT: R myrodata1_global
9
10
# CHECK-NEXT: R myrodata2_global
11
+ # CHECK-NEXT: R myrodata3_global
10
12
11
13
!ELF
12
14
FileHeader:
@@ -24,13 +26,18 @@ Sections:
24
26
- Name: myrodata2
25
27
Type: SHT_PROGBITS
26
28
Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ]
29
+ - Name: myrodata3
30
+ Type: 0x1000
31
+ Flags: [ SHF_ALLOC ]
27
32
Symbols:
28
33
- Name: myrodata0_local
29
34
Section: myrodata0
30
35
- Name: myrodata1_local
31
36
Section: myrodata1
32
37
- Name: myrodata2_local
33
38
Section: myrodata2
39
+ - Name: myrodata3_local
40
+ Section: myrodata3
34
41
35
42
- Name: myrodata0_global
36
43
Binding: STB_GLOBAL
@@ -41,3 +48,6 @@ Symbols:
41
48
- Name: myrodata2_global
42
49
Binding: STB_GLOBAL
43
50
Section: myrodata2
51
+ - Name: myrodata3_global
52
+ Binding: STB_GLOBAL
53
+ Section: myrodata3
Original file line number Diff line number Diff line change 17
17
# WHITESPACE-NEXT: {{^}} 4 .other 00000000 0000000000000000 0000000000000000 {{$}}
18
18
# WHITESPACE-NEXT: {{^}} 5 .debug_abbrev 00000000 0000000000000000 0000000000000000 DEBUG{{$}}
19
19
# 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 {{$}}
20
23
21
24
# WHITESPACE-NO-LMA: {{^}}Sections:{{$}}
22
25
# WHITESPACE-NO-LMA-NEXT: {{^}}Idx Name Size VMA Type{{$}}
27
30
# WHITESPACE-NO-LMA-NEXT: {{^}} 4 .other 00000000 0000000000000000 {{$}}
28
31
# WHITESPACE-NO-LMA-NEXT: {{^}} 5 .debug_abbrev 00000000 0000000000000000 DEBUG{{$}}
29
32
# 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 {{$}}
30
36
31
37
--- !ELF
32
38
FileHeader:
@@ -51,6 +57,14 @@ Sections:
51
57
- Name: .debug_info
52
58
Type: SHT_PROGBITS
53
59
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
54
68
55
69
## Check that --section-headers and --headers are aliases for -h.
56
70
# RUN: llvm-objdump --section-headers --show-lma %t-whitespace.o \
You can’t perform that action at this time.
0 commit comments