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