From fb36440b7a0d2444dd079876d4fde6b0ee9d5670 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Sat, 8 Feb 2020 23:46:57 +0200 Subject: [PATCH] test: ensure #[track_caller] tests also test MIR inlining. --- .../rfc-2091-track-caller/caller-location-intrinsic.rs | 6 ++++-- .../ui/rfc-2091-track-caller/const-caller-location.rs | 10 ++++++---- src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs | 6 ++++-- src/test/ui/rfc-2091-track-caller/pass.rs | 3 +++ .../ui/rfc-2091-track-caller/std-panic-locations.rs | 2 ++ .../ui/rfc-2091-track-caller/track-caller-attribute.rs | 10 ++++++---- .../rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs | 2 ++ src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs | 2 ++ 8 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs index f244b74e391..b2ed8a0d7da 100644 --- a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs +++ b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 #[inline(never)] #[track_caller] @@ -13,13 +15,13 @@ macro_rules! caller_location_from_macro { fn main() { let loc = codegen_caller_loc(); assert_eq!(loc.file(), file!()); - assert_eq!(loc.line(), 14); + assert_eq!(loc.line(), 16); assert_eq!(loc.column(), 15); // `Location::caller()` in a macro should behave similarly to `file!` and `line!`, // i.e. point to where the macro was invoked, instead of the macro itself. let loc2 = caller_location_from_macro!(); assert_eq!(loc2.file(), file!()); - assert_eq!(loc2.line(), 21); + assert_eq!(loc2.line(), 23); assert_eq!(loc2.column(), 16); } diff --git a/src/test/ui/rfc-2091-track-caller/const-caller-location.rs b/src/test/ui/rfc-2091-track-caller/const-caller-location.rs index 8030a4d967a..89a42acafba 100644 --- a/src/test/ui/rfc-2091-track-caller/const-caller-location.rs +++ b/src/test/ui/rfc-2091-track-caller/const-caller-location.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 #![feature(const_caller_location, const_fn)] @@ -24,18 +26,18 @@ const fn contained() -> &'static Location<'static> { fn main() { assert_eq!(LOCATION.file(), file!()); - assert_eq!(LOCATION.line(), 7); + assert_eq!(LOCATION.line(), 9); assert_eq!(LOCATION.column(), 29); assert_eq!(TRACKED.file(), file!()); - assert_eq!(TRACKED.line(), 9); + assert_eq!(TRACKED.line(), 11); assert_eq!(TRACKED.column(), 28); assert_eq!(NESTED.file(), file!()); - assert_eq!(NESTED.line(), 17); + assert_eq!(NESTED.line(), 19); assert_eq!(NESTED.column(), 5); assert_eq!(CONTAINED.file(), file!()); - assert_eq!(CONTAINED.line(), 22); + assert_eq!(CONTAINED.line(), 24); assert_eq!(CONTAINED.column(), 5); } diff --git a/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs b/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs index 74217f47084..d072fb76f10 100644 --- a/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs +++ b/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 macro_rules! caller_location_from_macro { () => (core::panic::Location::caller()); @@ -7,13 +9,13 @@ macro_rules! caller_location_from_macro { fn main() { let loc = core::panic::Location::caller(); assert_eq!(loc.file(), file!()); - assert_eq!(loc.line(), 8); + assert_eq!(loc.line(), 10); assert_eq!(loc.column(), 15); // `Location::caller()` in a macro should behave similarly to `file!` and `line!`, // i.e. point to where the macro was invoked, instead of the macro itself. let loc2 = caller_location_from_macro!(); assert_eq!(loc2.file(), file!()); - assert_eq!(loc2.line(), 15); + assert_eq!(loc2.line(), 17); assert_eq!(loc2.column(), 16); } diff --git a/src/test/ui/rfc-2091-track-caller/pass.rs b/src/test/ui/rfc-2091-track-caller/pass.rs index ada150b25cf..4d548d4f0aa 100644 --- a/src/test/ui/rfc-2091-track-caller/pass.rs +++ b/src/test/ui/rfc-2091-track-caller/pass.rs @@ -1,4 +1,7 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 + #[track_caller] fn f() {} diff --git a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs index d6a3a760b3e..0d7a5c42532 100644 --- a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs +++ b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs @@ -1,5 +1,7 @@ // run-pass // ignore-wasm32-bare compiled with panic=abort by default +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 #![feature(option_expect_none, option_unwrap_none)] #![allow(unconditional_panic)] diff --git a/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs b/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs index efcc1f6942d..43135ebbf65 100644 --- a/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs +++ b/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 use std::panic::Location; @@ -18,21 +20,21 @@ fn nested_tracked() -> &'static Location<'static> { fn main() { let location = Location::caller(); assert_eq!(location.file(), file!()); - assert_eq!(location.line(), 19); + assert_eq!(location.line(), 21); assert_eq!(location.column(), 20); let tracked = tracked(); assert_eq!(tracked.file(), file!()); - assert_eq!(tracked.line(), 24); + assert_eq!(tracked.line(), 26); assert_eq!(tracked.column(), 19); let nested = nested_intrinsic(); assert_eq!(nested.file(), file!()); - assert_eq!(nested.line(), 11); + assert_eq!(nested.line(), 13); assert_eq!(nested.column(), 5); let contained = nested_tracked(); assert_eq!(contained.file(), file!()); - assert_eq!(contained.line(), 15); + assert_eq!(contained.line(), 17); assert_eq!(contained.column(), 5); } diff --git a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs index 5fcfea96d54..2122a4ca219 100644 --- a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs +++ b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 fn pass_to_ptr_call(f: fn(T), x: T) { f(x); diff --git a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs index 4415d850c24..922d2d7b702 100644 --- a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs +++ b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs @@ -1,4 +1,6 @@ // run-pass +// revisions: default mir-opt +//[mir-opt] compile-flags: -Zmir-opt-level=3 fn ptr_call(f: fn()) { f();