Index: lld/COFF/SymbolTable.cpp =================================================================== --- lld/COFF/SymbolTable.cpp +++ lld/COFF/SymbolTable.cpp @@ -204,7 +204,7 @@ llvm::raw_string_ostream os(out); os << "undefined symbol: " << toString(*undefDiag.sym); - const size_t maxUndefReferences = 10; + const size_t maxUndefReferences = 3; size_t i = 0, numRefs = 0; for (const UndefinedDiag::File &ref : undefDiag.files) { std::vector symbolLocations = Index: lld/ELF/Relocations.cpp =================================================================== --- lld/ELF/Relocations.cpp +++ lld/ELF/Relocations.cpp @@ -870,7 +870,7 @@ if (msg.empty()) msg = "undefined " + visibility() + "symbol: " + toString(sym); - const size_t maxUndefReferences = 10; + const size_t maxUndefReferences = 3; size_t i = 0; for (UndefinedDiag::Loc l : undef.locs) { if (i >= maxUndefReferences) Index: lld/test/COFF/undefined-symbol-multi.s =================================================================== --- lld/test/COFF/undefined-symbol-multi.s +++ lld/test/COFF/undefined-symbol-multi.s @@ -22,14 +22,7 @@ # CHECK-NEXT: >>> referenced by {{.*}}tmp.obj:(main) # CHECK-NEXT: >>> referenced by {{.*}}tmp.obj:(main) # CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.obj:(bar) -# CHECK-NEXT: >>> referenced 2 more times +# CHECK-NEXT: >>> referenced 9 more times # CHECK-EMPTY: # CHECK-NEXT: error: undefined symbol: int __cdecl bar(void) # CHECK-NEXT: >>> referenced by {{.*}}.obj:(main) Index: lld/test/ELF/undef-multi.s =================================================================== --- lld/test/ELF/undef-multi.s +++ lld/test/ELF/undef-multi.s @@ -10,9 +10,7 @@ # CHECK-NEXT: >>> {{.*}}:(.text+0x6) # CHECK-NEXT: >>> referenced by undef-multi.s # CHECK-NEXT: >>> {{.*}}:(.text+0xB) -# CHECK-NEXT: >>> referenced by undef-multi.s -# CHECK-NEXT: >>> {{.*}}:(.text+0x10) -# CHECK-NEXT: >>> referenced by {{.*}}tmp2.o:(.text+0x0) +# CHECK-NEXT: >>> referenced 2 more times # All references to a single undefined symbol count as a single error -- but # at most 10 references are printed. @@ -36,15 +34,7 @@ # LIMIT-NEXT: >>> {{.*}}:(.text+0x6) # LIMIT-NEXT: >>> referenced by undef-multi.s # LIMIT-NEXT: >>> {{.*}}:(.text+0xB) -# LIMIT-NEXT: >>> referenced by undef-multi.s -# LIMIT-NEXT: >>> {{.*}}:(.text+0x10) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp2.o:(.text+0x0) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp3.o:(.text+0x1) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp3.o:(.text+0x6) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp3.o:(.text+0xB) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp3.o:(.text+0x10) -# LIMIT-NEXT: >>> referenced by {{.*}}tmp3.o:(.text+0x15) -# LIMIT-NEXT: >>> referenced 2 more times +# LIMIT-NEXT: >>> referenced 9 more times .file "undef-multi.s"