shafik added inline comments.
================ Comment at: clang/lib/Sema/SemaOverload.cpp:14930 LookupQualifiedName(R, Record->getDecl()); - R.suppressDiagnostics(); + R.suppressAccessDiagnostics(); ---------------- rsmith wrote: > shafik wrote: > > I was a bit conservative where I changed this but maybe we should do this > > everywhere. > Most of the other calls in this file all look wrong. `DiagnoseTwoPhaseLookup` > and `BuildRecoveryCallExpr` are doing error recovery and I think it's > appropriate for them to suppress all diagnostics, but the rest are doing > standard-mandated searches, and so should diagnose lookup ambiguity. So it looks like `BuildOverloadedArrowExpr` catches the ambiguous lookup when calling `CandidateSet.BestViableFunction(...)` while `BuildCallToObjectOfClassType(...)` does not. So if I change the `suppressDiagnostics()` call in `BuildOverloadedArrowExpr` we get double diagnostic. I am not seeing why we have the inconsistency here. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D155387/new/ https://reviews.llvm.org/D155387 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits