[PATCH] D24113: Allow implicit conversions between incompatible pointer types in overload resolution in C.

Jan Vesely via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 6 22:03:29 PDT 2016

jvesely added a comment.

In https://reviews.llvm.org/D24113#535255, @george.burgess.iv wrote:

> Thanks for the heads-up!
> I'm assuming that below is an example of code that this patch broke?
>   void foo(int *a, int) __attribute__((overloadable));
>   void foo(unsigned int *a, unsigned int) __attribute__((overloadable));
>   void callFoo() {
>     unsigned int i;
>     foo(&i, 0u); // fine.
>     foo(&i, 0); // now-ambiguous overload.
>   }

yes, you're correct. (I'm pretty sure I tried this before posting, I must have done something wrong...) I'll send libclc patch. The specs don't really talk about overloads so I think the behaviour is OK. Although I think that users will expect atomic_add(unsigned int *, 5) to work.without error.




More information about the cfe-commits mailing list