aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2008-01-17 17:46:27 +0000
committerNate Begeman <natebegeman@mac.com>2008-01-17 17:46:27 +0000
commite2ce1d9440186cf3332368291cd884a6e3ae8946 (patch)
tree537c915d63c968b3040887dcffde9d7f0c68ba7a /CodeGen/CodeGenModule.cpp
parentfaf5e779d16bb4590f2a97e1c7ded255eddd90f3 (diff)
Implement basic overload support via a new builtin, __builtin_overload.
__builtin_overload takes 2 or more arguments: 0) a non-zero constant-expr for the number of arguments the overloaded functions will take 1) the arguments to pass to the matching overloaded function 2) a list of functions to match. The return type of __builtin_overload is inferred from the function whose args match the types of the arguments passed to the builtin. For example: float a; float sinf(float); int sini(int); float b = __builtin_overload(1, a, sini, sinf); Says that we are overloading functions that take one argument, and trying to pass an argument of the same type as 'a'. sini() does not match since it takes and argument of type int. sinf does match, so at codegen time this will turn into float b = sinf(a); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46132 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions