aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-06-05 20:33:54 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-06-05 20:33:54 +0000
commitc9f2cc7e05b2a7f3991a94cad1730a59dd7555e3 (patch)
tree2f5ec3df5f31b613f5106fbe70c10546dc97936f
parent512119770e9c32eb0b9e6196ce51917fb2e30d9f (diff)
downloadexternal_llvm-c9f2cc7e05b2a7f3991a94cad1730a59dd7555e3.zip
external_llvm-c9f2cc7e05b2a7f3991a94cad1730a59dd7555e3.tar.gz
external_llvm-c9f2cc7e05b2a7f3991a94cad1730a59dd7555e3.tar.bz2
Don't hide the first ELF symbol.
The first symbol on ELF is dummy, but it has a defined content and readelf normally displays it. With this change llvm-readobj also displays it and we can check that llvm-mc output is correct according to the standard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183337 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Object/ELF.h4
-rw-r--r--test/MC/ELF/alias-reloc.s11
-rw-r--r--test/MC/ELF/alias.s9
-rw-r--r--test/MC/ELF/weakref.s9
-rw-r--r--test/tools/llvm-readobj/symbols.test9
5 files changed, 39 insertions, 3 deletions
diff --git a/include/llvm/Object/ELF.h b/include/llvm/Object/ELF.h
index a1a3d59..2c66941 100644
--- a/include/llvm/Object/ELF.h
+++ b/include/llvm/Object/ELF.h
@@ -2466,7 +2466,7 @@ symbol_iterator ELFObjectFile<ELFT>::begin_symbols() const {
SymbolData.d.a = 0;
SymbolData.d.b = 0;
} else {
- SymbolData.d.a = 1; // The 0th symbol in ELF is fake.
+ SymbolData.d.a = 0;
SymbolData.d.b = SymbolTableIndex;
}
return symbol_iterator(SymbolRef(SymbolData, this));
@@ -2493,7 +2493,7 @@ symbol_iterator ELFObjectFile<ELFT>::begin_dynamic_symbols() const {
SymbolData.d.a = 0;
SymbolData.d.b = 0;
} else {
- SymbolData.d.a = 1; // The 0th symbol in ELF is fake.
+ SymbolData.d.a = 0;
SymbolData.d.b = DynamicSymbolTableIndex;
}
return symbol_iterator(SymbolRef(SymbolData, this));
diff --git a/test/MC/ELF/alias-reloc.s b/test/MC/ELF/alias-reloc.s
index f5448e5..0ee73e9 100644
--- a/test/MC/ELF/alias-reloc.s
+++ b/test/MC/ELF/alias-reloc.s
@@ -25,7 +25,16 @@ foo2:
// CHECK-NEXT: ]
// CHECK: Symbols [
-// CHECK: Symbol {
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Value: 0x0
+// CHECK-NEXT: Size: 0
+// CHECK-NEXT: Binding: Local (0x0)
+// CHECK-NEXT: Type: None (0x0)
+// CHECK-NEXT: Other: 0
+// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar
// CHECK-NEXT: Value: 0x0
// CHECK-NEXT: Size: 0
diff --git a/test/MC/ELF/alias.s b/test/MC/ELF/alias.s
index 0575f41..8da75f7 100644
--- a/test/MC/ELF/alias.s
+++ b/test/MC/ELF/alias.s
@@ -19,6 +19,15 @@ bar4 = foo4
// CHECK: Symbols [
// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Value: 0x0
+// CHECK-NEXT: Size: 0
+// CHECK-NEXT: Binding: Local (0x0)
+// CHECK-NEXT: Type: None (0x0)
+// CHECK-NEXT: Other: 0
+// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar
// CHECK-NEXT: Value: 0x0
// CHECK-NEXT: Size: 0
diff --git a/test/MC/ELF/weakref.s b/test/MC/ELF/weakref.s
index 8717364..6c2d333 100644
--- a/test/MC/ELF/weakref.s
+++ b/test/MC/ELF/weakref.s
@@ -71,6 +71,15 @@ bar15:
// CHECK: Symbols [
// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: (0)
+// CHECK-NEXT: Value: 0x0
+// CHECK-NEXT: Size: 0
+// CHECK-NEXT: Binding: Local (0x0)
+// CHECK-NEXT: Type: None (0x0)
+// CHECK-NEXT: Other: 0
+// CHECK-NEXT: Section: (0x0)
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: bar6 (21)
// CHECK-NEXT: Value: 0x18
// CHECK-NEXT: Size: 0
diff --git a/test/tools/llvm-readobj/symbols.test b/test/tools/llvm-readobj/symbols.test
index d33bd8e..e014377 100644
--- a/test/tools/llvm-readobj/symbols.test
+++ b/test/tools/llvm-readobj/symbols.test
@@ -25,6 +25,15 @@ COFF-NEXT: }
ELF: Symbols [
ELF-NEXT: Symbol {
+ELF-NEXT: Name: (0)
+ELF-NEXT: Value: 0x0
+ELF-NEXT: Size: 0
+ELF-NEXT: Binding: Local (0x0)
+ELF-NEXT: Type: None (0x0)
+ELF-NEXT: Other: 0
+ELF-NEXT: Section: (0x0)
+ELF-NEXT: }
+ELF-NEXT: Symbol {
ELF-NEXT: Name: trivial.ll (1)
ELF-NEXT: Value: 0x0
ELF-NEXT: Size: 0