tra added inline comments.
================ Comment at: clang/test/SemaCUDA/function-overload.cu:616 +// HDs have type mismatch whereas H has type match. +// In device compilation, H wins when -fgpu-defer-diag is off and two HD win +// when -fgpu-defer-diags is on. In both cases the diagnostic should be ---------------- yaxunl wrote: > tra wrote: > > One thing that bothers me about this comment is that `-fgpu-defer-diag` > > apparently changes the result of the overload resolution, not just > > deferring diags. > without -fgpu-defer-diag we have to keep the old incorrect overloading > resolution since otherwise it breaks existing code. > > We can only have correct overloading resolution with -fgpu-defer-diag on. > > If we want to have correct overloading resolution, not depending on whether > -fgpu-defer-diag is on or off, we have to turn on -fgpu-defer-diag by > default. In this case no existing code will be broken. > We can only have correct overloading resolution with -fgpu-defer-diag on. `-fgpu-defer-diags` is a **prerequisite** for fixing overload resolution. I'm fine with that. Making it serve the double duty of **affecting** the overload resolution is what I was pointing at. We should have a knob `fix-overload-resolution` which would then turn `-fgpu-defer-diag` on, not the other way around. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D80450/new/ https://reviews.llvm.org/D80450 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits