add test ensuring we cannot call const-stable unstable functions

This commit is contained in:
Ralf Jung 2024-09-30 20:49:35 +02:00
parent 5c3ceb3bd9
commit 7650307c0e
3 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,13 @@
#![feature(staged_api, rustc_attrs, intrinsics)]
#![stable(since="1.0.0", feature = "stable")]
extern "rust-intrinsic" {
#[unstable(feature = "unstable", issue = "42")]
#[rustc_const_stable(feature = "stable", since = "1.0.0")]
#[rustc_nounwind]
pub fn write_bytes<T>(dst: *mut T, val: u8, count: usize);
}
#[unstable(feature = "unstable", issue = "42")]
#[rustc_const_stable(feature = "stable", since = "1.0.0")]
pub const fn some_unstable_fn() {}

View File

@ -0,0 +1,14 @@
//@ aux-build:unstable_but_const_stable.rs
extern crate unstable_but_const_stable;
use unstable_but_const_stable::*;
fn main() {
some_unstable_fn(); //~ERROR use of unstable library feature
unsafe { write_bytes(4 as *mut u8, 0, 0) }; //~ERROR use of unstable library feature
}
const fn const_main() {
some_unstable_fn(); //~ERROR use of unstable library feature
unsafe { write_bytes(4 as *mut u8, 0, 0) }; //~ERROR use of unstable library feature
}

View File

@ -0,0 +1,43 @@
error[E0658]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:7:5
|
LL | some_unstable_fn();
| ^^^^^^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:8:14
|
LL | unsafe { write_bytes(4 as *mut u8, 0, 0) };
| ^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:12:5
|
LL | some_unstable_fn();
| ^^^^^^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error[E0658]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:13:14
|
LL | unsafe { write_bytes(4 as *mut u8, 0, 0) };
| ^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0658`.