about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAndrew Poelstra <apoelstra@wpsoftware.net>2014-08-04 09:46:15 -0700
committerAndrew Poelstra <apoelstra@wpsoftware.net>2014-08-04 12:52:58 -0700
commit30452d4cda331610418d4dc01023f2d1cdc1ee43 (patch)
treefecc3bedaa0363e5facb0bccee82ebc8ed34585d /src/rustllvm/RustWrapper.cpp
parentefe1f7ee9efb5da5613f2cff4f9b810d2d5992d4 (diff)
downloadrust-30452d4cda331610418d4dc01023f2d1cdc1ee43.tar.gz
rust-30452d4cda331610418d4dc01023f2d1cdc1ee43.zip
Change everything returning `libc::sockaddr_storage` to use an &mut out-ptr instead
The BSD socket code does some cast tricks with the `libc::sockaddr*`
structs, which causes useful data to be stored in struct padding.
Since Load/Store instructions do not copy struct padding, this makes
these structures dangerous to pass or return by value.

In particular, https://github.com/rust-lang/rust/issues/15763 changes
return semantics so that a Load instruction is used, breaking the TCP
code. Once this PR is merged, that one should merge without error.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions