diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2024-04-09 23:17:45 +0000 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2024-05-04 19:26:50 +0000 |
| commit | 9aec5c5bcecad566a76fc7dbb819aa0e58a23671 (patch) | |
| tree | 5ee04597130a5cc261438817a2b11ced54bf3520 | |
| parent | 1a851da73cdeb02e2c62d301aa6bd98e515a50da (diff) | |
| download | rust-9aec5c5bcecad566a76fc7dbb819aa0e58a23671.tar.gz rust-9aec5c5bcecad566a76fc7dbb819aa0e58a23671.zip | |
Add test for fn pointer duplication.
| -rw-r--r-- | tests/ui/mir/auxiliary/static_fnptr.rs | 10 | ||||
| -rw-r--r-- | tests/ui/mir/static_fnptr.rs | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/tests/ui/mir/auxiliary/static_fnptr.rs b/tests/ui/mir/auxiliary/static_fnptr.rs new file mode 100644 index 00000000000..a48ee6c0121 --- /dev/null +++ b/tests/ui/mir/auxiliary/static_fnptr.rs @@ -0,0 +1,10 @@ +//@ compile-flags:-O + +fn foo() {} + +pub static ADDR: fn() = foo; + +#[inline(always)] +pub fn bar(x: fn()) -> bool { + x == ADDR +} diff --git a/tests/ui/mir/static_fnptr.rs b/tests/ui/mir/static_fnptr.rs new file mode 100644 index 00000000000..571dcf4463e --- /dev/null +++ b/tests/ui/mir/static_fnptr.rs @@ -0,0 +1,14 @@ +//@ run-pass +//@ compile-flags:-Cno-prepopulate-passes -Copt-level=0 +//@ aux-build:static_fnptr.rs + +extern crate static_fnptr; +use static_fnptr::{ADDR, bar}; + +fn baz() -> bool { + bar(ADDR) +} + +fn main() { + assert!(baz()) +} |
