2 // revisions: default mir-opt
3 //[mir-opt] compile-flags: -Zmir-opt-level=4
7 fn codegen_caller_loc() -> &'static core::panic::Location<'static> {
8 core::panic::Location::caller()
11 macro_rules! caller_location_from_macro {
12 () => (codegen_caller_loc());
16 let loc = codegen_caller_loc();
17 assert_eq!(loc.file(), file!());
18 assert_eq!(loc.line(), 16);
19 assert_eq!(loc.column(), 15);
21 // `Location::caller()` in a macro should behave similarly to `file!` and `line!`,
22 // i.e. point to where the macro was invoked, instead of the macro itself.
23 let loc2 = caller_location_from_macro!();
24 assert_eq!(loc2.file(), file!());
25 assert_eq!(loc2.line(), 23);
26 assert_eq!(loc2.column(), 16);