[lld] r323849 - [ELF] - Do not forget file name when reporting duplicate symbol error for absolute symbols.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 31 00:32:35 PST 2018


Author: grimar
Date: Wed Jan 31 00:32:35 2018
New Revision: 323849

URL: http://llvm.org/viewvc/llvm-project?rev=323849&view=rev
Log:
[ELF] - Do not forget file name when reporting duplicate symbol error for absolute symbols.

When there is a duplicate absolute symbol, LLD reports <internal>
instead of known object file name currently.
Patch fixes the issue.

Differential revision: https://reviews.llvm.org/D42636

Modified:
    lld/trunk/ELF/SymbolTable.cpp
    lld/trunk/test/ELF/abs-conflict.s

Modified: lld/trunk/ELF/SymbolTable.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.cpp?rev=323849&r1=323848&r2=323849&view=diff
==============================================================================
--- lld/trunk/ELF/SymbolTable.cpp (original)
+++ lld/trunk/ELF/SymbolTable.cpp Wed Jan 31 00:32:35 2018
@@ -423,11 +423,11 @@ static void reportDuplicate(Symbol *Sym,
               toString(Sym->File) + "\n>>> defined in " + toString(NewFile));
 }
 
-static void reportDuplicate(Symbol *Sym, InputSectionBase *ErrSec,
-                            uint64_t ErrOffset) {
+static void reportDuplicate(Symbol *Sym, InputFile *NewFile,
+                            InputSectionBase *ErrSec, uint64_t ErrOffset) {
   Defined *D = cast<Defined>(Sym);
   if (!D->Section || !ErrSec) {
-    reportDuplicate(Sym, ErrSec ? ErrSec->File : nullptr);
+    reportDuplicate(Sym, NewFile);
     return;
   }
 
@@ -467,7 +467,8 @@ Symbol *SymbolTable::addRegular(StringRe
     replaceSymbol<Defined>(S, File, Name, Binding, StOther, Type, Value, Size,
                            Section);
   else if (Cmp == 0)
-    reportDuplicate(S, dyn_cast_or_null<InputSectionBase>(Section), Value);
+    reportDuplicate(S, File, dyn_cast_or_null<InputSectionBase>(Section),
+                    Value);
   return S;
 }
 

Modified: lld/trunk/test/ELF/abs-conflict.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/abs-conflict.s?rev=323849&r1=323848&r2=323849&view=diff
==============================================================================
--- lld/trunk/test/ELF/abs-conflict.s (original)
+++ lld/trunk/test/ELF/abs-conflict.s Wed Jan 31 00:32:35 2018
@@ -15,4 +15,4 @@ foo = 0x123
 
 // DUP:      duplicate symbol: foo
 // DUP-NEXT: >>> defined in {{.*}}.o
-// DUP-NEXT: >>> defined in <internal>
+// DUP-NEXT: >>> defined in {{.*}}2.o




More information about the llvm-commits mailing list