Index: ELF/Writer.cpp =================================================================== --- ELF/Writer.cpp +++ ELF/Writer.cpp @@ -494,7 +494,7 @@ static bool shouldKeepInSymtab(SectionBase *Sec, StringRef SymName, const Symbol &B) { - if (B.isFile() || B.isSection()) + if (B.isSection()) return false; // If sym references a section in a discarded group, don't keep it. Index: test/ELF/file-sym.s =================================================================== --- test/ELF/file-sym.s +++ test/ELF/file-sym.s @@ -6,7 +6,7 @@ # REQUIRES: x86 -# CHECK-NOT: Name: xxx +# CHECK: Name: xxx .file "xxx" .file "" Index: test/ELF/lto/data-ordering-lto.s =================================================================== --- test/ELF/lto/data-ordering-lto.s +++ test/ELF/lto/data-ordering-lto.s @@ -12,13 +12,14 @@ # Check that the order is tin -> dipsy -> pat. -# CHECK: Symbol table '.symtab' contains 5 entries: +# CHECK: Symbol table '.symtab' contains 6 entries: # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name # CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND -# CHECK-NEXT: 1: 0000000000201000 0 NOTYPE GLOBAL DEFAULT 1 _start -# CHECK-NEXT: 2: 0000000000202004 4 OBJECT GLOBAL DEFAULT 2 dipsy -# CHECK-NEXT: 3: 0000000000202008 4 OBJECT GLOBAL DEFAULT 2 pat -# CHECK-NEXT: 4: 0000000000202000 4 OBJECT GLOBAL DEFAULT 2 tin +# CHECK-NEXT: 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS {{.*}}.o +# CHECK-NEXT: 2: 0000000000201000 0 NOTYPE GLOBAL DEFAULT 1 _start +# CHECK-NEXT: 3: 0000000000202004 4 OBJECT GLOBAL DEFAULT 2 dipsy +# CHECK-NEXT: 4: 0000000000202008 4 OBJECT GLOBAL DEFAULT 2 pat +# CHECK-NEXT: 5: 0000000000202000 4 OBJECT GLOBAL DEFAULT 2 tin .globl _start _start: Index: test/ELF/lto/parallel-internalize.ll =================================================================== --- test/ELF/lto/parallel-internalize.ll +++ test/ELF/lto/parallel-internalize.ll @@ -18,6 +18,24 @@ ; CHECK-NEXT: Section: Undefined (0x0) ; CHECK-NEXT: } ; CHECK-NEXT: Symbol { +; CHECK-NEXT: Name: {{.*}}.o +; CHECK-NEXT: Value: 0x0 +; CHECK-NEXT: Size: 0 +; CHECK-NEXT: Binding: Local +; CHECK-NEXT: Type: File +; CHECK-NEXT: Other: 0 +; CHECK-NEXT: Section: Absolute +; CHECK-NEXT: } +; CHECK-NEXT: Symbol { +; CHECK-NEXT: Name: {{.*}}.o +; CHECK-NEXT: Value: 0x0 +; CHECK-NEXT: Size: 0 +; CHECK-NEXT: Binding: Local +; CHECK-NEXT: Type: File +; CHECK-NEXT: Other: 0 +; CHECK-NEXT: Section: Absolute +; CHECK-NEXT: } +; CHECK-NEXT: Symbol { ; CHECK-NEXT: Name: bar ; CHECK-NEXT: Value: 0x201010 ; CHECK-NEXT: Size: 8 Index: test/ELF/lto/relocatable.ll =================================================================== --- test/ELF/lto/relocatable.ll +++ test/ELF/lto/relocatable.ll @@ -14,6 +14,15 @@ ; CHECK-NEXT: Section: Undefined ; CHECK-NEXT: } ; CHECK-NEXT: Symbol { +; CHECK-NEXT: Name: {{.*}}.o +; CHECK-NEXT: Value: 0x0 +; CHECK-NEXT: Size: 0 +; CHECK-NEXT: Binding: Local +; CHECK-NEXT: Type: File +; CHECK-NEXT: Other: 0 +; CHECK-NEXT: Section: Absolute +; CHECK-NEXT: } +; CHECK-NEXT: Symbol { ; CHECK-NEXT: Name: ; CHECK-NEXT: Value: 0x0 ; CHECK-NEXT: Size: 0 Index: test/ELF/lto/symbol-ordering-lto.s =================================================================== --- test/ELF/lto/symbol-ordering-lto.s +++ test/ELF/lto/symbol-ordering-lto.s @@ -12,12 +12,13 @@ # Check that the order is tin -> _start -> pat. -# CHECK: Symbol table '.symtab' contains 4 entries: +# CHECK: Symbol table '.symtab' contains 5 entries: # CHECK-NEXT: Num: Value Size Type Bind Vis Ndx Name # CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND -# CHECK-NEXT: 1: 0000000000201008 0 NOTYPE GLOBAL DEFAULT 1 _start -# CHECK-NEXT: 2: 0000000000201020 6 FUNC GLOBAL DEFAULT 1 pat -# CHECK-NEXT: 3: 0000000000201000 6 FUNC GLOBAL DEFAULT 1 tin +# CHECK-NEXT: 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS {{.*}}.o +# CHECK-NEXT: 2: 0000000000201008 0 NOTYPE GLOBAL DEFAULT 1 _start +# CHECK-NEXT: 3: 0000000000201020 6 FUNC GLOBAL DEFAULT 1 pat +# CHECK-NEXT: 4: 0000000000201000 6 FUNC GLOBAL DEFAULT 1 tin .globl _start _start: