Don't depend on the order relocations are written to a .o file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235092 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2015-04-16 12:59:30 +00:00
parent e6da045ce1
commit 05da50f87b
6 changed files with 162 additions and 151 deletions

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd -sr | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
@ Check the compact pr0 model
@@ -63,13 +65,13 @@ func2:
@ another relocation entry for __aeabi_unwind_cpp_pr0, so that the linker
@ will keep __aeabi_unwind_cpp_pr0.
@-------------------------------------------------------------------------------
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -100,10 +102,10 @@ func2:
@ another relocation entry for __aeabi_unwind_cpp_pr0, so that the linker
@ will keep __aeabi_unwind_cpp_pr0.
@-------------------------------------------------------------------------------
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST2 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST2 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ RELOC: ]
@ RELOC: }

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd -sr | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
@ Check the .handlerdata directive (without .personality directive)
@@ -43,14 +45,14 @@ func1:
@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the
@ linker can keep __aeabi_unwind_cpp_pr0.
@-------------------------------------------------------------------------------
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ RELOC: ]
@ RELOC: }
@@ -103,11 +105,11 @@ func2:
@ We should see a relocation entry to __aeabi_unwind_cpp_pr0, so that the
@ linker can keep __aeabi_unwind_cpp_pr0.
@-------------------------------------------------------------------------------
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST2 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST2 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
@ RELOC: ]
@ RELOC: }

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd -sr | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
@ Check the .personality directive.
@@ -33,12 +35,12 @@ func1:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.extab.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.extab.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: ]
@ RELOC: }
@ CHECK: Section {
@ CHECK: Name: .ARM.exidx.TEST1
@@ -47,13 +49,13 @@ func1:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -84,12 +86,12 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.extab.TEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.extab.TEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: ]
@ RELOC: }
@ CHECK: Section {
@ CHECK: Name: .ARM.exidx.TEST2
@@ -98,10 +100,10 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST2 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST2 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
@ RELOC: ]
@ RELOC: }

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s \
@ RUN: | llvm-readobj -s -sd -sr | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
.syntax unified
.thumb
@@ -23,13 +25,13 @@ pr0:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr0
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr0 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr0
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr0 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ RELOC: ]
@ RELOC: }
.section .pr0.nontrivial
@@ -52,13 +54,13 @@ pr0_nontrivial:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr0.nontrivial
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr0.nontrivial 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr0.nontrivial
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr0.nontrivial 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
@ RELOC: ]
@ RELOC: }
.section .pr1
@@ -85,14 +87,14 @@ pr1:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr1 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.pr1 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr1 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr1 0x0
@ RELOC: ]
@ RELOC: }
.section .pr1.nontrivial
@@ -122,14 +124,14 @@ pr1_nontrivial:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr1.nontrivial
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr1.nontrivial 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.pr1.nontrivial 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr1.nontrivial
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr1.nontrivial 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr1.nontrivial 0x0
@ RELOC: ]
@ RELOC: }
.section .pr2
@@ -156,14 +158,14 @@ pr2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr2 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.pr2 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr2 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr2 0x0
@ RELOC: ]
@ RELOC: }
.section .pr2.nontrivial
.type pr2_nontrivial,%function
@@ -191,12 +193,11 @@ pr2_nontrivial:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.pr2.nontrivial
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .pr2.nontrivial 0x0
@ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.pr2.nontrivial 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.pr2.nontrivial
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .pr2.nontrivial 0x0
@ RELOC: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.pr2.nontrivial 0x0
@ RELOC: ]
@ RELOC: }

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd -sr -t | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr -t > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
@ Check whether the section is switched back properly.
@@ -70,13 +72,13 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.extab.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: 0x8 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.extab.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: 0x8 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -99,15 +101,15 @@ func2:
@ .ARM.extab.TESET1 section.
@-------------------------------------------------------------------------------
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ CHECK: 0x8 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0xC R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ RELOC: 0x8 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0xC R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------

View File

@@ -1,5 +1,7 @@
@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd -sr -t | FileCheck %s
@ RUN: | llvm-readobj -s -sd -sr -t > %t
@ RUN: FileCheck %s < %t
@ RUN: FileCheck --check-prefix=RELOC %s < %t
@ Check the combination of .section, .fnstart, and .fnend directives.
@@ -65,12 +67,12 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.extab.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.extab.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -94,13 +96,13 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidx.TEST1
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 .TEST1 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidx.TEST1
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 .TEST1 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -124,12 +126,12 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.extabTEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.extabTEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
@ RELOC: ]
@ RELOC: }
@-------------------------------------------------------------------------------
@@ -153,13 +155,13 @@ func2:
@ CHECK: )
@ CHECK: }
@ CHECK: Section {
@ CHECK: Name: .rel.ARM.exidxTEST2
@ CHECK: Relocations [
@ CHECK: 0x0 R_ARM_PREL31 TEST2 0x0
@ CHECK: 0x4 R_ARM_PREL31 .ARM.extabTEST2 0x0
@ CHECK: ]
@ CHECK: }
@ RELOC: Section {
@ RELOC: Name: .rel.ARM.exidxTEST2
@ RELOC: Relocations [
@ RELOC: 0x0 R_ARM_PREL31 TEST2 0x0
@ RELOC: 0x4 R_ARM_PREL31 .ARM.extabTEST2 0x0
@ RELOC: ]
@ RELOC: }