From fc184734009df551eb36e80396875cc9a2ec4acf Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Tue, 29 Oct 2013 01:06:17 +0000 Subject: 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". llvm-svn: 193569 --- llvm/test/MC/ELF/file-double.s | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 llvm/test/MC/ELF/file-double.s (limited to 'llvm/test') diff --git a/llvm/test/MC/ELF/file-double.s b/llvm/test/MC/ELF/file-double.s new file mode 100644 index 00000000000..b0731e67ed0 --- /dev/null +++ b/llvm/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: } -- cgit v1.2.3