Skip to content

Commit

Permalink
Rollup merge of rust-lang#123474 - jieyouxu:issue-7349-port, r=Mark-S…
Browse files Browse the repository at this point in the history
…imulacrum

Port `run-make/issue-7349` to a codegen test

The test does not need to be a run-make test, it can use the codegen test infrastructure.

Also took the opportunity to rename the test to `no-redundant-item-monomorphization` so it's not just some opaque issue number.

Part of rust-lang#121876.
  • Loading branch information
GuillaumeGomez authored Apr 5, 2024
2 parents 02ee8a8 + 476156a commit 0d5ee65
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 34 deletions.
1 change: 0 additions & 1 deletion src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ run-make/issue-53964/Makefile
run-make/issue-64153/Makefile
run-make/issue-68794-textrel-on-minimal-lib/Makefile
run-make/issue-69368/Makefile
run-make/issue-7349/Makefile
run-make/issue-83045/Makefile
run-make/issue-83112-incr-test-moved-file/Makefile
run-make/issue-84395-lto-embed-bitcode/Makefile
Expand Down
33 changes: 33 additions & 0 deletions tests/codegen/no-redundant-item-monomorphization.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Test to make sure that inner functions within a polymorphic outer function
// don't get re-codegened when the outer function is monomorphized. The test
// 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.

// issue: rust-lang/rust#7349
//@ compile-flags: -Cno-prepopulate-passes -Copt-level=0

// CHECK-COUNT-1: ret i32 8675309
// CHECK-COUNT-1: ret i32 11235813

fn outer<T>() {
#[allow(dead_code)]
fn inner() -> u32 {
8675309
}
inner();
}

extern "C" fn outer_foreign<T>() {
#[allow(dead_code)]
fn inner() -> u32 {
11235813
}
inner();
}

fn main() {
outer::<isize>();
outer::<usize>();
outer_foreign::<isize>();
outer_foreign::<usize>();
}
11 changes: 0 additions & 11 deletions tests/run-make/issue-7349/Makefile

This file was deleted.

22 changes: 0 additions & 22 deletions tests/run-make/issue-7349/foo.rs

This file was deleted.

0 comments on commit 0d5ee65

Please sign in to comment.