if (!function.is_external ())
check_rustc_attri (function.get_outer_attrs ());
+ for (const AST::Attribute &attr : function.get_outer_attrs ())
+ {
+ if (attr.get_path ().as_string () == "rustc_const_stable")
+ {
+ gate (Feature::Name::STAGED_API, attr.get_locus (),
+ "stability attributes may not be used outside of the standard "
+ "library");
+ }
+ }
+
check_lang_item_attribute (function.get_outer_attrs ());
note_stability_attribute (function.get_outer_attrs ());
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
#![feature(intrinsics)]
-
+#![feature(staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-output "loop\r*\nloop\r*\n" }
#![feature(no_core)]
#![no_core]
-
#![feature(intrinsics, lang_items)]
+#![feature(staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
// { dg-output "1\r*\n2\r*\n" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics, lang_items)]
+#![feature(intrinsics, lang_items, staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics, lang_items)]
+#![feature(intrinsics, lang_items, staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
--- /dev/null
+#![feature(no_core)]
+#![feature(intrinsics)]
+#![no_core]
+
+pub mod intrinsics {
+
+ extern "rust-intrinsic" {
+ // { dg-error "stability attributes may not be used outside of the standard library" "" { target *-*-* } .+1 }
+ #[rustc_const_stable(feature = "const_size_of", since = "1.40.0")]
+ pub fn size_of<T>() -> usize;
+ }
+}
#![feature(no_core)]
#![no_core]
-
#![feature(rustc_attrs)]
+#![feature(staged_api)]
#[rustc_const_stable(feature = "const_ascii_ctype_on_intrinsics", since = "1.47.0")]
pub fn foo() {}
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
#![feature(intrinsics)]
-
+#![feature(staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
#![feature(intrinsics)]
-
+#![feature(staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
#![feature(no_core)]
#![no_core]
-#![feature(intrinsics, lang_items)]
+#![feature(intrinsics, lang_items, staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
#![feature(no_core)]
#![no_core]
-#![feature(intrinsics, lang_items)]
+#![feature(intrinsics, lang_items, staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-output "slice_access=3\r*\n" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-options "-w" }
#![feature(no_core)]
#![no_core]
-
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-output "1\r*\n2\r*\n" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics, lang_items)]
+#![feature(intrinsics, lang_items, staged_api)]
pub use option::Option::{self, None, Some};
pub use result::Result::{self, Err, Ok};
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-additional-options "-w" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
// { dg-output "t1sz=5 t2sz=10\r*" }
#![feature(no_core)]
#![no_core]
-
-#![feature(intrinsics)]
-
+#![feature(intrinsics, staged_api)]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}