summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/mips-got-overlapped.test
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2016-02-09 18:45:35 +0000
committerSimon Atanasyan <simon@atanasyan.com>2016-02-09 18:45:35 +0000
commitcb1175c7db87175ce4231555ad9eb75b762bb0d1 (patch)
tree15fa64386968d38491408501c9ad76c0c113a8c1 /llvm/test/tools/llvm-readobj/mips-got-overlapped.test
parent10c8a04b80f904420ca803c638421068788c30fd (diff)
downloadbcm5719-llvm-cb1175c7db87175ce4231555ad9eb75b762bb0d1.tar.gz
bcm5719-llvm-cb1175c7db87175ce4231555ad9eb75b762bb0d1.zip
[llvm-readobj][ELF] Show MIPS GOT content when there is another zero-sized section at the same address
It is possible to have .got section and one or more zero-sized section at the same address. This patch first checks that GOT (or GOT PLT) section should have non-zero size using corresponding dynamic tags. Then it looks up not empty section at the specified address. Differential Revision: http://reviews.llvm.org/D16968 llvm-svn: 260245
Diffstat (limited to 'llvm/test/tools/llvm-readobj/mips-got-overlapped.test')
-rw-r--r--llvm/test/tools/llvm-readobj/mips-got-overlapped.test45
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/mips-got-overlapped.test b/llvm/test/tools/llvm-readobj/mips-got-overlapped.test
new file mode 100644
index 00000000000..ae4ae953295
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/mips-got-overlapped.test
@@ -0,0 +1,45 @@
+# Check that llvm-readobj -mips-plt-got correctly shows .got section
+# content if there are some other zero-sized sections with the same
+# address as the .got. got-over.exe.elf-mips has zero-sized .data
+# section at the same offset .got section.
+
+RUN: llvm-readobj -mips-plt-got %p/Inputs/got-over.exe.elf-mips | FileCheck %s
+
+GOT-OBJ: Cannot find PLTGOT dynamic table tag.
+
+CHECK: Primary GOT {
+CHECK-NEXT: Canonical gp value: 0x418270
+CHECK-NEXT: Reserved entries [
+CHECK-NEXT: Entry {
+CHECK-NEXT: Address: 0x410280
+CHECK-NEXT: Access: -32752
+CHECK-NEXT: Initial: 0x0
+CHECK-NEXT: Purpose: Lazy resolver
+CHECK-NEXT: }
+CHECK-NEXT: Entry {
+CHECK-NEXT: Address: 0x410284
+CHECK-NEXT: Access: -32748
+CHECK-NEXT: Initial: 0x80000000
+CHECK-NEXT: Purpose: Module pointer (GNU extension)
+CHECK-NEXT: }
+CHECK-NEXT: ]
+CHECK-NEXT: Local entries [
+CHECK-NEXT: Entry {
+CHECK-NEXT: Address: 0x410288
+CHECK-NEXT: Access: -32744
+CHECK-NEXT: Initial: 0x4001B8
+CHECK-NEXT: }
+CHECK-NEXT: ]
+CHECK-NEXT: Global entries [
+CHECK-NEXT: Entry {
+CHECK-NEXT: Address: 0x41028C
+CHECK-NEXT: Access: -32740
+CHECK-NEXT: Initial: 0x0
+CHECK-NEXT: Value: 0x0
+CHECK-NEXT: Type: None
+CHECK-NEXT: Section: Undefined
+CHECK-NEXT: Name: _foo
+CHECK-NEXT: }
+CHECK-NEXT: ]
+CHECK-NEXT: Number of TLS and multi-GOT entries: 0
+CHECK-NEXT: }
OpenPOWER on IntegriCloud