xref: /llvm-project/llvm/test/MC/ELF/file.s (revision 962b29d7162c8b470ea70540c48d11c2f35d7561)
1# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o - | llvm-readelf -s - | FileCheck %s
2
3# CHECK:       0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT   UND
4# CHECK-NEXT:  1: 0000000000000000     0 FILE    LOCAL  DEFAULT   ABS foo.c
5# CHECK-NEXT:  2: 0000000000000000     0 SECTION LOCAL  DEFAULT     2 .text
6# CHECK-NEXT:  3: 0000000000000000     0 SECTION LOCAL  DEFAULT     4 foo
7# CHECK-NEXT:  4: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT     4 local0
8# CHECK-NEXT:  5: 0000000000000000     0 FILE    LOCAL  DEFAULT   ABS bar.c
9# CHECK-NEXT:  6: 0000000000000000     0 SECTION LOCAL  DEFAULT     6 bar0
10# CHECK-NEXT:  7: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT     6 local1
11# CHECK-NEXT:  8: 0000000000000000     0 SECTION LOCAL  DEFAULT     8 bar1
12# CHECK-NEXT:  9: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT     8 local2
13# CHECK-NEXT: 10: 0000000000000000     0 FILE    LOCAL  DEFAULT   ABS bar.c
14# CHECK-NEXT: 11: 0000000000000008     0 NOTYPE  GLOBAL DEFAULT     2 foo.c
15# CHECK-NEXT: 12: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT     6 bar.c
16
17.quad .text
18
19## A STT_FILE symbol and a symbol of the same name can coexist.
20.file "foo.c"
21.globl foo.c
22foo.c:
23.section foo,"a"
24local0:
25.quad foo
26
27## STT_FILE "bar.c" precedes subsequently defined local symbols.
28.file "bar.c"
29.section bar0,"a"
30.globl bar.c
31bar.c:
32local1:
33.quad bar0
34
35.section bar1,"a"
36local2:
37.quad bar1
38
39## STT_FILE symbols of the same name are not de-duplicated.
40.file "bar.c"
41