diff options
author | George Burgess IV <george.burgess.iv@gmail.com> | 2016-03-23 02:33:58 +0000 |
---|---|---|
committer | George Burgess IV <george.burgess.iv@gmail.com> | 2016-03-23 02:33:58 +0000 |
commit | 6da4c20f7daa6b42205c4642d7672b0c5015ed8f (patch) | |
tree | f1b4a224491b14321d585b9656ed9e23e3187dcd /llvm/docs/ProgrammersManual.rst | |
parent | a5b2972977802227e9c3d038819b73dcb011e521 (diff) | |
download | llvm-6da4c20f7daa6b42205c4642d7672b0c5015ed8f.zip llvm-6da4c20f7daa6b42205c4642d7672b0c5015ed8f.tar.gz llvm-6da4c20f7daa6b42205c4642d7672b0c5015ed8f.tar.bz2 |
[Sema] Allow implicit conversions of &overloaded_fn in C.
Also includes a minor ``enable_if`` docs update.
Currently, our address-of overload machinery will only allow implicit
conversions of overloaded functions to void* in C. For example:
```
void f(int) __attribute__((overloadable));
void f(double) __attribute__((overloadable, enable_if(0, "")));
void *fp = f; // OK. This is C and the target is void*.
void (*fp2)(void) = f; // Error. This is C, but the target isn't void*.
```
This patch makes the assignment of `fp2` select the `f(int)` overload,
rather than emitting an error (N.B. you'll still get a warning about the
`fp2` assignment if you use -Wincompatible-pointer-types).
Differential Revision: http://reviews.llvm.org/D13704
llvm-svn: 264132
Diffstat (limited to 'llvm/docs/ProgrammersManual.rst')
0 files changed, 0 insertions, 0 deletions