summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/ELF
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2019-12-12 17:09:55 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2019-12-13 11:31:24 +0300
commit422b078c69ee7ae5c2529992eed4fd8a21aedda4 (patch)
tree0538819d01fcb4ff26087da58931b0c1b8791149 /llvm/test/tools/llvm-readobj/ELF
parent5c80a4f454ac6dad09e5c27f32a28af62cdb4d13 (diff)
downloadbcm5719-llvm-422b078c69ee7ae5c2529992eed4fd8a21aedda4.tar.gz
bcm5719-llvm-422b078c69ee7ae5c2529992eed4fd8a21aedda4.zip
[llvm-readobj] - Fix letters used for dumping section types in GNU style.
I've noticed that when we have all regular flags set, we print "WAEXMSILoGTx" instead of "WAXMSILOGTCE" printed by GNU readelf. It happens because: 1) We print SHF_EXCLUDE at the wrong place. 2) We do not recognize SHF_COMPRESSED, we print "x" instead of "C". 3) We print "o" instead of "O" for SHF_OS_NONCONFORMING. This patch fixes differences and adds test cases. Differential revision: https://reviews.llvm.org/D71418
Diffstat (limited to 'llvm/test/tools/llvm-readobj/ELF')
-rw-r--r--llvm/test/tools/llvm-readobj/ELF/section-flags.test126
1 files changed, 123 insertions, 3 deletions
diff --git a/llvm/test/tools/llvm-readobj/ELF/section-flags.test b/llvm/test/tools/llvm-readobj/ELF/section-flags.test
index ffc95aad6d5..9b27b5c065d 100644
--- a/llvm/test/tools/llvm-readobj/ELF/section-flags.test
+++ b/llvm/test/tools/llvm-readobj/ELF/section-flags.test
@@ -26,9 +26,93 @@
# LLVM-NEXT: Flags [ (0x0)
# LLVM-NEXT: ]
-# GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
-# GNU: [ 1] allflags PROGBITS 0000000000000000 000040 000000 00 WAEXMSILoGTx 0 0 0
-# GNU: [ 2] noflags PROGBITS 0000000000000000 000040 000000 00 0 0 0
+# LLVM: Name: write
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x1)
+# LLVM-NEXT: SHF_WRITE (0x1)
+# LLVM-NEXT: ]
+
+# LLVM: Name: alloc
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x2)
+# LLVM-NEXT: SHF_ALLOC (0x2)
+# LLVM-NEXT: ]
+
+# LLVM: Name: exec
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x4)
+# LLVM-NEXT: SHF_EXECINSTR (0x4)
+# LLVM-NEXT: ]
+
+# LLVM: Name: merge
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x10)
+# LLVM-NEXT: SHF_MERGE (0x10)
+# LLVM-NEXT: ]
+
+# LLVM: Name: strings
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x20)
+# LLVM-NEXT: SHF_STRINGS (0x20)
+# LLVM-NEXT: ]
+
+# LLVM: Name: infolink
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x40)
+# LLVM-NEXT: SHF_INFO_LINK (0x40)
+# LLVM-NEXT: ]
+
+# LLVM: Name: linkorder
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x80)
+# LLVM-NEXT: SHF_LINK_ORDER (0x80)
+# LLVM-NEXT: ]
+
+# LLVM: Name: nonconforming
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x100)
+# LLVM-NEXT: SHF_OS_NONCONFORMING (0x100)
+# LLVM-NEXT: ]
+
+# LLVM: Name: group
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x200)
+# LLVM-NEXT: SHF_GROUP (0x200)
+# LLVM-NEXT: ]
+
+# LLVM: Name: tls
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x400)
+# LLVM-NEXT: SHF_TLS (0x400)
+# LLVM-NEXT: ]
+
+# LLVM: Name: compressed
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x800)
+# LLVM-NEXT: SHF_COMPRESSED (0x800)
+# LLVM-NEXT: ]
+
+# LLVM: Name: exclude
+# LLVM-NEXT: Type: SHT_PROGBITS
+# LLVM-NEXT: Flags [ (0x80000000)
+# LLVM-NEXT: SHF_EXCLUDE (0x80000000)
+# LLVM-NEXT: ]
+
+# GNU: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
+# GNU: [ 1] allflags PROGBITS 0000000000000000 000040 000000 00 WAXMSILOGTCE 0 0 0
+# GNU: [ 2] noflags PROGBITS 0000000000000000 000040 000000 00 0 0 0
+# GNU: [ 3] write PROGBITS 0000000000000000 000040 000000 00 W 0 0 0
+# GNU: [ 4] alloc PROGBITS 0000000000000000 000040 000000 00 A 0 0 0
+# GNU: [ 5] exec PROGBITS 0000000000000000 000040 000000 00 X 0 0 0
+# GNU: [ 6] merge PROGBITS 0000000000000000 000040 000000 00 M 0 0 0
+# GNU: [ 7] strings PROGBITS 0000000000000000 000040 000000 00 S 0 0 0
+# GNU: [ 8] infolink PROGBITS 0000000000000000 000040 000000 00 I 0 0 0
+# GNU: [ 9] linkorder PROGBITS 0000000000000000 000040 000000 00 L 0 0 0
+# GNU: [10] nonconforming PROGBITS 0000000000000000 000040 000000 00 O 0 0 0
+# GNU: [11] group PROGBITS 0000000000000000 000040 000000 00 G 0 0 0
+# GNU: [12] tls PROGBITS 0000000000000000 000040 000000 00 T 0 0 0
+# GNU: [13] compressed PROGBITS 0000000000000000 000040 000000 00 C 0 0 0
+# GNU: [14] exclude PROGBITS 0000000000000000 000040 000000 00 E 0 0 0
--- !ELF
FileHeader:
@@ -46,3 +130,39 @@ Sections:
- Name: noflags
Type: SHT_PROGBITS
Flags: [ ]
+ - Name: write
+ Type: SHT_PROGBITS
+ Flags: [ SHF_WRITE ]
+ - Name: alloc
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ - Name: exec
+ Type: SHT_PROGBITS
+ Flags: [ SHF_EXECINSTR ]
+ - Name: merge
+ Type: SHT_PROGBITS
+ Flags: [ SHF_MERGE ]
+ - Name: strings
+ Type: SHT_PROGBITS
+ Flags: [ SHF_STRINGS ]
+ - Name: infolink
+ Type: SHT_PROGBITS
+ Flags: [ SHF_INFO_LINK ]
+ - Name: linkorder
+ Type: SHT_PROGBITS
+ Flags: [ SHF_LINK_ORDER ]
+ - Name: nonconforming
+ Type: SHT_PROGBITS
+ Flags: [ SHF_OS_NONCONFORMING ]
+ - Name: group
+ Type: SHT_PROGBITS
+ Flags: [ SHF_GROUP ]
+ - Name: tls
+ Type: SHT_PROGBITS
+ Flags: [ SHF_TLS ]
+ - Name: compressed
+ Type: SHT_PROGBITS
+ Flags: [ SHF_COMPRESSED ]
+ - Name: exclude
+ Type: SHT_PROGBITS
+ Flags: [ SHF_EXCLUDE ]
OpenPOWER on IntegriCloud