auto merge of #16359 : epdtry/rust/mono-item-dedup-foreign, r=alexcrichton

Extend the changes from #16059 to the new generic foreign functions introduced by #15831.
This commit is contained in:
bors 2014-08-09 23:26:18 +00:00
commit 351cc4fc99
5 changed files with 22 additions and 9 deletions

View file

@ -2,10 +2,10 @@
# Test to make sure that inner functions within a polymorphic outer function
# don't get re-translated when the outer function is monomorphized. The test
# code monomorphizes the outer function several times, but the magic constant
# `8675309` used in the inner function should appear only once in the generated
# IR.
# code monomorphizes the outer functions several times, but the magic constants
# used in the inner functions should each appear only once in the generated IR.
all:
$(RUSTC) foo.rs --emit=ir
[ "$$(grep -c 8675309 "$(TMPDIR)/foo.ll")" -eq "1" ]
[ "$$(grep -c 11235813 "$(TMPDIR)/foo.ll")" -eq "1" ]

View file

@ -15,7 +15,16 @@ fn outer<T>() {
}
}
extern "C" fn outer_foreign<T>() {
#[allow(dead_code)]
fn inner() -> uint {
11235813
}
}
fn main() {
outer::<int>();
outer::<uint>();
outer_foreign::<int>();
outer_foreign::<uint>();
}