diff options
| author | Andrew Poelstra <apoelstra@wpsoftware.net> | 2014-08-04 09:46:15 -0700 |
|---|---|---|
| committer | Andrew Poelstra <apoelstra@wpsoftware.net> | 2014-08-04 12:52:58 -0700 |
| commit | 30452d4cda331610418d4dc01023f2d1cdc1ee43 (patch) | |
| tree | fecc3bedaa0363e5facb0bccee82ebc8ed34585d /src/rustllvm/RustWrapper.cpp | |
| parent | efe1f7ee9efb5da5613f2cff4f9b810d2d5992d4 (diff) | |
| download | rust-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
