]> git.lizzy.rs Git - rust.git/commitdiff
Update UB test to fail during build with contant errors
authorNazım Can Altınova <canaltinova@gmail.com>
Sat, 18 Jul 2020 00:27:41 +0000 (02:27 +0200)
committerNazım Can Altınova <canaltinova@gmail.com>
Sat, 18 Jul 2020 00:27:47 +0000 (02:27 +0200)
src/test/ui/consts/const_unsafe_unreachable_ub.rs
src/test/ui/consts/const_unsafe_unreachable_ub.stderr

index 2e4dfd1522b9a559a6c1f4c6bd1fbec44442e53c..11920d852e02feaffc2c6d0d8c05f06399084d3a 100644 (file)
@@ -1,3 +1,5 @@
+// build-fail
+
 #![feature(const_fn)]
 #![feature(const_unreachable_unchecked)]
 
@@ -8,8 +10,11 @@
     }
 }
 
+#[warn(const_err)]
 const BAR: bool = unsafe { foo(false) };
 
 fn main() {
   assert_eq!(BAR, true);
+  //~^ ERROR E0080
+  //~| ERROR erroneous constant
 }
index 0a7aa4e00214f67608765dc9ec8c31399c0641b2..3ef8043a54d8877d503e9e8be65a55ef26223d31 100644 (file)
@@ -1,4 +1,4 @@
-error: any use of this value will cause an error
+warning: any use of this value will cause an error
   --> $SRC_DIR/libcore/hint.rs:LL:COL
    |
 LL |     unsafe { intrinsics::unreachable() }
@@ -6,15 +6,39 @@ LL |     unsafe { intrinsics::unreachable() }
    |              |
    |              entering unreachable code
    |              inside `std::hint::unreachable_unchecked` at $SRC_DIR/libcore/hint.rs:LL:COL
-   |              inside `foo` at $DIR/const_unsafe_unreachable_ub.rs:7:18
-   |              inside `BAR` at $DIR/const_unsafe_unreachable_ub.rs:11:28
+   |              inside `foo` at $DIR/const_unsafe_unreachable_ub.rs:9:18
+   |              inside `BAR` at $DIR/const_unsafe_unreachable_ub.rs:14:28
    | 
-  ::: $DIR/const_unsafe_unreachable_ub.rs:11:1
+  ::: $DIR/const_unsafe_unreachable_ub.rs:14:1
    |
 LL | const BAR: bool = unsafe { foo(false) };
    | ----------------------------------------
    |
+note: the lint level is defined here
+  --> $DIR/const_unsafe_unreachable_ub.rs:13:8
+   |
+LL | #[warn(const_err)]
+   |        ^^^^^^^^^
+
+error[E0080]: evaluation of constant expression failed
+  --> $DIR/const_unsafe_unreachable_ub.rs:17:3
+   |
+LL |   assert_eq!(BAR, true);
+   |   ^^^^^^^^^^^---^^^^^^^^
+   |              |
+   |              referenced constant has errors
+   |
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: erroneous constant used
+  --> $DIR/const_unsafe_unreachable_ub.rs:17:3
+   |
+LL |   assert_eq!(BAR, true);
+   |   ^^^^^^^^^^^^^^^^^^^^^^ referenced constant has errors
+   |
    = note: `#[deny(const_err)]` on by default
+   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: aborting due to previous error
+error: aborting due to 2 previous errors; 1 warning emitted
 
+For more information about this error, try `rustc --explain E0080`.