43 lines · plain
1@ RUN: llvm-mc -filetype=obj -triple=armv7-linux-gnueabi %s -o %t2@ RUN: llvm-readelf -s %t | FileCheck %s3 4@@ GNU as sets the thumb state according to the thumb state of the label. If a5@@ .type directive is placed after the label, set the symbol's thumb state6@@ according to the thumb state of the .type directive. This matches GNU as in7@@ most cases.8 9.syntax unified10.text11.thumb12func_label:13.type func_label, %function14 15.type foo_impl, %function16foo_impl:17 bx lr18.type foo_resolver, %function19foo_resolver:20 b foo_impl21.type foo, %gnu_indirect_function22.set foo, foo_resolver23 24@@ Note: GNU as sets the value to 1.25.thumb26label:27 bx lr28.arm29 bx lr30.type label, %function31 32@@ Check func_label, foo_impl, foo_resolver, and foo addresses have bit 0 set.33@@ Check label has bit 0 unset.34@ CHECK: Value Size Type Bind Vis Ndx Name35@ CHECK-NEXT: 00000000 0 NOTYPE LOCAL DEFAULT UND36@ CHECK-NEXT: 00000001 0 FUNC LOCAL DEFAULT 2 func_label37@ CHECK-NEXT: 00000001 0 FUNC LOCAL DEFAULT 2 foo_impl38@ CHECK-NEXT: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t39@ CHECK-NEXT: 00000003 0 FUNC LOCAL DEFAULT 2 foo_resolver40@ CHECK-NEXT: 00000003 0 IFUNC LOCAL DEFAULT 2 foo41@ CHECK-NEXT: 00000004 0 FUNC LOCAL DEFAULT 2 label42@ CHECK-NEXT: 00000008 0 NOTYPE LOCAL DEFAULT 2 $a43