about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-09-17 15:20:44 -0700
committerbors <bors@rust-lang.org>2013-09-17 15:20:44 -0700
commit0efc4822e93221714aa7d142de44a057bdbad2ca (patch)
tree1e955fef1abd3d40816d92cd4fc31e10713c9fa7 /src/libsyntax/parse
parentc135cb268355afe77d2ce0313a8d3e20a4e2fdd3 (diff)
parent9adcbac30dd229490b0eb3f794fa0cd89e5f457b (diff)
downloadrust-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