Index: lld/trunk/ELF/SymbolTable.cpp =================================================================== --- lld/trunk/ELF/SymbolTable.cpp +++ lld/trunk/ELF/SymbolTable.cpp @@ -339,9 +339,9 @@ // files) form group 2. E forms group 3. I think that you can see how this // group assignment rule simulates the traditional linker's semantics. static void checkBackrefs(StringRef Name, InputFile *Old, InputFile *New) { - if (Config->WarnBackrefs && Old && New->GroupId < Old->GroupId) - warn("backward reference detected: " + Name + " in " + toString(Old) + - " refers to " + toString(New)); + if (Config->WarnBackrefs && New && Old->GroupId < New->GroupId) + warn("backward reference detected: " + Name + " in " + toString(New) + + " refers to " + toString(Old)); } template @@ -376,7 +376,7 @@ return S; } - checkBackrefs(Name, File, S->File); + checkBackrefs(Name, S->File, File); fetchLazy(S); } return S;