1// RUN: llvm-mc -triple=aarch64 -filetype=obj %s | llvm-objdump -t - | FileCheck %s --match-full-lines 2// RUN: llvm-mc -triple=aarch64 -filetype=obj -implicit-mapsyms %s | llvm-objdump -t - | FileCheck %s --check-prefix=CHECK1 --match-full-lines 3 4/// The test covers many state transitions. Let's use the first state and the last state to describe a section. 5/// .text goes through cd -> dd -> cc -> dd. 6/// .data goes through dd -> dc -> cd. 7.file "0.s" 8.section .text1,"ax" 9add w0, w0, w0 10 11.text 12add w0, w0, w0 13.word 42 14 15.pushsection .data,"aw" 16.word 42 17.popsection 18 19.text 20.word 42 21 22.section .text1,"ax" 23add w1, w1, w1 24 25.text 26add w1, w1, w1 27 28.section .data,"aw" 29.word 42 30add w0, w0, w0 31 32.text 33.word 42 34 35## .rodata and subsequent symbols should be after the FILE symbol of "1.s". 36.file "1.s" 37.section .rodata,"a" 38.word 42 39add w0, w0, w0 40 41.section .data,"aw" 42add w0, w0, w0 43.word 42 44 45.text 46 47.ident "clang" 48.section ".note.GNU-stack","",@progbits 49 50// CHECK: SYMBOL TABLE: 51// CHECK-NEXT: 0000000000000000 l df *ABS* 0000000000000000 0.s 52// CHECK-NEXT: 0000000000000000 l .text1 0000000000000000 $x 53// CHECK-NEXT: 0000000000000000 l .text 0000000000000000 $x 54// CHECK-NEXT: 0000000000000004 l .text 0000000000000000 $d 55// CHECK-NEXT: 0000000000000000 l .data 0000000000000000 $d 56// CHECK-NEXT: 000000000000000c l .text 0000000000000000 $x 57// CHECK-NEXT: 0000000000000008 l .data 0000000000000000 $x 58// CHECK-NEXT: 0000000000000010 l .text 0000000000000000 $d 59// CHECK-NEXT: 0000000000000000 l df *ABS* 0000000000000000 1.s 60// CHECK-NEXT: 0000000000000000 l .rodata 0000000000000000 $d 61// CHECK-NEXT: 0000000000000004 l .rodata 0000000000000000 $x 62// CHECK-NEXT: 0000000000000010 l .data 0000000000000000 $d 63// CHECK-NEXT: 0000000000000000 l .comment 0000000000000000 $d 64// CHECK-NOT: {{.}} 65 66// CHECK1: SYMBOL TABLE: 67// CHECK1-NEXT: 0000000000000000 l df *ABS* 0000000000000000 0.s 68// CHECK1-NEXT: 0000000000000004 l .text 0000000000000000 $d 69// CHECK1-NEXT: 000000000000000c l .text 0000000000000000 $x 70// CHECK1-NEXT: 0000000000000008 l .data 0000000000000000 $x 71// CHECK1-NEXT: 0000000000000010 l .text 0000000000000000 $d 72// CHECK1-NEXT: 0000000000000014 l .text 0000000000000000 $x 73// CHECK1-NEXT: 0000000000000000 l df *ABS* 0000000000000000 1.s 74// CHECK1-NEXT: 0000000000000004 l .rodata 0000000000000000 $x 75// CHECK1-NEXT: 0000000000000008 l .rodata 0000000000000000 $d 76// CHECK1-NEXT: 0000000000000010 l .data 0000000000000000 $d 77// CHECK1-NOT: {{.}} 78