Skip to content

Commit 62f1bb0

Browse files
committed
auto merge of rust-lang#15871 : dotdash/rust/unnamed_fmtstr, r=pcwalton
2 parents 8d43e44 + 1654f08 commit 62f1bb0

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/libsyntax/ext/format.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -319,14 +319,19 @@ impl<'a, 'b> Context<'a, 'b> {
319319
/// These attributes are applied to all statics that this syntax extension
320320
/// will generate.
321321
fn static_attrs(&self) -> Vec<ast::Attribute> {
322+
// Flag statics as `inline` so LLVM can merge duplicate globals as much
323+
// as possible (which we're generating a whole lot of).
324+
let unnamed = self.ecx.meta_word(self.fmtsp, InternedString::new("inline"));
325+
let unnamed = self.ecx.attribute(self.fmtsp, unnamed);
326+
322327
// Do not warn format string as dead code
323328
let dead_code = self.ecx.meta_word(self.fmtsp,
324329
InternedString::new("dead_code"));
325330
let allow_dead_code = self.ecx.meta_list(self.fmtsp,
326331
InternedString::new("allow"),
327332
vec!(dead_code));
328333
let allow_dead_code = self.ecx.attribute(self.fmtsp, allow_dead_code);
329-
return vec!(allow_dead_code);
334+
return vec!(unnamed, allow_dead_code);
330335
}
331336

332337
fn rtpath(&self, s: &str) -> Vec<ast::Ident> {

0 commit comments

Comments
 (0)