// REQUIRES: arm
// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t
// RUN: echo "SECTIONS { \
// RUN:       . = SIZEOF_HEADERS; \
// RUN:       .text_low : { *(.text_low) *(.text_low2) } \
// RUN:       .text_high 0x2000000 : { *(.text_high) *(.text_high2) } \
// RUN:       } " > %t.script
// RUN: ld.lld --pic-veneer --no-rosegment --script %t.script %t -o %t2
// RUN: llvm-objdump -d %t2 | FileCheck %s

// Test that we can force generation of position independent thunks even when
// inputs are not pic.

 .syntax unified
 .section .text_low, "ax", %progbits
 .thumb
 .globl _start
_start: bx lr
 .globl low_target
 .type low_target, %function
low_target:
 bl high_target
 bl high_target2

 .section .text_low2, "ax", %progbits
 .thumb
 .globl low_target2
 .type low_target2, %function
low_target2:
 bl high_target
 bl high_target2

// CHECK: Disassembly of section .text_low:
// CHECK-EMPTY:
// CHECK-NEXT: <_start>:
// CHECK-NEXT:       94:        70 47   bx      lr
// CHECK: <low_target>:
// CHECK-NEXT:       96:        00 f0 03 f8     bl      0xa0 <__ThumbV7PILongThunk_high_target>
// CHECK-NEXT:       9a:        00 f0 07 f8     bl      0xac <__ThumbV7PILongThunk_high_target2>
// CHECK-NEXT:       9e:        d4 d4
// CHECK: <__ThumbV7PILongThunk_high_target>:
// CHECK-NEXT:       a0:        4f f6 55 7c     movw    r12, #65365
// CHECK-NEXT:       a4:        c0 f2 ff 1c     movt    r12, #511
// CHECK-NEXT:       a8:        fc 44   add     r12, pc
// CHECK-NEXT:       aa:        60 47   bx      r12
// CHECK: <__ThumbV7PILongThunk_high_target2>:
// CHECK-NEXT:       ac:        4f f6 69 7c     movw    r12, #65385
// CHECK-NEXT:       b0:        c0 f2 ff 1c     movt    r12, #511
// CHECK-NEXT:       b4:        fc 44   add     r12, pc
// CHECK-NEXT:       b6:        60 47   bx      r12
// CHECK: <low_target2>:
// CHECK-NEXT:       b8:        ff f7 f2 ff     bl      0xa0 <__ThumbV7PILongThunk_high_target>
// CHECK-NEXT:       bc:        ff f7 f6 ff     bl      0xac <__ThumbV7PILongThunk_high_target2>


 .section .text_high, "ax", %progbits
 .thumb
 .globl high_target
 .type high_target, %function
high_target:
 bl low_target
 bl low_target2

 .section .text_high2, "ax", %progbits
 .thumb
 .globl high_target2
 .type high_target2, %function
high_target2:
 bl low_target
 bl low_target2

// CHECK: Disassembly of section .text_high:
// CHECK-EMPTY:
// CHECK-NEXT: <high_target>:
// CHECK-NEXT:  2000000:        00 f0 02 f8     bl      0x2000008 <__ThumbV7PILongThunk_low_target>
// CHECK-NEXT:  2000004:        00 f0 06 f8     bl      0x2000014 <__ThumbV7PILongThunk_low_target2>
// CHECK: <__ThumbV7PILongThunk_low_target>:
// CHECK-NEXT:  2000008:        40 f2 83 0c     movw    r12, #131
// CHECK-NEXT:  200000c:        cf f6 00 6c     movt    r12, #65024
// CHECK-NEXT:  2000010:        fc 44   add     r12, pc
// CHECK-NEXT:  2000012:        60 47   bx      r12
// CHECK: <__ThumbV7PILongThunk_low_target2>:
// CHECK-NEXT:  2000014:        40 f2 99 0c     movw    r12, #153
// CHECK-NEXT:  2000018:        cf f6 00 6c     movt    r12, #65024
// CHECK-NEXT:  200001c:        fc 44   add     r12, pc
// CHECK-NEXT:  200001e:        60 47   bx      r12
// CHECK: <high_target2>:
// CHECK-NEXT:  2000020:        ff f7 f2 ff     bl      0x2000008 <__ThumbV7PILongThunk_low_target>
// CHECK-NEXT:  2000024:        ff f7 f6 ff     bl      0x2000014 <__ThumbV7PILongThunk_low_target2>
