shafik marked 4 inline comments as done.
shafik added inline comments.
================
Comment at: clang/lib/Sema/SemaOverload.cpp:15191
   OverloadCandidateSet::iterator Best;
   switch (CandidateSet.BestViableFunction(*this, OpLoc, Best)) {
   case OR_Success:
----------------
rsmith wrote:
> shafik wrote:
> > @rsmith if `R.isAmbiguous()` should we even check the overload candidates? 
> > 
> > Right now in `clang/test/SemaCXX/arrow-operator.cpp` we are getting both an 
> > ambiguous name lookup and overload diagnostic. 
> Hm, I think perhaps the ideal thing to do is: if `BestViableFunction` returns 
> `OR_Ambiguous`, the lookup was ambiguous, and we found viable functions in 
> multiple different base classes, then don't produce any further diagnostics. 
> That way, we still get good error recovery in the case where the overloading 
> is unambiguous despite the lookup being ambiguous, or when the overloading is 
> ambiguous for some reason unrelated to the ambiguous lookup.
> 
> (We'd want to do this in all the overloaded operator lookups in this file, 
> not just for `operator->`.)
I only found one other location that matched this pattern if you meant a larger 
change let me know. 


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