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

Reply via email to