[llvm] r183337 - Don't hide the first ELF symbol.

Rafael Espindola rafael.espindola at gmail.com
Wed Jun 5 13:33:55 PDT 2013


Author: rafael
Date: Wed Jun  5 15:33:54 2013
New Revision: 183337

URL: http://llvm.org/viewvc/llvm-project?rev=183337&view=rev
Log:
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.

Modified:
    llvm/trunk/include/llvm/Object/ELF.h
    llvm/trunk/test/MC/ELF/alias-reloc.s
    llvm/trunk/test/MC/ELF/alias.s
    llvm/trunk/test/MC/ELF/weakref.s
    llvm/trunk/test/tools/llvm-readobj/symbols.test

Modified: llvm/trunk/include/llvm/Object/ELF.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELF.h?rev=183337&r1=183336&r2=183337&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/ELF.h (original)
+++ llvm/trunk/include/llvm/Object/ELF.h Wed Jun  5 15:33:54 2013
@@ -2466,7 +2466,7 @@ symbol_iterator ELFObjectFile<ELFT>::beg
     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>::beg
     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));

Modified: llvm/trunk/test/MC/ELF/alias-reloc.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/alias-reloc.s?rev=183337&r1=183336&r2=183337&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/alias-reloc.s (original)
+++ llvm/trunk/test/MC/ELF/alias-reloc.s Wed Jun  5 15:33:54 2013
@@ -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

Modified: llvm/trunk/test/MC/ELF/alias.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/alias.s?rev=183337&r1=183336&r2=183337&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/alias.s (original)
+++ llvm/trunk/test/MC/ELF/alias.s Wed Jun  5 15:33:54 2013
@@ -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

Modified: llvm/trunk/test/MC/ELF/weakref.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/weakref.s?rev=183337&r1=183336&r2=183337&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/weakref.s (original)
+++ llvm/trunk/test/MC/ELF/weakref.s Wed Jun  5 15:33:54 2013
@@ -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

Modified: llvm/trunk/test/tools/llvm-readobj/symbols.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-readobj/symbols.test?rev=183337&r1=183336&r2=183337&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-readobj/symbols.test (original)
+++ llvm/trunk/test/tools/llvm-readobj/symbols.test Wed Jun  5 15:33:54 2013
@@ -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





More information about the llvm-commits mailing list