diff options
-rw-r--r-- | lld/ELF/SymbolTable.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index 78a2df59364..fe1c06571ba 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -325,9 +325,11 @@ Symbol *SymbolTable<ELFT>::addUndefined(StringRef Name, bool IsLocal, // .symver foo,foo@@@VER // we can delete this hack. static int compareVersion(Symbol *S, StringRef Name) { - if (Name.contains("@@") && !S->body()->getName().contains("@@")) + bool A = Name.contains("@@"); + bool B = S->body()->getName().contains("@@"); + if (A && !B) return 1; - if (!Name.contains("@@") && S->body()->getName().contains("@@")) + if (!A && B) return -1; return 0; } |