about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2014-06-17 21:51:24 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2014-06-21 19:59:58 +0200
commit5e720aac4215dcd8ba1b0fd455a737d8798baea4 (patch)
tree18e1cf73c604f93a36dab9c66dbefc46731dc969 /src/rustllvm/RustWrapper.cpp
parentabdbaa2e19dcf6859ae781bb9b44fed483181229 (diff)
downloadrust-5e720aac4215dcd8ba1b0fd455a737d8798baea4.tar.gz
rust-5e720aac4215dcd8ba1b0fd455a737d8798baea4.zip
Add missing attributes to indirect calls for foreign functions
When calling a foreign function, some arguments and/or return value
attributes are required to conform to the foreign ABI. Currently those
attributes are only added to the declaration of foreign functions. With
direct calls, this is no problem, because LLVM can see that those
attributes apply to the call. But with an indirect call, LLVM cannot do
that and the attribute is missing.

To fix that, we have to add those attribute to the calls to foreign
functions as well.

This also allows to remove the special handling of the SRet attribute,
which is ABI-dependent and will be set via the `attr` field of the
return type's `ArgType`.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions