summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSean Silva <silvas@purdue.edu>2013-06-21 00:27:50 +0000
committerSean Silva <silvas@purdue.edu>2013-06-21 00:27:50 +0000
commit4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d (patch)
treeaa2148433b9e8a6d81ca6e871f18f1122e1bfd45 /test
parent2b7cdf09a142b7f3e9a0ec8c7044eaf89bc59caa (diff)
downloadllvm-4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d.tar.gz
llvm-4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d.tar.bz2
llvm-4235ba32f2610ee2ed1e0c4bfca5c67835e9f97d.tar.xz
[yaml2obj][ELF] Don't explicitly set `Binding` with STB_*
Instead, just have 3 sub-lists, one for each of {STB_LOCAL,STB_GLOBAL,STB_WEAK}. This allows us to be a lot more explicit w.r.t. the symbol ordering in the object file, because if we allowed explicitly setting the STB_* `Binding` key for the symbol, then we might have ended up having to shuffle STB_LOCAL symbols to the front of the list, which is likely to cause confusion and potential for error. Also, this new approach is simpler ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184506 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml39
-rw-r--r--test/Object/yaml2obj-elf-symbol-basic.yaml12
2 files changed, 45 insertions, 6 deletions
diff --git a/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
new file mode 100644
index 0000000000..44479dce7d
--- /dev/null
+++ b/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
@@ -0,0 +1,39 @@
+# RUN: yaml2obj -format=elf %s | llvm-readobj -symbols - | FileCheck %s
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .data
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_WRITE ]
+ Content: "DEADBEEF"
+ - Name: .symtab
+ Type: SHT_SYMTAB
+ Symbols:
+ Local:
+ - Name: local_symbol
+ Type: STT_OBJECT
+ Section: .data
+ Global:
+ - Name: global_symbol
+ Type: STT_OBJECT
+ Section: .data
+ Weak:
+ - Name: weak_symbol
+ Type: STT_OBJECT
+ Section: .data
+
+# CHECK: Symbol {
+# CHECK: Name: (0)
+# CHECK: Symbol {
+# CHECK: Name: local_symbol
+# CHECK: Binding: Local
+# CHECK: Symbol {
+# CHECK: Name: global_symbol
+# CHECK: Binding: Global
+# CHECK: Symbol {
+# CHECK: Name: weak_symbol
+# CHECK: Binding: Weak
diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml
index 12acb7e11e..238348b9b0 100644
--- a/test/Object/yaml2obj-elf-symbol-basic.yaml
+++ b/test/Object/yaml2obj-elf-symbol-basic.yaml
@@ -20,12 +20,12 @@ Sections:
- Name: .symtab
Type: SHT_SYMTAB
Symbols:
- - Name: main
- Binding: STB_GLOBAL
- Type: STT_FUNC
- Section: .text
- Value: 0x1
- Size: 2
+ Global:
+ - Name: main
+ Type: STT_FUNC
+ Section: .text
+ Value: 0x1
+ Size: 2
# CHECK: Symbols [
# CHECK-NEXT: Symbol {