diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2013-10-29 01:06:17 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2013-10-29 01:06:17 +0000 |
commit | 72580780a98cb8b0019b7ec4ed88e3f3328b9969 (patch) | |
tree | 6d102a4a9edc24e52c439ea4420dbd1606770fe3 /test/MC/ELF | |
parent | 8ef9cebb68d6305e197c3e0b8369aa3c57570bbf (diff) | |
download | external_llvm-72580780a98cb8b0019b7ec4ed88e3f3328b9969.zip external_llvm-72580780a98cb8b0019b7ec4ed88e3f3328b9969.tar.gz external_llvm-72580780a98cb8b0019b7ec4ed88e3f3328b9969.tar.bz2 |
Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file
"foo.c" contains a function "foo" with a static variable "c".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193569 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/ELF')
-rw-r--r-- | test/MC/ELF/file-double.s | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/MC/ELF/file-double.s b/test/MC/ELF/file-double.s new file mode 100644 index 0000000..b0731e6 --- /dev/null +++ b/test/MC/ELF/file-double.s @@ -0,0 +1,47 @@ +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s + +// Test that a STT_FILE symbol and a symbol of the same name can coexist. + +.file "foo.c" +.file "bar.c" + .globl foo.c +foo.c: + + .globl bar.c +bar.c: + +// CHECK: Symbol { +// CHECK: Name: foo.c (1) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local +// CHECK-NEXT: Type: File +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: (0xFFF1) +// CHECK-NEXT: } +// CHECK: Name: bar.c (7) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Local +// CHECK-NEXT: Type: File +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: (0xFFF1) +// CHECK-NEXT: } +// CHECK: Symbol { +// CHECK: Name: bar.c (7) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: .text (0x1) +// CHECK-NEXT: } +// CHECK: Symbol { +// CHECK: Name: foo.c (1) +// CHECK-NEXT: Value: 0x0 +// CHECK-NEXT: Size: 0 +// CHECK-NEXT: Binding: Global +// CHECK-NEXT: Type: None +// CHECK-NEXT: Other: 0 +// CHECK-NEXT: Section: .text (0x1) +// CHECK-NEXT: } |