diff options
| author | bors <bors@rust-lang.org> | 2013-09-17 15:20:44 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-09-17 15:20:44 -0700 |
| commit | 0efc4822e93221714aa7d142de44a057bdbad2ca (patch) | |
| tree | 1e955fef1abd3d40816d92cd4fc31e10713c9fa7 /src/libsyntax/parse | |
| parent | c135cb268355afe77d2ce0313a8d3e20a4e2fdd3 (diff) | |
| parent | 9adcbac30dd229490b0eb3f794fa0cd89e5f457b (diff) | |
| download | rust-0efc4822e93221714aa7d142de44a057bdbad2ca.tar.gz rust-0efc4822e93221714aa7d142de44a057bdbad2ca.zip | |
auto merge of #9257 : alexcrichton/rust/better-address-insignificant, r=thestinger
If a static is flagged as address_insignificant, then for LLVM to actually perform the relevant optimization it must have an internal linkage type. What this means, though, is that the static will not be available to other crates. Hence, if you have a generic function with an inner static, it will fail to link when built as a library because other crates will attempt to use the inner static externally. This gets around the issue by inlining the static into the metadata. The same relevant optimization is then applied separately in the external crate. What this ends up meaning is that all statics tagged with #[address_insignificant] will appear at most once per crate (by value), but they could appear in multiple crates. This should be the last blocker for using format! ...
Diffstat (limited to 'src/libsyntax/parse')
0 files changed, 0 insertions, 0 deletions
