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);