george.burgess.iv marked 2 inline comments as done.

================
Comment at: lib/Sema/SemaOverload.cpp:1813-1815
@@ -1795,5 +1812,5 @@
   // and we don't know what conversions it may overlap with.
-  SCS.First = ICK_C_Only_Conversion;
-  SCS.Second = ICK_C_Only_Conversion;
-  SCS.Third = ICK_C_Only_Conversion;
+  SCS.First = ImplicitConv;
+  SCS.Second = ImplicitConv;
+  SCS.Third = ImplicitConv;
   return true;
----------------
rsmith wrote:
> Yuck, this violates our invariants: `First` should only ever be some kind of 
> lvalue conversion (it should in this case be an `ICK_Array_To_Pointer` or 
> `ICK_Function_To_Pointer` if the argument was an array or function, 
> respectively, and otherwise `ICK_Identity`). `Third` should only ever be 
> `ICK_Identity` or `ICK_Qualification`. It seems fine to always set `Third` to 
> `ICK_Identity` and model the qualification change as part of the second 
> "standard" conversion; this should still compare worse than any other 
> sequence by the rank test.
> 
> Now I've noticed this, I'd like to see it fixed, but since this is 
> pre-existing I don't mind whether we fix this as part of this change or 
> separately.
I'll fix this in a follow-up commit; thanks for pointing it out!


https://reviews.llvm.org/D24113



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to