// REQUIRES: arm
// RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t
// RUN: ld.lld --no-merge-exidx-entries %t --static -o %t2
// RUN: llvm-readobj --symbols %t2 | FileCheck %s

// Check that on ARM we don't get a multiply defined symbol for __tls_get_addr
// and undefined symbols for references to __exidx_start and __exidx_end
 .syntax unified
.section .text
 .global __tls_get_addr
__tls_get_addr:
 bx lr

 .global _start
 .global __exidx_start
 .global __exidx_end
_start:
 .fnstart
 bx lr
 .word __exidx_start
 .word __exidx_end
 .cantunwind
 .fnend

// CHECK:          Name: __exidx_end
// CHECK-NEXT:     Value: 0x100E4
// CHECK-NEXT:     Size: 0
// CHECK-NEXT:     Binding: Local
// CHECK-NEXT:     Type: None
// CHECK-NEXT:     Other [
// CHECK-NEXT:       STV_HIDDEN
// CHECK-NEXT:     ]
// CHECK-NEXT:     Section: .ARM.exidx
// CHECK:          Name: __exidx_start
// CHECK-NEXT:     Value: 0x100D4
// CHECK-NEXT:     Size: 0
// CHECK-NEXT:     Binding: Local
// CHECK-NEXT:     Type: None
// CHECK-NEXT:     Other [
// CHECK-NEXT:       STV_HIDDEN
// CHECK-NEXT:     ]
// CHECK-NEXT:   Section: .ARM.exidx
// CHECK:          Symbol {
// CHECK-NEXT:     Name: __tls_get_addr
