| //! Verify that we correctly handle fn pointer provenance in MIR optimizations. |
| //! By asking to inline `static_fnptr::bar`, we have two copies of `static_fnptr::foo`, one in the |
| //! auxiliary crate and one in the local crate CGU. |
| //! `baz` must only consider the versions from upstream crate, and not try to compare with the |
| //! address of the CGU-local copy. |
| //! Related issue: #123670 |
| |
| //@ 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()) |
| } |