From 7afc5f09e9b3068cdbae62a75ce17ef70f338d0d Mon Sep 17 00:00:00 2001 From: Ryutaro Okada <1015ryu88@gmail.com> Date: Fri, 8 Aug 2025 08:02:19 -0700 Subject: [PATCH 01/11] gccrs: Add derived set to collect derived nodes. gcc/rust/ChangeLog: * expand/rust-expand-visitor.cc (builtin_derive_item): Collect derived nodes. (derive_item): Collect derived nodes. * util/rust-hir-map.cc (Mappings::add_derived_nodes): Add derived set to collect derived nodes. (Mappings::is_derived_node): Add derived set to collect derived nodes. * util/rust-hir-map.h: Add derived set to collect derived nodes. Signed-off-by: Ryutaro Okada <1015ryu88@gmail.com> --- gcc/rust/expand/rust-expand-visitor.cc | 8 +++++++- gcc/rust/util/rust-hir-map.cc | 12 ++++++++++++ gcc/rust/util/rust-hir-map.h | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc index 4593cc3f9308..6e98a5c3724e 100644 --- a/gcc/rust/expand/rust-expand-visitor.cc +++ b/gcc/rust/expand/rust-expand-visitor.cc @@ -18,6 +18,7 @@ #include "rust-expand-visitor.h" #include "rust-ast-fragment.h" +#include "rust-hir-map.h" #include "rust-item.h" #include "rust-proc-macro.h" #include "rust-attributes.h" @@ -48,7 +49,10 @@ static std::vector> builtin_derive_item (AST::Item &item, const AST::Attribute &derive, BuiltinMacro to_derive) { - return AST::DeriveVisitor::derive (item, derive, to_derive); + auto items = AST::DeriveVisitor::derive (item, derive, to_derive); + for (auto &item : items) + Analysis::Mappings::get ().add_derived_node (item->get_node_id ()); + return items; } static std::vector> @@ -64,6 +68,8 @@ derive_item (AST::Item &item, AST::SimplePath &to_derive, switch (node.get_kind ()) { case AST::SingleASTNode::Kind::Item: + Analysis::Mappings::get ().add_derived_node ( + node.get_item ()->get_node_id ()); result.push_back (node.take_item ()); break; default: diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index 1587c7ee7a22..a6d323e36144 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -1358,5 +1358,17 @@ Mappings::lookup_captures (NodeId closure) return cap->second; } +void +Mappings::add_derived_node (NodeId node_id) +{ + derived_nodes.insert (node_id); +} + +bool +Mappings::is_derived_node (NodeId node_id) +{ + return derived_nodes.find (node_id) != derived_nodes.end (); +} + } // namespace Analysis } // namespace Rust diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h index 8a284cb938bd..60066d6cdd09 100644 --- a/gcc/rust/util/rust-hir-map.h +++ b/gcc/rust/util/rust-hir-map.h @@ -350,6 +350,9 @@ class Mappings void add_capture (NodeId closure, NodeId definition); tl::optional> lookup_captures (NodeId closure); + void add_derived_node (NodeId node_id); + bool is_derived_node (NodeId node_id); + private: Mappings (); @@ -443,6 +446,8 @@ class Mappings // Closure AST NodeId -> vector of Definition node ids std::unordered_map> captures; + + std::set derived_nodes; }; } // namespace Analysis From 8c5ed98869b882d4234835e28156ae0d0bbc84d2 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 26 Nov 2025 15:46:04 +0100 Subject: [PATCH 02/11] gccrs: Remove non-leaf item in crate parsing failure error gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_items): Remove item parsing error. gcc/testsuite/ChangeLog: * rust/compile/braced_macro_arm.rs: Remove superfluous error message matching. * rust/compile/decl_macro6.rs: Likewise. * rust/compile/decl_macro7.rs: Likewise. * rust/compile/extern_type_item_missing_semi.rs: Likewise. * rust/compile/issue-2187.rs: Likewise. * rust/compile/issue-407-2.rs: Likewise. * rust/compile/issue-407.rs: Likewise. * rust/compile/issue-4162.rs: Likewise. * rust/compile/issue-867.rs: Likewise. * rust/compile/macros/mbe/macro-issue1053-2.rs: Likewise. * rust/compile/macros/mbe/macro-issue1395-2.rs: Likewise. * rust/compile/macros/mbe/macro-issue3608.rs: Likewise. * rust/compile/macros/mbe/macro27.rs: Likewise. * rust/compile/macros/mbe/macro28.rs: Likewise. * rust/compile/macros/mbe/macro29.rs: Likewise. * rust/compile/macros/mbe/macro30.rs: Likewise. * rust/compile/macros/mbe/macro31.rs: Likewise. * rust/compile/macros/mbe/macro33.rs: Likewise. * rust/compile/macros/mbe/macro35.rs: Likewise. * rust/compile/macros/mbe/macro37.rs: Likewise. * rust/compile/macros/mbe/macro38.rs: Likewise. * rust/compile/macros/mbe/macro39.rs: Likewise. * rust/compile/macros/mbe/macro48.rs: Likewise. * rust/compile/parse_invalid_specialization.rs: Likewise. * rust/compile/parse_simple_path_fail_1.rs: Likewise. * rust/compile/parse_simple_path_fail_2.rs: Likewise. * rust/compile/raw-string-loc.rs: Likewise. * rust/compile/raw-byte-string-loc.rs: Likewise. * rust/compile/self_const_ptr.rs: Likewise. * rust/compile/self_mut_ptr.rs: Likewise. * rust/compile/static_var1.rs: Likewise. * rust/compile/self_ptr.rs: Likewise. * rust/compile/torture/identifier-missing-impl-1.rs: Likewise. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/parse/rust-parse-impl.h | 4 ---- gcc/testsuite/rust/compile/braced_macro_arm.rs | 1 - gcc/testsuite/rust/compile/decl_macro6.rs | 1 - gcc/testsuite/rust/compile/decl_macro7.rs | 1 - gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs | 1 - gcc/testsuite/rust/compile/issue-2187.rs | 1 - gcc/testsuite/rust/compile/issue-407-2.rs | 1 - gcc/testsuite/rust/compile/issue-407.rs | 1 - gcc/testsuite/rust/compile/issue-4162.rs | 1 - gcc/testsuite/rust/compile/issue-867.rs | 3 +-- gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs | 5 ++--- gcc/testsuite/rust/compile/macros/mbe/macro27.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro28.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro29.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro30.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro31.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro33.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro35.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro37.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro38.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro39.rs | 1 - gcc/testsuite/rust/compile/macros/mbe/macro48.rs | 5 ++--- gcc/testsuite/rust/compile/parse_invalid_specialization.rs | 1 - gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs | 1 - gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs | 2 -- gcc/testsuite/rust/compile/raw-byte-string-loc.rs | 1 - gcc/testsuite/rust/compile/raw-string-loc.rs | 1 - gcc/testsuite/rust/compile/self_const_ptr.rs | 1 - gcc/testsuite/rust/compile/self_mut_ptr.rs | 1 - gcc/testsuite/rust/compile/self_ptr.rs | 1 - gcc/testsuite/rust/compile/static_var1.rs | 2 +- .../rust/compile/torture/identifier-missing-impl-1.rs | 1 - 34 files changed, 6 insertions(+), 43 deletions(-) diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index afc701230951..1ffddabf74d6 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -431,10 +431,6 @@ Parser::parse_items () std::unique_ptr item = parse_item (false); if (item == nullptr) { - Error error (lexer.peek_token ()->get_locus (), - "failed to parse item in crate"); - add_error (std::move (error)); - // TODO: should all items be cleared? items = std::vector> (); break; diff --git a/gcc/testsuite/rust/compile/braced_macro_arm.rs b/gcc/testsuite/rust/compile/braced_macro_arm.rs index 14468786f509..9bcd1a69c9fb 100644 --- a/gcc/testsuite/rust/compile/braced_macro_arm.rs +++ b/gcc/testsuite/rust/compile/braced_macro_arm.rs @@ -12,7 +12,6 @@ fn h(c: bool) { false => () // { dg-error "exprwithoutblock requires comma after match case expression in match arm \\(if not final case\\)" "" { target *-*-* } .-1 } // { dg-error "unrecognised token .false. for start of item" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } }; } diff --git a/gcc/testsuite/rust/compile/decl_macro6.rs b/gcc/testsuite/rust/compile/decl_macro6.rs index 5c5e7002a980..b290b4c98204 100644 --- a/gcc/testsuite/rust/compile/decl_macro6.rs +++ b/gcc/testsuite/rust/compile/decl_macro6.rs @@ -2,4 +2,3 @@ macro m {} // { dg-error "unexpected token .\}. - expecting delimiters .for a macro matcher." "" { target *-*-* } .-1 } // { dg-error "required first macro rule in declarative macro definition could not be parsed" "" { target *-*-* } .-2 } -// { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } diff --git a/gcc/testsuite/rust/compile/decl_macro7.rs b/gcc/testsuite/rust/compile/decl_macro7.rs index 7327fb567821..800754441840 100644 --- a/gcc/testsuite/rust/compile/decl_macro7.rs +++ b/gcc/testsuite/rust/compile/decl_macro7.rs @@ -1,4 +1,3 @@ #![feature(decl_macro)] pub macro hello() [ "Hello" ] // { dg-error "only braces can be used for a macro transcriber in declarative macro definition" "" { target *-*-* } .-1 } -// { dg-error "failed to parse item in crate" } \ No newline at end of file diff --git a/gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs b/gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs index a42af02210fa..cd4d4e2cd540 100644 --- a/gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs +++ b/gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs @@ -4,4 +4,3 @@ extern "C" { type F; type E // { dg-error "failed to parse" } } // { dg-error "expecting" } -// { dg-error "failed to parse item in crate" "" { target *-*-* } .-1 } diff --git a/gcc/testsuite/rust/compile/issue-2187.rs b/gcc/testsuite/rust/compile/issue-2187.rs index deef417a668b..78d843ec8329 100644 --- a/gcc/testsuite/rust/compile/issue-2187.rs +++ b/gcc/testsuite/rust/compile/issue-2187.rs @@ -8,4 +8,3 @@ const D: &'static str = " "; ERROR_TIME // { dg-error "unrecognised token" "" { target *-*-* } .-1 } -// { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } diff --git a/gcc/testsuite/rust/compile/issue-407-2.rs b/gcc/testsuite/rust/compile/issue-407-2.rs index 2d60d6d72b89..002d998a95eb 100644 --- a/gcc/testsuite/rust/compile/issue-407-2.rs +++ b/gcc/testsuite/rust/compile/issue-407-2.rs @@ -10,7 +10,6 @@ pub fn loopy() { // { dg-error {failed to parse if body block expression in if expression} "" { target *-*-* } .-2 } // { dg-error {could not parse loop body in \(infinite\) loop expression} "" { target *-*-* } .-3 } // { dg-error {unrecognised token 'integer literal' for start of item} "" { target *-*-* } .-4 } - // { dg-error {failed to parse item in crate} "" { target *-*-* } .-5 } } else { break; } diff --git a/gcc/testsuite/rust/compile/issue-407.rs b/gcc/testsuite/rust/compile/issue-407.rs index bd0d3069b109..9188c2c6b07d 100644 --- a/gcc/testsuite/rust/compile/issue-407.rs +++ b/gcc/testsuite/rust/compile/issue-407.rs @@ -4,5 +4,4 @@ fn test() { a + = 1; // { dg-error "found unexpected token '=' in null denotation" } // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-1 } // { dg-error {unrecognised token 'integer literal' for start of item} "" { target *-*-* } .-2 } - // { dg-error {failed to parse item in crate} "" { target *-*-* } .-3 } } diff --git a/gcc/testsuite/rust/compile/issue-4162.rs b/gcc/testsuite/rust/compile/issue-4162.rs index c82bac611d3e..7caf8870c05d 100644 --- a/gcc/testsuite/rust/compile/issue-4162.rs +++ b/gcc/testsuite/rust/compile/issue-4162.rs @@ -3,7 +3,6 @@ pub fn main() { // { dg-error "should be at least 1 pattern" "" { target *-*-* } .-1 } // { dg-error "failed to parse statement or expression in block expression" "" { target *-*-* } .-2 } // { dg-error "unrecognised token .=. for start of item" "" { target *-*-* } .-3 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-4 } {} } diff --git a/gcc/testsuite/rust/compile/issue-867.rs b/gcc/testsuite/rust/compile/issue-867.rs index e5f9b29bd595..c61de09d8abb 100644 --- a/gcc/testsuite/rust/compile/issue-867.rs +++ b/gcc/testsuite/rust/compile/issue-867.rs @@ -3,6 +3,5 @@ fn main() { let a = _ + 123; // { dg-error "use of '_' is not allowed on the right-side of an assignment" } // { dg-error {failed to parse expression in let statement} "" { target *-*-* } .-1 } // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-2 } - // { dg-error {unrecognised token '\}' for start of item} "" { target *-*-* } .+2 } - // { dg-error {failed to parse item in crate} "" { target *-*-* } .+1 } + // { dg-error {unrecognised token '\}' for start of item} "" { target *-*-* } .+1 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs index 31459907c08f..fc96caa1b4ea 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs @@ -1,5 +1,4 @@ macro_rules! m { ($e:expr $(forbidden)*) => {{}}; // { dg-error "token .identifier. is not allowed after .expr. fragment" } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs index 1df6a3a00384..7ff380d891df 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs @@ -2,6 +2,5 @@ macro_rules! try { // { dg-error "expecting .identifier. but .try. found" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } () => {}; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs index 15207992ad27..381f1210afdf 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs @@ -7,6 +7,5 @@ impl Bar for fn main() { )// { dg-error "unexpected closing delimiter .\\). - token tree requires either paired delimiters or non-delimiter tokens" } // { dg-error "failed to parse token tree in delimited token tree - found .\\)." "" { target *-*-* } .-1 } - // { dg-error "unexpected token .end of file. - expecting closing delimiter .\}. .for a delimited token tree." "" { target *-*-* } .+3 } - // { dg-error "unexpected token .end of file. - expecting closing delimiter .\\). .for a macro invocation semi." "" { target *-*-* } .+2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .+1 } + // { dg-error "unexpected token .end of file. - expecting closing delimiter .\}. .for a delimited token tree." "" { target *-*-* } .+2 } + // { dg-error "unexpected token .end of file. - expecting closing delimiter .\\). .for a macro invocation semi." "" { target *-*-* } .+1 } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro27.rs b/gcc/testsuite/rust/compile/macros/mbe/macro27.rs index ee7833be0a6e..b9f392f64023 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro27.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro27.rs @@ -2,7 +2,6 @@ macro_rules! m { ($a:expr tok) => { // { dg-error "token .identifier. is not allowed after .expr. fragment" "" { target *-*-* } .-1 } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } $a }; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro28.rs b/gcc/testsuite/rust/compile/macros/mbe/macro28.rs index 8002f284ecff..bbe55a76c29d 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro28.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro28.rs @@ -2,7 +2,6 @@ macro_rules! m { ($a:expr $(tok $es:expr)*) => { // { dg-error "token .identifier. is not allowed after .expr. fragment" "" { target *-*-* } .-1 } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } $a }; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro29.rs b/gcc/testsuite/rust/compile/macros/mbe/macro29.rs index 39f5021b74f7..a6c9eb5271d3 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro29.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro29.rs @@ -2,7 +2,6 @@ macro_rules! m { ($($es:expr)* tok) => { // { dg-error "token .identifier. is not allowed after .expr. fragment" "" { target *-*-* } .-1 } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } $a }; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro30.rs b/gcc/testsuite/rust/compile/macros/mbe/macro30.rs index 35064bc0ee58..097272edcb78 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro30.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro30.rs @@ -2,7 +2,6 @@ macro_rules! m { ($e:expr $f:expr) => { // { dg-error "fragment is not allowed after .expr. fragment" "" { target *-*-* } .-1 } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } $e }; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro31.rs b/gcc/testsuite/rust/compile/macros/mbe/macro31.rs index 6674a5fe554b..30fae48f91f3 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro31.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro31.rs @@ -2,7 +2,6 @@ macro_rules! m { ($($e:expr)* $($f:expr)*) => { // { dg-error "fragment is not allowed after .expr. fragment" "" { target *-*-* } .-1 } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } $e }; } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro33.rs b/gcc/testsuite/rust/compile/macros/mbe/macro33.rs index 2ccd33e50d3a..a73d245a5426 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro33.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro33.rs @@ -1,5 +1,4 @@ macro_rules! forbidden_frag { ($t:ty $not_block:ident) => {{}}; // { dg-error "fragment specifier .ident. is not allowed after .ty. fragments" } // { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro35.rs b/gcc/testsuite/rust/compile/macros/mbe/macro35.rs index 07b157b53c2f..8c295d4ffeb0 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro35.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro35.rs @@ -3,5 +3,4 @@ macro_rules! inside_matcher { // { dg-error "failed to parse macro matcher" "" { target *-*-* } .-1 } // { dg-error "failed to parse macro match" "" { target *-*-* } .-2 } // { dg-error "required first macro rule" "" { target *-*-* } .-3 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-4 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro37.rs b/gcc/testsuite/rust/compile/macros/mbe/macro37.rs index 5713d90130aa..26f79d88ef18 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro37.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro37.rs @@ -1,5 +1,4 @@ macro_rules! invalid_after_zeroable { ($e:expr $(,)* forbidden) => {{}}; // { dg-error "token .identifier. is not allowed after .expr. fragment" } // { dg-error "required first macro rule" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro38.rs b/gcc/testsuite/rust/compile/macros/mbe/macro38.rs index eb294aec83bb..e297492721e0 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro38.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro38.rs @@ -1,5 +1,4 @@ macro_rules! invalid_after_zeroable_multi { ($e:expr $(,)? $(;)* $(=>)? forbidden) => {{}}; // { dg-error "token .identifier. is not allowed after .expr. fragment" } // { dg-error "required first macro rule" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro39.rs b/gcc/testsuite/rust/compile/macros/mbe/macro39.rs index f5c498cc8ef3..867ec21c3837 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro39.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro39.rs @@ -1,5 +1,4 @@ macro_rules! m { ($e:expr (, parenthesis_forbidden)) => {{}}; // { dg-error "token .\\(. at start of matcher is not allowed after .expr. fragment" } // { dg-error "required first macro rule" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro48.rs b/gcc/testsuite/rust/compile/macros/mbe/macro48.rs index 6b3b369bc3a0..aff5d199c473 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro48.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro48.rs @@ -1,8 +1,7 @@ // Check that "priv" is not in the follow set of :vis. -// { dg-error "token .priv. is not allowed after .vis. fragment" "#359" { target *-*-* } .+4 } -// { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .+3 } -// { dg-error "failed to parse item in crate" "" { target *-*-* } .+2 } +// { dg-error "token .priv. is not allowed after .vis. fragment" "#359" { target *-*-* } .+3 } +// { dg-error "required first macro rule in macro rules definition could not be parsed" "" { target *-*-* } .+2 } macro_rules! my_mac { ($v:vis priv) => { $v struct Foo(i32); diff --git a/gcc/testsuite/rust/compile/parse_invalid_specialization.rs b/gcc/testsuite/rust/compile/parse_invalid_specialization.rs index 1ce73848d0a3..68e2120a2f9b 100644 --- a/gcc/testsuite/rust/compile/parse_invalid_specialization.rs +++ b/gcc/testsuite/rust/compile/parse_invalid_specialization.rs @@ -1,4 +1,3 @@ default fn f() { // { dg-error ".default. is only allowed on items within .impl. blocks" "" { target *-*-* } .-1 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs b/gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs index c112e4048ed0..1d52abbd6488 100644 --- a/gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs +++ b/gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs @@ -1,3 +1,2 @@ pub(in crate::) struct S; // { dg-error "expecting ... but .::. found" "" { target *-*-* } .-1 } -// { dg-error "failed to parse item in crate" "" { target *-*-* } .-2 } diff --git a/gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs b/gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs index 94c49c381b25..1205f1936a5e 100644 --- a/gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs +++ b/gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs @@ -5,5 +5,3 @@ mod A { use A{B}; // { dg-error "unexpected token" "" { target *-*-* } .-1 } // { dg-error "could not parse use tree" "" { target *-*-* } .-2 } -// { dg-error "failed to parse item in crate" "" { target *-*-* } 10 } -// ^^^ TODO: should the above error happen at line 10? diff --git a/gcc/testsuite/rust/compile/raw-byte-string-loc.rs b/gcc/testsuite/rust/compile/raw-byte-string-loc.rs index b71b6e5adedc..6082118d4e42 100644 --- a/gcc/testsuite/rust/compile/raw-byte-string-loc.rs +++ b/gcc/testsuite/rust/compile/raw-byte-string-loc.rs @@ -3,4 +3,3 @@ const X: &'static u8 = br#"12 BREAK // { dg-error "unrecognised token" "" { target *-*-* } .-1 } -// { dg-error "failed to parse item" "" { target *-*-* } .-2 } diff --git a/gcc/testsuite/rust/compile/raw-string-loc.rs b/gcc/testsuite/rust/compile/raw-string-loc.rs index 26331eafa44a..9e32790427db 100644 --- a/gcc/testsuite/rust/compile/raw-string-loc.rs +++ b/gcc/testsuite/rust/compile/raw-string-loc.rs @@ -3,4 +3,3 @@ const X: &'static str = r#"12 BREAK // { dg-error "unrecognised token" "" { target *-*-* } .-1 } -// { dg-error "failed to parse item" "" { target *-*-* } .-2 } diff --git a/gcc/testsuite/rust/compile/self_const_ptr.rs b/gcc/testsuite/rust/compile/self_const_ptr.rs index 014fe1b63d84..51e339eaa5e2 100644 --- a/gcc/testsuite/rust/compile/self_const_ptr.rs +++ b/gcc/testsuite/rust/compile/self_const_ptr.rs @@ -4,5 +4,4 @@ impl MyStruct { pub fn do_something(*const self) {} // { dg-error "cannot pass .self. by raw pointer" "" { target *-*-* } .-1 } // { dg-error "failed to parse inherent impl item in inherent impl" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } } diff --git a/gcc/testsuite/rust/compile/self_mut_ptr.rs b/gcc/testsuite/rust/compile/self_mut_ptr.rs index 2a127b7dcb2c..c986ef6e5118 100644 --- a/gcc/testsuite/rust/compile/self_mut_ptr.rs +++ b/gcc/testsuite/rust/compile/self_mut_ptr.rs @@ -4,5 +4,4 @@ impl MyStruct { pub fn do_something(*mut self) {} // { dg-error "cannot pass .self. by raw pointer" "" { target *-*-* } .-1 } // { dg-error "failed to parse inherent impl item in inherent impl" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } } diff --git a/gcc/testsuite/rust/compile/self_ptr.rs b/gcc/testsuite/rust/compile/self_ptr.rs index fd7ff6ce5d2f..2b3128cd853b 100644 --- a/gcc/testsuite/rust/compile/self_ptr.rs +++ b/gcc/testsuite/rust/compile/self_ptr.rs @@ -4,5 +4,4 @@ impl MyStruct { pub fn do_something(*self) {} // { dg-error "cannot pass .self. by raw pointer" "" { target *-*-* } .-1 } // { dg-error "failed to parse inherent impl item in inherent impl" "" { target *-*-* } .-2 } - // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 } } diff --git a/gcc/testsuite/rust/compile/static_var1.rs b/gcc/testsuite/rust/compile/static_var1.rs index b3b5751c9322..fdd287679d18 100644 --- a/gcc/testsuite/rust/compile/static_var1.rs +++ b/gcc/testsuite/rust/compile/static_var1.rs @@ -1,5 +1,5 @@ static x = 3; // { dg-error "expecting ':' but '=' found" } -fn main() {// { dg-error "failed to parse item in crate" } +fn main() { let y = x +1; } diff --git a/gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs b/gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs index 2389fa52bfd1..8a9b03163efd 100644 --- a/gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs +++ b/gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs @@ -4,7 +4,6 @@ impl I { fn () { // { dg-error {expecting 'identifier' but '\(' found} "" { target *-*-* } .-1 } // { dg-error {failed to parse inherent impl item in inherent impl} "" { target *-*-* } .-2 } - // { dg-error {failed to parse item in crate} "" { target *-*-* } .-3 } } } From 3403f5a60b0c905dffdcc5ca507dd2e0308f99d6 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 27 Nov 2025 14:55:49 +0000 Subject: [PATCH 03/11] gccrs: Fix comment typos in rust-macro-expand.h gcc/rust/ChangeLog: * expand/rust-macro-expand.h: Fix typos in comment. --- gcc/rust/expand/rust-macro-expand.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-macro-expand.h b/gcc/rust/expand/rust-macro-expand.h index c3d5e7d6f80a..0e79466925e0 100644 --- a/gcc/rust/expand/rust-macro-expand.h +++ b/gcc/rust/expand/rust-macro-expand.h @@ -358,7 +358,7 @@ struct MacroExpander * * @param parser Parser to use for matching * @param rep Repetition to try and match - * @param match_amount Reference in which to store the ammount of succesful + * @param match_amount Reference in which to store the amount of successful * and valid matches * * @param lo_bound Lower bound of the matcher. When specified, the matcher From f2951077faf718bbbf71d4de8df9888b04239a49 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Thu, 27 Nov 2025 13:08:12 +0100 Subject: [PATCH 04/11] gccrs: Initialize uninit boolean gcc/rust/ChangeLog: * backend/rust-constexpr.cc (eval_binary_expression): Set initial value equality value to false. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/backend/rust-constexpr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/backend/rust-constexpr.cc b/gcc/rust/backend/rust-constexpr.cc index d04f8643306e..e32ba3abd4f0 100644 --- a/gcc/rust/backend/rust-constexpr.cc +++ b/gcc/rust/backend/rust-constexpr.cc @@ -3137,7 +3137,7 @@ eval_binary_expression (const constexpr_ctx *ctx, tree t, bool lval, { tree lmem = PTRMEM_CST_MEMBER (lhs); tree rmem = PTRMEM_CST_MEMBER (rhs); - bool eq; + bool eq = false; if (TREE_CODE (lmem) == TREE_CODE (rmem) && TREE_CODE (lmem) == FIELD_DECL && TREE_CODE (DECL_CONTEXT (lmem)) == UNION_TYPE From e7005dd96090f3fa6018c6463a7eba09c462e6ba Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Fri, 28 Nov 2025 14:11:51 +0100 Subject: [PATCH 05/11] gccrs: Remove non-leaf error message in delimited tt gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_delim_token_tree): Remove error message. (Parser::parse_token_tree): Split error message. gcc/testsuite/ChangeLog: * rust/compile/macros/mbe/macro-issue3608.rs: Remove error. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/parse/rust-parse-impl.h | 22 ++++++------------- .../compile/macros/mbe/macro-issue3608.rs | 3 +-- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 1ffddabf74d6..42e004428846 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -978,16 +978,7 @@ Parser::parse_delim_token_tree () std::unique_ptr tok_tree = parse_token_tree (); if (tok_tree == nullptr) - { - // TODO: is this error handling appropriate? - Error error ( - t->get_locus (), - "failed to parse token tree in delimited token tree - found %qs", - t->get_token_description ()); - add_error (std::move (error)); - - return AST::DelimTokenTree::create_empty (); - } + return AST::DelimTokenTree::create_empty (); token_trees_in_tree.push_back (std::move (tok_tree)); @@ -1075,11 +1066,12 @@ Parser::parse_token_tree () case RIGHT_SQUARE: case RIGHT_CURLY: // error - should not be called when this a token - add_error ( - Error (t->get_locus (), - "unexpected closing delimiter %qs - token tree requires " - "either paired delimiters or non-delimiter tokens", - t->get_token_description ())); + add_error (Error (t->get_locus (), "unexpected closing delimiter %qs", + t->get_token_description ())); + + add_error (Error (Error::Kind::Hint, t->get_locus (), + "token tree requires either paired delimiters or " + "non-delimiter tokens")); lexer.skip_token (); return nullptr; diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs index 381f1210afdf..b081d456a450 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs @@ -5,7 +5,6 @@ struct Baz { impl Bar for -fn main() { )// { dg-error "unexpected closing delimiter .\\). - token tree requires either paired delimiters or non-delimiter tokens" } - // { dg-error "failed to parse token tree in delimited token tree - found .\\)." "" { target *-*-* } .-1 } +fn main() { )// { dg-error "unexpected closing delimiter .\\)." } // { dg-error "unexpected token .end of file. - expecting closing delimiter .\}. .for a delimited token tree." "" { target *-*-* } .+2 } // { dg-error "unexpected token .end of file. - expecting closing delimiter .\\). .for a macro invocation semi." "" { target *-*-* } .+1 } From b448128aaca9dea5498cdd66e9e55a0be5f9768d Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Fri, 28 Nov 2025 19:52:25 +0100 Subject: [PATCH 06/11] gccrs: Remove non leaf errors gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_function): Return a nullptr on error instead of a valid function. (Parser::parse_let_stmt): Remove non leaf error. (Parser::parse_if_expr): Likewise. (Parser::parse_loop_expr): Likewise. (Parser::parse_expr): Return error on null denotation error. gcc/testsuite/ChangeLog: * rust/compile/braced_macro_arm.rs: Remove parent errors. * rust/compile/issue-407-2.rs: Likewise. * rust/compile/issue-407.rs: Likewise. * rust/compile/issue-4162.rs: Likewise. * rust/compile/issue-867.rs: Likewise. * rust/compile/raw_ref_op_invalid.rs: Likewise. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/parse/rust-parse-impl.h | 44 ++++--------------- .../rust/compile/braced_macro_arm.rs | 2 - gcc/testsuite/rust/compile/issue-407-2.rs | 6 --- gcc/testsuite/rust/compile/issue-407.rs | 2 - gcc/testsuite/rust/compile/issue-4162.rs | 2 - gcc/testsuite/rust/compile/issue-867.rs | 3 -- .../rust/compile/raw_ref_op_invalid.rs | 2 - 7 files changed, 9 insertions(+), 52 deletions(-) diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 42e004428846..6cb8f0e6579a 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -1855,15 +1855,7 @@ Parser::parse_macro_invocation_semi ( std::unique_ptr tree = parse_token_tree (); if (tree == nullptr) - { - Error error (t->get_locus (), - "failed to parse token tree for macro invocation semi " - "- found %qs", - t->get_token_description ()); - add_error (std::move (error)); - - return nullptr; - } + return nullptr; token_trees.push_back (std::move (tree)); @@ -2999,8 +2991,9 @@ Parser::parse_function (AST::Visibility vis, else { std::unique_ptr block_expr = parse_block_expr (); - if (block_expr != nullptr) - body = std::move (block_expr); + if (block_expr == nullptr) + return nullptr; + body = std::move (block_expr); } return std::unique_ptr ( @@ -6226,10 +6219,6 @@ Parser::parse_let_stmt (AST::AttrVec outer_attrs, expr = parse_expr (); if (expr == nullptr) { - Error error (lexer.peek_token ()->get_locus (), - "failed to parse expression in let statement"); - add_error (std::move (error)); - skip_after_semicolon (); return nullptr; } @@ -7256,11 +7245,7 @@ Parser::parse_block_expr ( ExprOrStmt expr_or_stmt = parse_stmt_or_expr (); if (expr_or_stmt.is_error ()) { - Error error ( - t->get_locus (), - "failed to parse statement or expression in block expression"); - add_error (std::move (error)); - + skip_after_end_block (); return nullptr; } @@ -7783,14 +7768,7 @@ Parser::parse_if_expr (AST::AttrVec outer_attrs, // parse required block expr std::unique_ptr if_body = parse_block_expr (); if (if_body == nullptr) - { - Error error (lexer.peek_token ()->get_locus (), - "failed to parse if body block expression in if expression"); - add_error (std::move (error)); - - // skip somewhere? - return nullptr; - } + return nullptr; // branch to parse end or else (and then else, else if, or else if let) if (lexer.peek_token ()->get_id () != ELSE) @@ -8113,13 +8091,7 @@ Parser::parse_loop_expr (AST::AttrVec outer_attrs, // parse loop body, which is required std::unique_ptr loop_body = parse_block_expr (); if (loop_body == nullptr) - { - Error error (lexer.peek_token ()->get_locus (), - "could not parse loop body in (infinite) loop expression"); - add_error (std::move (error)); - - return nullptr; - } + return nullptr; return std::unique_ptr ( new AST::LoopExpr (std::move (loop_body), locus, std::move (label), @@ -12198,6 +12170,8 @@ Parser::parse_expr (int right_binding_power, // parse null denotation (unary part of expression) std::unique_ptr expr = null_denotation ({}, null_denotation_restrictions); + if (expr == nullptr) + return nullptr; return left_denotations (std::move (expr), right_binding_power, std::move (outer_attrs), restrictions); diff --git a/gcc/testsuite/rust/compile/braced_macro_arm.rs b/gcc/testsuite/rust/compile/braced_macro_arm.rs index 9bcd1a69c9fb..8782cf9f94f8 100644 --- a/gcc/testsuite/rust/compile/braced_macro_arm.rs +++ b/gcc/testsuite/rust/compile/braced_macro_arm.rs @@ -7,11 +7,9 @@ macro_rules! m { fn h(c: bool) { match c { - // { dg-error "failed to parse statement or expression in block expression" "" { target *-*-* } .-1 } true => m! {} false => () // { dg-error "exprwithoutblock requires comma after match case expression in match arm \\(if not final case\\)" "" { target *-*-* } .-1 } - // { dg-error "unrecognised token .false. for start of item" "" { target *-*-* } .-2 } }; } diff --git a/gcc/testsuite/rust/compile/issue-407-2.rs b/gcc/testsuite/rust/compile/issue-407-2.rs index 002d998a95eb..6dad8612f218 100644 --- a/gcc/testsuite/rust/compile/issue-407-2.rs +++ b/gcc/testsuite/rust/compile/issue-407-2.rs @@ -2,14 +2,8 @@ pub fn loopy() { let mut a = 1; loop { - // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-1 } if a < 40 { - // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-1 } a + = 1; // { dg-error "found unexpected token '=' in null denotation" } - // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-1 } - // { dg-error {failed to parse if body block expression in if expression} "" { target *-*-* } .-2 } - // { dg-error {could not parse loop body in \(infinite\) loop expression} "" { target *-*-* } .-3 } - // { dg-error {unrecognised token 'integer literal' for start of item} "" { target *-*-* } .-4 } } else { break; } diff --git a/gcc/testsuite/rust/compile/issue-407.rs b/gcc/testsuite/rust/compile/issue-407.rs index 9188c2c6b07d..3a9dbeba900a 100644 --- a/gcc/testsuite/rust/compile/issue-407.rs +++ b/gcc/testsuite/rust/compile/issue-407.rs @@ -2,6 +2,4 @@ fn test() { let mut a = 1; a + = 1; // { dg-error "found unexpected token '=' in null denotation" } - // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-1 } - // { dg-error {unrecognised token 'integer literal' for start of item} "" { target *-*-* } .-2 } } diff --git a/gcc/testsuite/rust/compile/issue-4162.rs b/gcc/testsuite/rust/compile/issue-4162.rs index 7caf8870c05d..ffaa92d97615 100644 --- a/gcc/testsuite/rust/compile/issue-4162.rs +++ b/gcc/testsuite/rust/compile/issue-4162.rs @@ -1,8 +1,6 @@ pub fn main() { while let = 5 // { dg-error "should be at least 1 pattern" "" { target *-*-* } .-1 } - // { dg-error "failed to parse statement or expression in block expression" "" { target *-*-* } .-2 } - // { dg-error "unrecognised token .=. for start of item" "" { target *-*-* } .-3 } {} } diff --git a/gcc/testsuite/rust/compile/issue-867.rs b/gcc/testsuite/rust/compile/issue-867.rs index c61de09d8abb..1aa29b3ed10c 100644 --- a/gcc/testsuite/rust/compile/issue-867.rs +++ b/gcc/testsuite/rust/compile/issue-867.rs @@ -1,7 +1,4 @@ fn main() { let _ = 42; let a = _ + 123; // { dg-error "use of '_' is not allowed on the right-side of an assignment" } - // { dg-error {failed to parse expression in let statement} "" { target *-*-* } .-1 } - // { dg-error {failed to parse statement or expression in block expression} "" { target *-*-* } .-2 } - // { dg-error {unrecognised token '\}' for start of item} "" { target *-*-* } .+1 } } diff --git a/gcc/testsuite/rust/compile/raw_ref_op_invalid.rs b/gcc/testsuite/rust/compile/raw_ref_op_invalid.rs index 90e169f30f6b..42ec63d73658 100644 --- a/gcc/testsuite/rust/compile/raw_ref_op_invalid.rs +++ b/gcc/testsuite/rust/compile/raw_ref_op_invalid.rs @@ -7,6 +7,4 @@ pub struct Toto { pub fn test(mut toto: Toto) { let _c = &raw toto.u; //{ dg-error "expecting .;. but .identifier. found" "" { target *-*-* } } - //{ dg-excess-errors "Additional errors for parent items" { target *-*-* } } - } From a7e46adb7f83a6b0df47880f554d05f63ef19876 Mon Sep 17 00:00:00 2001 From: Raiki Tamura Date: Mon, 24 Nov 2025 01:02:31 +0900 Subject: [PATCH 07/11] gccrs: rust: add feature gate for lang_items. gcc/rust/ChangeLog: * checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Add check for lang_items. * checks/errors/feature/rust-feature-gate.h: Likewise. Signed-off-by: Raiki Tamura --- .../errors/feature/rust-feature-gate.cc | 49 +++++++++++++++++++ .../checks/errors/feature/rust-feature-gate.h | 6 +++ 2 files changed, 55 insertions(+) diff --git a/gcc/rust/checks/errors/feature/rust-feature-gate.cc b/gcc/rust/checks/errors/feature/rust-feature-gate.cc index b2a6b6c64812..448fa18f21d4 100644 --- a/gcc/rust/checks/errors/feature/rust-feature-gate.cc +++ b/gcc/rust/checks/errors/feature/rust-feature-gate.cc @@ -146,6 +146,24 @@ FeatureGate::check_may_dangle_attribute ( } } +void +FeatureGate::check_lang_item_attribute ( + const std::vector &attributes) +{ + for (const AST::Attribute &attr : attributes) + { + const auto &str_path = attr.get_path ().as_string (); + bool is_lang_item = str_path == Values::Attributes::LANG + && attr.has_attr_input () + && attr.get_attr_input ().get_attr_input_type () + == AST::AttrInput::AttrInputType::LITERAL; + + if (is_lang_item) + gate (Feature::Name::LANG_ITEMS, attr.get_locus (), + "lang items are subject to change"); + } +} + void FeatureGate::visit (AST::MacroRulesDefinition &rules_def) { @@ -158,6 +176,8 @@ FeatureGate::visit (AST::Function &function) if (!function.is_external ()) check_rustc_attri (function.get_outer_attrs ()); + check_lang_item_attribute (function.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (function); } @@ -186,6 +206,7 @@ FeatureGate::visit (AST::Trait &trait) if (trait.is_auto ()) gate (Feature::Name::OPTIN_BUILTIN_TRAITS, trait.get_locus (), "auto traits are experimental and possibly buggy"); + check_lang_item_attribute (trait.get_outer_attrs ()); AST::DefaultASTVisitor::visit (trait); } @@ -243,4 +264,32 @@ FeatureGate::visit (AST::UseTreeGlob &use) // #[feature(prelude_import)] } +void +FeatureGate::visit (AST::StructStruct &struct_item) +{ + check_lang_item_attribute (struct_item.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (struct_item); +} + +void +FeatureGate::visit (AST::TraitItemType &trait_item_type) +{ + check_lang_item_attribute (trait_item_type.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (trait_item_type); +} + +void +FeatureGate::visit (AST::Enum &enum_item) +{ + check_lang_item_attribute (enum_item.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (enum_item); +} + +void +FeatureGate::visit (AST::EnumItem &enum_variant) +{ + check_lang_item_attribute (enum_variant.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (enum_variant); +} + } // namespace Rust diff --git a/gcc/rust/checks/errors/feature/rust-feature-gate.h b/gcc/rust/checks/errors/feature/rust-feature-gate.h index f1011e532245..c8ab66b753db 100644 --- a/gcc/rust/checks/errors/feature/rust-feature-gate.h +++ b/gcc/rust/checks/errors/feature/rust-feature-gate.h @@ -47,12 +47,18 @@ class FeatureGate : public AST::DefaultASTVisitor void visit (AST::ExternBlock &block) override; void visit (AST::MacroRulesDefinition &rules_def) override; void visit (AST::RangePattern &pattern) override; + void visit (AST::StructStruct &struct_item) override; + void visit (AST::TraitItemType &trait_item_type) override; + void visit (AST::Enum &enum_item) override; + void visit (AST::EnumItem &enum_variant) override; private: void gate (Feature::Name name, location_t loc, const std::string &error_msg); void check_rustc_attri (const std::vector &attributes); void check_may_dangle_attribute (const std::vector &attributes); + void + check_lang_item_attribute (const std::vector &attributes); std::set valid_features; }; } // namespace Rust From aeb7f5faca8c004dd5265079526545b387d303c3 Mon Sep 17 00:00:00 2001 From: Raiki Tamura Date: Mon, 24 Nov 2025 01:02:31 +0900 Subject: [PATCH 08/11] gccrs: rust: Add `#![feature(lang_items)]` to tests. gcc/testsuite/ChangeLog: * rust/borrowck/reference.rs: Add attributes. * rust/borrowck/tmp.rs: Likewise. * rust/compile/additional-trait-bounds1.rs: Likewise. * rust/compile/additional-trait-bounds2.rs: Likewise. * rust/compile/additional-trait-bounds2nr2.rs: Likewise. * rust/compile/auto_traits1.rs: Likewise. * rust/compile/auto_traits2.rs: Likewise. * rust/compile/bad-rpit1.rs: Likewise. * rust/compile/black_box.rs: Likewise. * rust/compile/bounds1.rs: Likewise. * rust/compile/box_syntax_feature_gate.rs: Likewise. * rust/compile/bug-with-default-generic.rs: Likewise. * rust/compile/canonical_paths1.rs: Likewise. * rust/compile/cast_generics.rs: Likewise. * rust/compile/closure_no_type_anno.rs: Likewise. * rust/compile/cmp1.rs: Likewise. * rust/compile/complex_qualified_path_in_expr.rs: Likewise. * rust/compile/const-issue1440.rs: Likewise. * rust/compile/const_generics_1.rs: Likewise. * rust/compile/const_generics_10.rs: Likewise. * rust/compile/const_generics_11.rs: Likewise. * rust/compile/const_generics_12.rs: Likewise. * rust/compile/const_generics_13.rs: Likewise. * rust/compile/const_generics_14.rs: Likewise. * rust/compile/const_generics_15.rs: Likewise. * rust/compile/const_generics_16.rs: Likewise. * rust/compile/const_generics_18.rs: Likewise. * rust/compile/const_generics_19.rs: Likewise. * rust/compile/const_generics_3.rs: Likewise. * rust/compile/const_generics_8.rs: Likewise. * rust/compile/const_generics_9.rs: Likewise. * rust/compile/derive-debug1.rs: Likewise. * rust/compile/derive-default1.rs: Likewise. * rust/compile/derive-eq-invalid.rs: Likewise. * rust/compile/derive-hash1.rs: Likewise. * rust/compile/derive-partialeq1.rs: Likewise. * rust/compile/derive_clone_enum1.rs: Likewise. * rust/compile/derive_clone_enum2.rs: Likewise. * rust/compile/derive_clone_enum3.rs: Likewise. * rust/compile/derive_macro1.rs: Likewise. * rust/compile/derive_macro3.rs: Likewise. * rust/compile/derive_macro4.rs: Likewise. * rust/compile/derive_macro6.rs: Likewise. * rust/compile/derive_partial_ord1.rs: Likewise. * rust/compile/expand_macro_qual_path_in_type.rs: Likewise. * rust/compile/expected_type_args2.rs: Likewise. * rust/compile/expected_type_args3.rs: Likewise. * rust/compile/extern_generics.rs: Likewise. * rust/compile/for-loop1.rs: Likewise. * rust/compile/for-loop2.rs: Likewise. * rust/compile/format_args_basic_expansion.rs: Likewise. * rust/compile/format_args_concat.rs: Likewise. * rust/compile/format_args_extra_comma.rs: Likewise. * rust/compile/generics1.rs: Likewise. * rust/compile/generics11.rs: Likewise. * rust/compile/generics12.rs: Likewise. * rust/compile/generics2.rs: Likewise. * rust/compile/generics3.rs: Likewise. * rust/compile/generics4.rs: Likewise. * rust/compile/generics6.rs: Likewise. * rust/compile/generics7.rs: Likewise. * rust/compile/generics8.rs: Likewise. * rust/compile/if_let_expr.rs: Likewise. * rust/compile/impl_fnptr.rs: Likewise. * rust/compile/impl_trait_diag.rs: Likewise. * rust/compile/impl_trait_generic_arg.rs: Likewise. * rust/compile/issue-1005.rs: Likewise. * rust/compile/issue-1019.rs: Likewise. * rust/compile/issue-1031.rs: Likewise. * rust/compile/issue-1034.rs: Likewise. * rust/compile/issue-1128.rs: Likewise. * rust/compile/issue-1129-2.rs: Likewise. * rust/compile/issue-1130.rs: Likewise. * rust/compile/issue-1131.rs: Likewise. * rust/compile/issue-1165.rs: Likewise. * rust/compile/issue-1173.rs: Likewise. * rust/compile/issue-1235.rs: Likewise. * rust/compile/issue-1237.rs: Likewise. * rust/compile/issue-1289.rs: Likewise. * rust/compile/issue-1383.rs: Likewise. * rust/compile/issue-1447.rs: Likewise. * rust/compile/issue-1483.rs: Likewise. * rust/compile/issue-1485.rs: Likewise. * rust/compile/issue-1487.rs: Likewise. * rust/compile/issue-1589.rs: Likewise. * rust/compile/issue-1725-1.rs: Likewise. * rust/compile/issue-1725-2.rs: Likewise. * rust/compile/issue-1786.rs: Likewise. * rust/compile/issue-1893.rs: Likewise. * rust/compile/issue-1901.rs: Likewise. * rust/compile/issue-1930.rs: Likewise. * rust/compile/issue-1981.rs: Likewise. * rust/compile/issue-2015.rs: Likewise. * rust/compile/issue-2019-1.rs: Likewise. * rust/compile/issue-2019-2.rs: Likewise. * rust/compile/issue-2019-3.rs: Likewise. * rust/compile/issue-2036.rs: Likewise. * rust/compile/issue-2037.rs: Likewise. * rust/compile/issue-2070.rs: Likewise. * rust/compile/issue-2105.rs: Likewise. * rust/compile/issue-2106.rs: Likewise. * rust/compile/issue-2135.rs: Likewise. * rust/compile/issue-2136-1.rs: Likewise. * rust/compile/issue-2136-2.rs: Likewise. * rust/compile/issue-2139.rs: Likewise. * rust/compile/issue-2142.rs: Likewise. * rust/compile/issue-2165.rs: Likewise. * rust/compile/issue-2166.rs: Likewise. * rust/compile/issue-2190-1.rs: Likewise. * rust/compile/issue-2190-2.rs: Likewise. * rust/compile/issue-2195.rs: Likewise. * rust/compile/issue-2238.rs: Likewise. * rust/compile/issue-2304.rs: Likewise. * rust/compile/issue-2323.rs: Likewise. * rust/compile/issue-2330.rs: Likewise. * rust/compile/issue-2369.rs: Likewise. * rust/compile/issue-2375.rs: Likewise. * rust/compile/issue-2478.rs: Likewise. * rust/compile/issue-2499.rs: Likewise. * rust/compile/issue-2723-1.rs: Likewise. * rust/compile/issue-2723-2.rs: Likewise. * rust/compile/issue-2725.rs: Likewise. * rust/compile/issue-2747.rs: Likewise. * rust/compile/issue-2772-1.rs: Likewise. * rust/compile/issue-2772-2.rs: Likewise. * rust/compile/issue-2775.rs: Likewise. * rust/compile/issue-2782.rs: Likewise. * rust/compile/issue-2907.rs: Likewise. * rust/compile/issue-2951.rs: Likewise. * rust/compile/issue-2953-1.rs: Likewise. * rust/compile/issue-2953-2.rs: Likewise. * rust/compile/issue-2954.rs: Likewise. * rust/compile/issue-2987.rs: Likewise. * rust/compile/issue-3009.rs: Likewise. * rust/compile/issue-3022.rs: Likewise. * rust/compile/issue-3030.rs: Likewise. * rust/compile/issue-3032-1.rs: Likewise. * rust/compile/issue-3032-2.rs: Likewise. * rust/compile/issue-3033.rs: Likewise. * rust/compile/issue-3035.rs: Likewise. * rust/compile/issue-3036.rs: Likewise. * rust/compile/issue-3045-1.rs: Likewise. * rust/compile/issue-3045-2.rs: Likewise. * rust/compile/issue-3144.rs: Likewise. * rust/compile/issue-3242.rs: Likewise. * rust/compile/issue-3304.rs: Likewise. * rust/compile/issue-3382.rs: Likewise. * rust/compile/issue-3402-1.rs: Likewise. * rust/compile/issue-3402-2.rs: Likewise. * rust/compile/issue-3403.rs: Likewise. * rust/compile/issue-3454.rs: Likewise. * rust/compile/issue-3551.rs: Likewise. * rust/compile/issue-3554-2.rs: Likewise. * rust/compile/issue-3599.rs: Likewise. * rust/compile/issue-3642.rs: Likewise. * rust/compile/issue-3711.rs: Likewise. * rust/compile/issue-3836.rs: Likewise. * rust/compile/issue-3898.rs: Likewise. * rust/compile/issue-3915.rs: Likewise. * rust/compile/issue-3916.rs: Likewise. * rust/compile/issue-3969.rs: Likewise. * rust/compile/issue-402.rs: Likewise. * rust/compile/issue-4090-1.rs: Likewise. * rust/compile/issue-4090-2.rs: Likewise. * rust/compile/issue-850.rs: Likewise. * rust/compile/issue-855.rs: Likewise. * rust/compile/issue-925.rs: Likewise. * rust/compile/iterators1.rs: Likewise. * rust/compile/macros/builtin/option_env1.rs: Likewise. * rust/compile/macros/builtin/option_env2.rs: Likewise. * rust/compile/macros/builtin/option_env3.rs: Likewise. * rust/compile/macros/mbe/macro-issue1400.rs: Likewise. * rust/compile/macros/mbe/macro-issue3708.rs: Likewise. * rust/compile/macros/mbe/macro-issue3709-2.rs: Likewise. * rust/compile/macros/mbe/macro20.rs: Likewise. * rust/compile/macros/mbe/macro23.rs: Likewise. * rust/compile/macros/mbe/macro40.rs: Likewise. * rust/compile/macros/mbe/macro49.rs: Likewise. * rust/compile/macros/mbe/macro54.rs: Likewise. * rust/compile/multiple_bindings1.rs: Likewise. * rust/compile/name_resolution2.rs: Likewise. * rust/compile/name_resolution4.rs: Likewise. * rust/compile/nested_generic.rs: Likewise. * rust/compile/parse_associated_type_as_generic_arg.rs: Likewise. * rust/compile/parse_associated_type_as_generic_arg2.rs: Likewise. * rust/compile/parse_associated_type_as_generic_arg3.rs: Likewise. * rust/compile/parse_closure_bind.rs: Likewise. * rust/compile/parse_complex_generic_application.rs: Likewise. * rust/compile/parse_complex_generic_application2.rs: Likewise. * rust/compile/path_as_generic_arg.rs: Likewise. * rust/compile/privacy4.rs: Likewise. * rust/compile/privacy6.rs: Likewise. * rust/compile/silly-order-bug.rs: Likewise. * rust/compile/sizeof-stray-infer-var-bug.rs: Likewise. * rust/compile/stmt_with_block_dot.rs: Likewise. * rust/compile/structural-eq-peq.rs: Likewise. * rust/compile/torture/associated_types1.rs: Likewise. * rust/compile/torture/forward_decl_5.rs: Likewise. * rust/compile/torture/generics1.rs: Likewise. * rust/compile/torture/generics10.rs: Likewise. * rust/compile/torture/generics11.rs: Likewise. * rust/compile/torture/generics12.rs: Likewise. * rust/compile/torture/generics13.rs: Likewise. * rust/compile/torture/generics14.rs: Likewise. * rust/compile/torture/generics15.rs: Likewise. * rust/compile/torture/generics16.rs: Likewise. * rust/compile/torture/generics17.rs: Likewise. * rust/compile/torture/generics18.rs: Likewise. * rust/compile/torture/generics19.rs: Likewise. * rust/compile/torture/generics2.rs: Likewise. * rust/compile/torture/generics20.rs: Likewise. * rust/compile/torture/generics21.rs: Likewise. * rust/compile/torture/generics22.rs: Likewise. * rust/compile/torture/generics23.rs: Likewise. * rust/compile/torture/generics24.rs: Likewise. * rust/compile/torture/generics25.rs: Likewise. * rust/compile/torture/generics26.rs: Likewise. * rust/compile/torture/generics27.rs: Likewise. * rust/compile/torture/generics28.rs: Likewise. * rust/compile/torture/generics29.rs: Likewise. * rust/compile/torture/generics3.rs: Likewise. * rust/compile/torture/generics30.rs: Likewise. * rust/compile/torture/generics31.rs: Likewise. * rust/compile/torture/generics32.rs: Likewise. * rust/compile/torture/generics4.rs: Likewise. * rust/compile/torture/generics5.rs: Likewise. * rust/compile/torture/generics6.rs: Likewise. * rust/compile/torture/generics7.rs: Likewise. * rust/compile/torture/generics8.rs: Likewise. * rust/compile/torture/generics9.rs: Likewise. * rust/compile/torture/intrinsics-2.rs: Likewise. * rust/compile/torture/intrinsics-4.rs: Likewise. * rust/compile/torture/intrinsics-5.rs: Likewise. * rust/compile/torture/intrinsics-6.rs: Likewise. * rust/compile/torture/intrinsics-7.rs: Likewise. * rust/compile/torture/intrinsics-8.rs: Likewise. * rust/compile/torture/issue-1024.rs: Likewise. * rust/compile/torture/issue-1075.rs: Likewise. * rust/compile/torture/issue-1432.rs: Likewise. * rust/compile/torture/issue-1555.rs: Likewise. * rust/compile/torture/issue-368.rs: Likewise. * rust/compile/torture/issue-808.rs: Likewise. * rust/compile/torture/issue-862.rs: Likewise. * rust/compile/torture/issue-893-2.rs: Likewise. * rust/compile/torture/issue-893.rs: Likewise. * rust/compile/torture/must_use2.rs: Likewise. * rust/compile/torture/nested_fn2.rs: Likewise. * rust/compile/torture/phantom_data.rs: Likewise. * rust/compile/torture/range-lang-item1.rs: Likewise. * rust/compile/torture/traits1.rs: Likewise. * rust/compile/torture/traits10.rs: Likewise. * rust/compile/torture/traits11.rs: Likewise. * rust/compile/torture/traits12.rs: Likewise. * rust/compile/torture/traits13.rs: Likewise. * rust/compile/torture/traits14.rs: Likewise. * rust/compile/torture/traits15.rs: Likewise. * rust/compile/torture/traits16.rs: Likewise. * rust/compile/torture/traits17.rs: Likewise. * rust/compile/torture/traits18.rs: Likewise. * rust/compile/torture/traits19.rs: Likewise. * rust/compile/torture/traits2.rs: Likewise. * rust/compile/torture/traits3.rs: Likewise. * rust/compile/torture/traits4.rs: Likewise. * rust/compile/torture/traits5.rs: Likewise. * rust/compile/torture/traits6.rs: Likewise. * rust/compile/torture/traits7.rs: Likewise. * rust/compile/torture/traits8.rs: Likewise. * rust/compile/torture/traits9.rs: Likewise. * rust/compile/torture/transmute-size-check-1.rs: Likewise. * rust/compile/torture/transmute1.rs: Likewise. * rust/compile/torture/uninit-intrinsic-1.rs: Likewise. * rust/compile/torture/utf8_identifiers.rs: Likewise. * rust/compile/traits1.rs: Likewise. * rust/compile/traits10.rs: Likewise. * rust/compile/traits11.rs: Likewise. * rust/compile/traits12.rs: Likewise. * rust/compile/traits2.rs: Likewise. * rust/compile/traits3.rs: Likewise. * rust/compile/traits4.rs: Likewise. * rust/compile/traits5.rs: Likewise. * rust/compile/traits6.rs: Likewise. * rust/compile/traits7.rs: Likewise. * rust/compile/traits8.rs: Likewise. * rust/compile/traits9.rs: Likewise. * rust/compile/try-expr1.rs: Likewise. * rust/compile/try-trait.rs: Likewise. * rust/compile/try_block1.rs: Likewise. * rust/compile/type-bindings1.rs: Likewise. * rust/compile/unconstrained_type_param.rs: Likewise. * rust/compile/unify-errors1.rs: Likewise. * rust/compile/unsafe10.rs: Likewise. * rust/compile/v0-mangle1.rs: Likewise. * rust/compile/v0-mangle2.rs: Likewise. * rust/compile/while_let1.rs: Likewise. * rust/execute/black_box.rs: Likewise. * rust/execute/torture/atomic_load.rs: Likewise. * rust/execute/torture/atomic_store.rs: Likewise. * rust/execute/torture/basic_partial_ord1.rs: Likewise. * rust/execute/torture/basic_partial_ord2.rs: Likewise. * rust/execute/torture/builtin_macro_option_env.rs: Likewise. * rust/execute/torture/closure1.rs: Likewise. * rust/execute/torture/closure2.rs: Likewise. * rust/execute/torture/closure3.rs: Likewise. * rust/execute/torture/closure4.rs: Likewise. * rust/execute/torture/coercion1.rs: Likewise. * rust/execute/torture/coercion2.rs: Likewise. * rust/execute/torture/coercion3.rs: Likewise. * rust/execute/torture/const-generics-1.rs: Likewise. * rust/execute/torture/const-generics-2.rs: Likewise. * rust/execute/torture/const-generics-3.rs: Likewise. * rust/execute/torture/const-generics-4.rs: Likewise. * rust/execute/torture/const-generics-5.rs: Likewise. * rust/execute/torture/const-generics-6.rs: Likewise. * rust/execute/torture/const-generics-7.rs: Likewise. * rust/execute/torture/copy_nonoverlapping1.rs: Likewise. * rust/execute/torture/derive-default1.rs: Likewise. * rust/execute/torture/derive-partialeq1.rs: Likewise. * rust/execute/torture/derive-partialeq2.rs: Likewise. * rust/execute/torture/derive_clone_enum1.rs: Likewise. * rust/execute/torture/derive_macro1.rs: Likewise. * rust/execute/torture/derive_macro3.rs: Likewise. * rust/execute/torture/derive_macro4.rs: Likewise. * rust/execute/torture/enum_intrinsics1.rs: Likewise. * rust/execute/torture/enum_intrinsics2.rs: Likewise. * rust/execute/torture/for-loop1.rs: Likewise. * rust/execute/torture/for-loop2.rs: Likewise. * rust/execute/torture/gat1.rs: Likewise. * rust/execute/torture/impl_desugar-2.rs: Likewise. * rust/execute/torture/impl_desugar.rs: Likewise. * rust/execute/torture/impl_rpit1.rs: Likewise. * rust/execute/torture/impl_rpit2.rs: Likewise. * rust/execute/torture/impl_rpit3.rs: Likewise. * rust/execute/torture/impl_trait1.rs: Likewise. * rust/execute/torture/impl_trait2.rs: Likewise. * rust/execute/torture/impl_trait3.rs: Likewise. * rust/execute/torture/impl_trait4.rs: Likewise. * rust/execute/torture/index1.rs: Likewise. * rust/execute/torture/issue-1120.rs: Likewise. * rust/execute/torture/issue-1133.rs: Likewise. * rust/execute/torture/issue-1198.rs: Likewise. * rust/execute/torture/issue-1232.rs: Likewise. * rust/execute/torture/issue-1249.rs: Likewise. * rust/execute/torture/issue-1436.rs: Likewise. * rust/execute/torture/issue-1481.rs: Likewise. * rust/execute/torture/issue-1482.rs: Likewise. * rust/execute/torture/issue-1496.rs: Likewise. * rust/execute/torture/issue-1720-2.rs: Likewise. * rust/execute/torture/issue-1720.rs: Likewise. * rust/execute/torture/issue-2005.rs: Likewise. * rust/execute/torture/issue-2052.rs: Likewise. * rust/execute/torture/issue-2179.rs: Likewise. * rust/execute/torture/issue-2180.rs: Likewise. * rust/execute/torture/issue-2236.rs: Likewise. * rust/execute/torture/issue-2583.rs: Likewise. * rust/execute/torture/issue-3126.rs: Likewise. * rust/execute/torture/issue-3381.rs: Likewise. * rust/execute/torture/issue-3502.rs: Likewise. * rust/execute/torture/issue-3836.rs: Likewise. * rust/execute/torture/issue-647.rs: Likewise. * rust/execute/torture/issue-845.rs: Likewise. * rust/execute/torture/issue-851.rs: Likewise. * rust/execute/torture/issue-858.rs: Likewise. * rust/execute/torture/iter1.rs: Likewise. * rust/execute/torture/macros23.rs: Likewise. * rust/execute/torture/macros28.rs: Likewise. * rust/execute/torture/method2.rs: Likewise. * rust/execute/torture/method3.rs: Likewise. * rust/execute/torture/method4.rs: Likewise. * rust/execute/torture/min_specialization2.rs: Likewise. * rust/execute/torture/min_specialization3.rs: Likewise. * rust/execute/torture/operator_overload_1.rs: Likewise. * rust/execute/torture/operator_overload_10.rs: Likewise. * rust/execute/torture/operator_overload_11.rs: Likewise. * rust/execute/torture/operator_overload_12.rs: Likewise. * rust/execute/torture/operator_overload_2.rs: Likewise. * rust/execute/torture/operator_overload_3.rs: Likewise. * rust/execute/torture/operator_overload_4.rs: Likewise. * rust/execute/torture/operator_overload_5.rs: Likewise. * rust/execute/torture/operator_overload_6.rs: Likewise. * rust/execute/torture/operator_overload_7.rs: Likewise. * rust/execute/torture/operator_overload_8.rs: Likewise. * rust/execute/torture/operator_overload_9.rs: Likewise. * rust/execute/torture/partial-eq-1.rs: Likewise. * rust/execute/torture/partial-eq-2.rs: Likewise. * rust/execute/torture/partial-eq-3.rs: Likewise. * rust/execute/torture/partial-eq-4.rs: Likewise. * rust/execute/torture/partial-ord-1.rs: Likewise. * rust/execute/torture/partial-ord-2.rs: Likewise. * rust/execute/torture/partial-ord-3.rs: Likewise. * rust/execute/torture/partial-ord-4.rs: Likewise. * rust/execute/torture/partial-ord-5.rs: Likewise. * rust/execute/torture/partial-ord-6.rs: Likewise. * rust/execute/torture/prefetch_data.rs: Likewise. * rust/execute/torture/ref-pattern2.rs: Likewise. * rust/execute/torture/sip-hasher.rs: Likewise. * rust/execute/torture/slice-magic.rs: Likewise. * rust/execute/torture/slice-magic2.rs: Likewise. * rust/execute/torture/slice1.rs: Likewise. * rust/execute/torture/str-layout1.rs: Likewise. * rust/execute/torture/trait1.rs: Likewise. * rust/execute/torture/trait10.rs: Likewise. * rust/execute/torture/trait11.rs: Likewise. * rust/execute/torture/trait12.rs: Likewise. * rust/execute/torture/trait13.rs: Likewise. * rust/execute/torture/trait14.rs: Likewise. * rust/execute/torture/trait15.rs: Likewise. * rust/execute/torture/trait2.rs: Likewise. * rust/execute/torture/trait3.rs: Likewise. * rust/execute/torture/trait4.rs: Likewise. * rust/execute/torture/trait5.rs: Likewise. * rust/execute/torture/trait6.rs: Likewise. * rust/execute/torture/trait7.rs: Likewise. * rust/execute/torture/trait8.rs: Likewise. * rust/execute/torture/trait9.rs: Likewise. * rust/execute/torture/transmute1.rs: Likewise. * rust/execute/torture/wrapping_op1.rs: Likewise. * rust/execute/torture/wrapping_op2.rs: Likewise. * rust/link/generic_function_1.rs: Likewise. * rust/link/trait_import_1.rs: Likewise. Signed-off-by: Raiki Tamura --- gcc/testsuite/rust/borrowck/reference.rs | 1 + gcc/testsuite/rust/borrowck/tmp.rs | 1 + gcc/testsuite/rust/compile/additional-trait-bounds1.rs | 2 +- gcc/testsuite/rust/compile/additional-trait-bounds2.rs | 2 +- gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs | 2 +- gcc/testsuite/rust/compile/auto_traits1.rs | 2 +- gcc/testsuite/rust/compile/auto_traits2.rs | 2 +- gcc/testsuite/rust/compile/bad-rpit1.rs | 1 + gcc/testsuite/rust/compile/black_box.rs | 2 +- gcc/testsuite/rust/compile/bounds1.rs | 1 + gcc/testsuite/rust/compile/box_syntax_feature_gate.rs | 1 + gcc/testsuite/rust/compile/bug-with-default-generic.rs | 1 + gcc/testsuite/rust/compile/canonical_paths1.rs | 1 + gcc/testsuite/rust/compile/cast_generics.rs | 1 + gcc/testsuite/rust/compile/closure_no_type_anno.rs | 1 + gcc/testsuite/rust/compile/cmp1.rs | 1 + gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs | 1 + gcc/testsuite/rust/compile/const-issue1440.rs | 1 + gcc/testsuite/rust/compile/const_generics_1.rs | 1 + gcc/testsuite/rust/compile/const_generics_10.rs | 1 + gcc/testsuite/rust/compile/const_generics_11.rs | 2 +- gcc/testsuite/rust/compile/const_generics_12.rs | 2 +- gcc/testsuite/rust/compile/const_generics_13.rs | 1 + gcc/testsuite/rust/compile/const_generics_14.rs | 1 + gcc/testsuite/rust/compile/const_generics_15.rs | 1 + gcc/testsuite/rust/compile/const_generics_16.rs | 1 + gcc/testsuite/rust/compile/const_generics_18.rs | 1 + gcc/testsuite/rust/compile/const_generics_19.rs | 1 + gcc/testsuite/rust/compile/const_generics_3.rs | 1 + gcc/testsuite/rust/compile/const_generics_8.rs | 1 + gcc/testsuite/rust/compile/const_generics_9.rs | 2 +- gcc/testsuite/rust/compile/derive-debug1.rs | 1 + gcc/testsuite/rust/compile/derive-default1.rs | 2 ++ gcc/testsuite/rust/compile/derive-eq-invalid.rs | 2 ++ gcc/testsuite/rust/compile/derive-hash1.rs | 2 +- gcc/testsuite/rust/compile/derive-partialeq1.rs | 2 +- gcc/testsuite/rust/compile/derive_clone_enum1.rs | 2 ++ gcc/testsuite/rust/compile/derive_clone_enum2.rs | 2 ++ gcc/testsuite/rust/compile/derive_clone_enum3.rs | 2 ++ gcc/testsuite/rust/compile/derive_macro1.rs | 1 + gcc/testsuite/rust/compile/derive_macro3.rs | 1 + gcc/testsuite/rust/compile/derive_macro4.rs | 1 + gcc/testsuite/rust/compile/derive_macro6.rs | 1 + gcc/testsuite/rust/compile/derive_partial_ord1.rs | 2 +- gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs | 1 + gcc/testsuite/rust/compile/expected_type_args2.rs | 1 + gcc/testsuite/rust/compile/expected_type_args3.rs | 1 + gcc/testsuite/rust/compile/extern_generics.rs | 3 ++- gcc/testsuite/rust/compile/for-loop1.rs | 2 +- gcc/testsuite/rust/compile/for-loop2.rs | 2 +- gcc/testsuite/rust/compile/format_args_basic_expansion.rs | 2 +- gcc/testsuite/rust/compile/format_args_concat.rs | 2 +- gcc/testsuite/rust/compile/format_args_extra_comma.rs | 2 +- gcc/testsuite/rust/compile/generics1.rs | 1 + gcc/testsuite/rust/compile/generics11.rs | 1 + gcc/testsuite/rust/compile/generics12.rs | 1 + gcc/testsuite/rust/compile/generics2.rs | 1 + gcc/testsuite/rust/compile/generics3.rs | 1 + gcc/testsuite/rust/compile/generics4.rs | 1 + gcc/testsuite/rust/compile/generics6.rs | 1 + gcc/testsuite/rust/compile/generics7.rs | 1 + gcc/testsuite/rust/compile/generics8.rs | 1 + gcc/testsuite/rust/compile/if_let_expr.rs | 1 + gcc/testsuite/rust/compile/impl_fnptr.rs | 1 + gcc/testsuite/rust/compile/impl_trait_diag.rs | 1 + gcc/testsuite/rust/compile/impl_trait_generic_arg.rs | 2 ++ gcc/testsuite/rust/compile/issue-1005.rs | 1 + gcc/testsuite/rust/compile/issue-1019.rs | 1 + gcc/testsuite/rust/compile/issue-1031.rs | 1 + gcc/testsuite/rust/compile/issue-1034.rs | 1 + gcc/testsuite/rust/compile/issue-1128.rs | 1 + gcc/testsuite/rust/compile/issue-1129-2.rs | 1 + gcc/testsuite/rust/compile/issue-1130.rs | 1 + gcc/testsuite/rust/compile/issue-1131.rs | 1 + gcc/testsuite/rust/compile/issue-1165.rs | 1 + gcc/testsuite/rust/compile/issue-1173.rs | 1 + gcc/testsuite/rust/compile/issue-1235.rs | 1 + gcc/testsuite/rust/compile/issue-1237.rs | 1 + gcc/testsuite/rust/compile/issue-1289.rs | 1 + gcc/testsuite/rust/compile/issue-1383.rs | 1 + gcc/testsuite/rust/compile/issue-1447.rs | 1 + gcc/testsuite/rust/compile/issue-1483.rs | 1 + gcc/testsuite/rust/compile/issue-1485.rs | 1 + gcc/testsuite/rust/compile/issue-1487.rs | 2 ++ gcc/testsuite/rust/compile/issue-1589.rs | 1 + gcc/testsuite/rust/compile/issue-1725-1.rs | 1 + gcc/testsuite/rust/compile/issue-1725-2.rs | 1 + gcc/testsuite/rust/compile/issue-1786.rs | 1 + gcc/testsuite/rust/compile/issue-1893.rs | 1 + gcc/testsuite/rust/compile/issue-1901.rs | 1 + gcc/testsuite/rust/compile/issue-1930.rs | 1 + gcc/testsuite/rust/compile/issue-1981.rs | 1 + gcc/testsuite/rust/compile/issue-2015.rs | 2 ++ gcc/testsuite/rust/compile/issue-2019-1.rs | 1 + gcc/testsuite/rust/compile/issue-2019-2.rs | 1 + gcc/testsuite/rust/compile/issue-2019-3.rs | 1 + gcc/testsuite/rust/compile/issue-2036.rs | 1 + gcc/testsuite/rust/compile/issue-2037.rs | 1 + gcc/testsuite/rust/compile/issue-2070.rs | 1 + gcc/testsuite/rust/compile/issue-2105.rs | 1 + gcc/testsuite/rust/compile/issue-2106.rs | 1 + gcc/testsuite/rust/compile/issue-2135.rs | 1 + gcc/testsuite/rust/compile/issue-2136-1.rs | 1 + gcc/testsuite/rust/compile/issue-2136-2.rs | 1 + gcc/testsuite/rust/compile/issue-2139.rs | 1 + gcc/testsuite/rust/compile/issue-2142.rs | 1 + gcc/testsuite/rust/compile/issue-2165.rs | 1 + gcc/testsuite/rust/compile/issue-2166.rs | 1 + gcc/testsuite/rust/compile/issue-2190-1.rs | 1 + gcc/testsuite/rust/compile/issue-2190-2.rs | 1 + gcc/testsuite/rust/compile/issue-2195.rs | 1 + gcc/testsuite/rust/compile/issue-2238.rs | 1 + gcc/testsuite/rust/compile/issue-2304.rs | 1 + gcc/testsuite/rust/compile/issue-2323.rs | 2 ++ gcc/testsuite/rust/compile/issue-2330.rs | 2 +- gcc/testsuite/rust/compile/issue-2369.rs | 2 ++ gcc/testsuite/rust/compile/issue-2375.rs | 1 + gcc/testsuite/rust/compile/issue-2478.rs | 1 + gcc/testsuite/rust/compile/issue-2499.rs | 1 + gcc/testsuite/rust/compile/issue-2723-1.rs | 1 + gcc/testsuite/rust/compile/issue-2723-2.rs | 1 + gcc/testsuite/rust/compile/issue-2725.rs | 1 + gcc/testsuite/rust/compile/issue-2747.rs | 1 + gcc/testsuite/rust/compile/issue-2772-1.rs | 1 + gcc/testsuite/rust/compile/issue-2772-2.rs | 1 + gcc/testsuite/rust/compile/issue-2775.rs | 1 + gcc/testsuite/rust/compile/issue-2782.rs | 1 + gcc/testsuite/rust/compile/issue-2907.rs | 1 + gcc/testsuite/rust/compile/issue-2951.rs | 1 + gcc/testsuite/rust/compile/issue-2953-1.rs | 2 ++ gcc/testsuite/rust/compile/issue-2953-2.rs | 2 ++ gcc/testsuite/rust/compile/issue-2954.rs | 2 ++ gcc/testsuite/rust/compile/issue-2987.rs | 1 + gcc/testsuite/rust/compile/issue-3009.rs | 2 ++ gcc/testsuite/rust/compile/issue-3022.rs | 2 ++ gcc/testsuite/rust/compile/issue-3030.rs | 1 + gcc/testsuite/rust/compile/issue-3032-1.rs | 2 +- gcc/testsuite/rust/compile/issue-3032-2.rs | 2 +- gcc/testsuite/rust/compile/issue-3033.rs | 2 +- gcc/testsuite/rust/compile/issue-3035.rs | 2 ++ gcc/testsuite/rust/compile/issue-3036.rs | 2 ++ gcc/testsuite/rust/compile/issue-3045-1.rs | 2 +- gcc/testsuite/rust/compile/issue-3045-2.rs | 2 +- gcc/testsuite/rust/compile/issue-3144.rs | 1 + gcc/testsuite/rust/compile/issue-3242.rs | 1 + gcc/testsuite/rust/compile/issue-3304.rs | 2 ++ gcc/testsuite/rust/compile/issue-3382.rs | 2 ++ gcc/testsuite/rust/compile/issue-3402-1.rs | 2 ++ gcc/testsuite/rust/compile/issue-3402-2.rs | 2 ++ gcc/testsuite/rust/compile/issue-3403.rs | 2 ++ gcc/testsuite/rust/compile/issue-3454.rs | 1 + gcc/testsuite/rust/compile/issue-3551.rs | 1 + gcc/testsuite/rust/compile/issue-3554-2.rs | 1 + gcc/testsuite/rust/compile/issue-3599.rs | 2 ++ gcc/testsuite/rust/compile/issue-3642.rs | 2 ++ gcc/testsuite/rust/compile/issue-3711.rs | 1 + gcc/testsuite/rust/compile/issue-3836.rs | 2 ++ gcc/testsuite/rust/compile/issue-3898.rs | 1 + gcc/testsuite/rust/compile/issue-3915.rs | 2 ++ gcc/testsuite/rust/compile/issue-3916.rs | 2 +- gcc/testsuite/rust/compile/issue-3969.rs | 2 ++ gcc/testsuite/rust/compile/issue-402.rs | 1 + gcc/testsuite/rust/compile/issue-4090-1.rs | 2 ++ gcc/testsuite/rust/compile/issue-4090-2.rs | 2 ++ gcc/testsuite/rust/compile/issue-850.rs | 1 + gcc/testsuite/rust/compile/issue-855.rs | 2 ++ gcc/testsuite/rust/compile/issue-925.rs | 1 + gcc/testsuite/rust/compile/iterators1.rs | 2 +- gcc/testsuite/rust/compile/macros/builtin/option_env1.rs | 2 +- gcc/testsuite/rust/compile/macros/builtin/option_env2.rs | 2 +- gcc/testsuite/rust/compile/macros/builtin/option_env3.rs | 2 +- gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro20.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro23.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro40.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro49.rs | 1 + gcc/testsuite/rust/compile/macros/mbe/macro54.rs | 1 + gcc/testsuite/rust/compile/multiple_bindings1.rs | 1 + gcc/testsuite/rust/compile/name_resolution2.rs | 1 + gcc/testsuite/rust/compile/name_resolution4.rs | 1 + gcc/testsuite/rust/compile/nested_generic.rs | 1 + .../rust/compile/parse_associated_type_as_generic_arg.rs | 1 + .../rust/compile/parse_associated_type_as_generic_arg2.rs | 1 + .../rust/compile/parse_associated_type_as_generic_arg3.rs | 1 + gcc/testsuite/rust/compile/parse_closure_bind.rs | 1 + .../rust/compile/parse_complex_generic_application.rs | 1 + .../rust/compile/parse_complex_generic_application2.rs | 1 + gcc/testsuite/rust/compile/path_as_generic_arg.rs | 1 + gcc/testsuite/rust/compile/privacy4.rs | 1 + gcc/testsuite/rust/compile/privacy6.rs | 1 + gcc/testsuite/rust/compile/silly-order-bug.rs | 2 ++ gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs | 1 + gcc/testsuite/rust/compile/stmt_with_block_dot.rs | 1 + gcc/testsuite/rust/compile/structural-eq-peq.rs | 2 ++ gcc/testsuite/rust/compile/torture/associated_types1.rs | 1 + gcc/testsuite/rust/compile/torture/forward_decl_5.rs | 1 + gcc/testsuite/rust/compile/torture/generics1.rs | 1 + gcc/testsuite/rust/compile/torture/generics10.rs | 1 + gcc/testsuite/rust/compile/torture/generics11.rs | 1 + gcc/testsuite/rust/compile/torture/generics12.rs | 1 + gcc/testsuite/rust/compile/torture/generics13.rs | 1 + gcc/testsuite/rust/compile/torture/generics14.rs | 1 + gcc/testsuite/rust/compile/torture/generics15.rs | 1 + gcc/testsuite/rust/compile/torture/generics16.rs | 1 + gcc/testsuite/rust/compile/torture/generics17.rs | 1 + gcc/testsuite/rust/compile/torture/generics18.rs | 1 + gcc/testsuite/rust/compile/torture/generics19.rs | 1 + gcc/testsuite/rust/compile/torture/generics2.rs | 1 + gcc/testsuite/rust/compile/torture/generics20.rs | 1 + gcc/testsuite/rust/compile/torture/generics21.rs | 1 + gcc/testsuite/rust/compile/torture/generics22.rs | 1 + gcc/testsuite/rust/compile/torture/generics23.rs | 1 + gcc/testsuite/rust/compile/torture/generics24.rs | 1 + gcc/testsuite/rust/compile/torture/generics25.rs | 1 + gcc/testsuite/rust/compile/torture/generics26.rs | 1 + gcc/testsuite/rust/compile/torture/generics27.rs | 1 + gcc/testsuite/rust/compile/torture/generics28.rs | 1 + gcc/testsuite/rust/compile/torture/generics29.rs | 1 + gcc/testsuite/rust/compile/torture/generics3.rs | 1 + gcc/testsuite/rust/compile/torture/generics30.rs | 1 + gcc/testsuite/rust/compile/torture/generics31.rs | 1 + gcc/testsuite/rust/compile/torture/generics32.rs | 1 + gcc/testsuite/rust/compile/torture/generics4.rs | 1 + gcc/testsuite/rust/compile/torture/generics5.rs | 1 + gcc/testsuite/rust/compile/torture/generics6.rs | 1 + gcc/testsuite/rust/compile/torture/generics7.rs | 1 + gcc/testsuite/rust/compile/torture/generics8.rs | 1 + gcc/testsuite/rust/compile/torture/generics9.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-2.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-4.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-5.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-6.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-7.rs | 1 + gcc/testsuite/rust/compile/torture/intrinsics-8.rs | 1 + gcc/testsuite/rust/compile/torture/issue-1024.rs | 1 + gcc/testsuite/rust/compile/torture/issue-1075.rs | 1 + gcc/testsuite/rust/compile/torture/issue-1432.rs | 1 + gcc/testsuite/rust/compile/torture/issue-1555.rs | 1 + gcc/testsuite/rust/compile/torture/issue-368.rs | 1 + gcc/testsuite/rust/compile/torture/issue-808.rs | 1 + gcc/testsuite/rust/compile/torture/issue-862.rs | 1 + gcc/testsuite/rust/compile/torture/issue-893-2.rs | 1 + gcc/testsuite/rust/compile/torture/issue-893.rs | 1 + gcc/testsuite/rust/compile/torture/must_use2.rs | 1 + gcc/testsuite/rust/compile/torture/nested_fn2.rs | 1 + gcc/testsuite/rust/compile/torture/phantom_data.rs | 1 + gcc/testsuite/rust/compile/torture/range-lang-item1.rs | 1 + gcc/testsuite/rust/compile/torture/traits1.rs | 1 + gcc/testsuite/rust/compile/torture/traits10.rs | 1 + gcc/testsuite/rust/compile/torture/traits11.rs | 1 + gcc/testsuite/rust/compile/torture/traits12.rs | 1 + gcc/testsuite/rust/compile/torture/traits13.rs | 1 + gcc/testsuite/rust/compile/torture/traits14.rs | 1 + gcc/testsuite/rust/compile/torture/traits15.rs | 1 + gcc/testsuite/rust/compile/torture/traits16.rs | 1 + gcc/testsuite/rust/compile/torture/traits17.rs | 1 + gcc/testsuite/rust/compile/torture/traits18.rs | 1 + gcc/testsuite/rust/compile/torture/traits19.rs | 1 + gcc/testsuite/rust/compile/torture/traits2.rs | 1 + gcc/testsuite/rust/compile/torture/traits3.rs | 1 + gcc/testsuite/rust/compile/torture/traits4.rs | 1 + gcc/testsuite/rust/compile/torture/traits5.rs | 1 + gcc/testsuite/rust/compile/torture/traits6.rs | 1 + gcc/testsuite/rust/compile/torture/traits7.rs | 1 + gcc/testsuite/rust/compile/torture/traits8.rs | 1 + gcc/testsuite/rust/compile/torture/traits9.rs | 1 + gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs | 1 + gcc/testsuite/rust/compile/torture/transmute1.rs | 1 + gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs | 1 + gcc/testsuite/rust/compile/torture/utf8_identifiers.rs | 1 + gcc/testsuite/rust/compile/traits1.rs | 1 + gcc/testsuite/rust/compile/traits10.rs | 1 + gcc/testsuite/rust/compile/traits11.rs | 1 + gcc/testsuite/rust/compile/traits12.rs | 1 + gcc/testsuite/rust/compile/traits2.rs | 1 + gcc/testsuite/rust/compile/traits3.rs | 1 + gcc/testsuite/rust/compile/traits4.rs | 1 + gcc/testsuite/rust/compile/traits5.rs | 1 + gcc/testsuite/rust/compile/traits6.rs | 1 + gcc/testsuite/rust/compile/traits7.rs | 1 + gcc/testsuite/rust/compile/traits8.rs | 1 + gcc/testsuite/rust/compile/traits9.rs | 1 + gcc/testsuite/rust/compile/try-expr1.rs | 1 + gcc/testsuite/rust/compile/try-trait.rs | 2 ++ gcc/testsuite/rust/compile/try_block1.rs | 1 + gcc/testsuite/rust/compile/type-bindings1.rs | 1 + gcc/testsuite/rust/compile/unconstrained_type_param.rs | 1 + gcc/testsuite/rust/compile/unify-errors1.rs | 1 + gcc/testsuite/rust/compile/unsafe10.rs | 1 + gcc/testsuite/rust/compile/v0-mangle1.rs | 1 + gcc/testsuite/rust/compile/v0-mangle2.rs | 1 + gcc/testsuite/rust/compile/while_let1.rs | 2 ++ gcc/testsuite/rust/execute/black_box.rs | 2 +- gcc/testsuite/rust/execute/torture/atomic_load.rs | 1 + gcc/testsuite/rust/execute/torture/atomic_store.rs | 1 + gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs | 2 ++ gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs | 2 ++ gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs | 2 +- gcc/testsuite/rust/execute/torture/closure1.rs | 1 + gcc/testsuite/rust/execute/torture/closure2.rs | 2 ++ gcc/testsuite/rust/execute/torture/closure3.rs | 2 ++ gcc/testsuite/rust/execute/torture/closure4.rs | 1 + gcc/testsuite/rust/execute/torture/coercion1.rs | 2 ++ gcc/testsuite/rust/execute/torture/coercion2.rs | 2 ++ gcc/testsuite/rust/execute/torture/coercion3.rs | 1 + gcc/testsuite/rust/execute/torture/const-generics-1.rs | 2 ++ gcc/testsuite/rust/execute/torture/const-generics-2.rs | 2 ++ gcc/testsuite/rust/execute/torture/const-generics-3.rs | 1 + gcc/testsuite/rust/execute/torture/const-generics-4.rs | 1 + gcc/testsuite/rust/execute/torture/const-generics-5.rs | 2 ++ gcc/testsuite/rust/execute/torture/const-generics-6.rs | 2 ++ gcc/testsuite/rust/execute/torture/const-generics-7.rs | 1 + gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs | 1 + gcc/testsuite/rust/execute/torture/derive-default1.rs | 2 ++ gcc/testsuite/rust/execute/torture/derive-partialeq1.rs | 2 +- gcc/testsuite/rust/execute/torture/derive-partialeq2.rs | 2 +- gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs | 2 ++ gcc/testsuite/rust/execute/torture/derive_macro1.rs | 1 + gcc/testsuite/rust/execute/torture/derive_macro3.rs | 1 + gcc/testsuite/rust/execute/torture/derive_macro4.rs | 1 + gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs | 1 + gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs | 1 + gcc/testsuite/rust/execute/torture/for-loop1.rs | 2 +- gcc/testsuite/rust/execute/torture/for-loop2.rs | 2 +- gcc/testsuite/rust/execute/torture/gat1.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_desugar-2.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_desugar.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_rpit1.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_rpit2.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_rpit3.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_trait1.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_trait2.rs | 2 ++ gcc/testsuite/rust/execute/torture/impl_trait3.rs | 1 + gcc/testsuite/rust/execute/torture/impl_trait4.rs | 2 ++ gcc/testsuite/rust/execute/torture/index1.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1120.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1133.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1198.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-1232.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1249.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1436.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1481.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1482.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-1496.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-1720-2.rs | 1 + gcc/testsuite/rust/execute/torture/issue-1720.rs | 1 + gcc/testsuite/rust/execute/torture/issue-2005.rs | 2 +- gcc/testsuite/rust/execute/torture/issue-2052.rs | 1 + gcc/testsuite/rust/execute/torture/issue-2179.rs | 1 + gcc/testsuite/rust/execute/torture/issue-2180.rs | 1 + gcc/testsuite/rust/execute/torture/issue-2236.rs | 1 + gcc/testsuite/rust/execute/torture/issue-2583.rs | 1 + gcc/testsuite/rust/execute/torture/issue-3126.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-3381.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-3502.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-3836.rs | 2 +- gcc/testsuite/rust/execute/torture/issue-647.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-845.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-851.rs | 2 ++ gcc/testsuite/rust/execute/torture/issue-858.rs | 2 ++ gcc/testsuite/rust/execute/torture/iter1.rs | 2 +- gcc/testsuite/rust/execute/torture/macros23.rs | 1 + gcc/testsuite/rust/execute/torture/macros28.rs | 1 + gcc/testsuite/rust/execute/torture/method2.rs | 2 ++ gcc/testsuite/rust/execute/torture/method3.rs | 2 ++ gcc/testsuite/rust/execute/torture/method4.rs | 2 ++ gcc/testsuite/rust/execute/torture/min_specialization2.rs | 2 +- gcc/testsuite/rust/execute/torture/min_specialization3.rs | 2 +- gcc/testsuite/rust/execute/torture/operator_overload_1.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_10.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_11.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_12.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_2.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_3.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_4.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_5.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_6.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_7.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_8.rs | 2 ++ gcc/testsuite/rust/execute/torture/operator_overload_9.rs | 2 ++ gcc/testsuite/rust/execute/torture/partial-eq-1.rs | 1 + gcc/testsuite/rust/execute/torture/partial-eq-2.rs | 1 + gcc/testsuite/rust/execute/torture/partial-eq-3.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-eq-4.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-ord-1.rs | 1 + gcc/testsuite/rust/execute/torture/partial-ord-2.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-ord-3.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-ord-4.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-ord-5.rs | 2 +- gcc/testsuite/rust/execute/torture/partial-ord-6.rs | 2 +- gcc/testsuite/rust/execute/torture/prefetch_data.rs | 1 + gcc/testsuite/rust/execute/torture/ref-pattern2.rs | 1 + gcc/testsuite/rust/execute/torture/sip-hasher.rs | 3 +-- gcc/testsuite/rust/execute/torture/slice-magic.rs | 1 + gcc/testsuite/rust/execute/torture/slice-magic2.rs | 1 + gcc/testsuite/rust/execute/torture/slice1.rs | 1 + gcc/testsuite/rust/execute/torture/str-layout1.rs | 1 + gcc/testsuite/rust/execute/torture/trait1.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait10.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait11.rs | 1 + gcc/testsuite/rust/execute/torture/trait12.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait13.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait14.rs | 1 + gcc/testsuite/rust/execute/torture/trait15.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait2.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait3.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait4.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait5.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait6.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait7.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait8.rs | 2 ++ gcc/testsuite/rust/execute/torture/trait9.rs | 2 ++ gcc/testsuite/rust/execute/torture/transmute1.rs | 2 +- gcc/testsuite/rust/execute/torture/wrapping_op1.rs | 1 + gcc/testsuite/rust/execute/torture/wrapping_op2.rs | 1 + gcc/testsuite/rust/link/generic_function_1.rs | 1 + gcc/testsuite/rust/link/trait_import_1.rs | 1 + 419 files changed, 513 insertions(+), 50 deletions(-) diff --git a/gcc/testsuite/rust/borrowck/reference.rs b/gcc/testsuite/rust/borrowck/reference.rs index c4b9f7d9d890..1bef9388a1df 100644 --- a/gcc/testsuite/rust/borrowck/reference.rs +++ b/gcc/testsuite/rust/borrowck/reference.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-frust-compile-until=compilation -frust-borrowcheck -fdiagnostics-show-caret -fdiagnostics-show-line-numbers" } // { dg-enable-nn-line-numbers "" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/borrowck/tmp.rs b/gcc/testsuite/rust/borrowck/tmp.rs index 545a278df052..210153f0209f 100644 --- a/gcc/testsuite/rust/borrowck/tmp.rs +++ b/gcc/testsuite/rust/borrowck/tmp.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-frust-compile-until=compilation -frust-borrowcheck -fdiagnostics-show-caret -fdiagnostics-show-line-numbers" } // { dg-enable-nn-line-numbers "" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/additional-trait-bounds1.rs b/gcc/testsuite/rust/compile/additional-trait-bounds1.rs index 449a72fe4612..c629aba4be5e 100644 --- a/gcc/testsuite/rust/compile/additional-trait-bounds1.rs +++ b/gcc/testsuite/rust/compile/additional-trait-bounds1.rs @@ -1,4 +1,4 @@ -#![feature(optin_builtin_traits)] +#![feature(optin_builtin_traits, lang_items)] pub unsafe auto trait Send {} #[lang = "sync"] diff --git a/gcc/testsuite/rust/compile/additional-trait-bounds2.rs b/gcc/testsuite/rust/compile/additional-trait-bounds2.rs index 1c49b750319a..7140b3b23b30 100644 --- a/gcc/testsuite/rust/compile/additional-trait-bounds2.rs +++ b/gcc/testsuite/rust/compile/additional-trait-bounds2.rs @@ -1,4 +1,4 @@ -#![feature(optin_builtin_traits)] +#![feature(optin_builtin_traits, lang_items)] pub unsafe auto trait Send {} #[lang = "sync"] diff --git a/gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs b/gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs index 1c49b750319a..7140b3b23b30 100644 --- a/gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs +++ b/gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs @@ -1,4 +1,4 @@ -#![feature(optin_builtin_traits)] +#![feature(optin_builtin_traits, lang_items)] pub unsafe auto trait Send {} #[lang = "sync"] diff --git a/gcc/testsuite/rust/compile/auto_traits1.rs b/gcc/testsuite/rust/compile/auto_traits1.rs index 192052d48151..e9f5e0aa65fc 100644 --- a/gcc/testsuite/rust/compile/auto_traits1.rs +++ b/gcc/testsuite/rust/compile/auto_traits1.rs @@ -1,6 +1,6 @@ // { dg-additional-options "-frust-compile-until=typecheck" } -#![feature(optin_builtin_traits)] +#![feature(optin_builtin_traits, lang_items)] pub unsafe auto trait Send {} #[lang = "sync"] diff --git a/gcc/testsuite/rust/compile/auto_traits2.rs b/gcc/testsuite/rust/compile/auto_traits2.rs index 7004761eb158..eda22b503764 100644 --- a/gcc/testsuite/rust/compile/auto_traits2.rs +++ b/gcc/testsuite/rust/compile/auto_traits2.rs @@ -1,4 +1,4 @@ -#![feature(optin_builtin_traits)] +#![feature(optin_builtin_traits, lang_items)] pub unsafe auto trait Send {} #[lang = "sync"] diff --git a/gcc/testsuite/rust/compile/bad-rpit1.rs b/gcc/testsuite/rust/compile/bad-rpit1.rs index d8c21b11c64a..c728e36078ab 100644 --- a/gcc/testsuite/rust/compile/bad-rpit1.rs +++ b/gcc/testsuite/rust/compile/bad-rpit1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/black_box.rs b/gcc/testsuite/rust/compile/black_box.rs index 80615af5b5d1..35d9e9e1853f 100644 --- a/gcc/testsuite/rust/compile/black_box.rs +++ b/gcc/testsuite/rust/compile/black_box.rs @@ -1,5 +1,5 @@ // { dg-options "-fdump-tree-gimple" } -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/bounds1.rs b/gcc/testsuite/rust/compile/bounds1.rs index a02e6f63eb97..5891f7112d5a 100644 --- a/gcc/testsuite/rust/compile/bounds1.rs +++ b/gcc/testsuite/rust/compile/bounds1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/box_syntax_feature_gate.rs b/gcc/testsuite/rust/compile/box_syntax_feature_gate.rs index 5f62a59a04bf..62e7c10aa99a 100644 --- a/gcc/testsuite/rust/compile/box_syntax_feature_gate.rs +++ b/gcc/testsuite/rust/compile/box_syntax_feature_gate.rs @@ -1,4 +1,5 @@ // { dg-options "-frust-compile-until=lowering" } +#![feature(lang_items)] #[lang = "owned_box"] pub struct Box; diff --git a/gcc/testsuite/rust/compile/bug-with-default-generic.rs b/gcc/testsuite/rust/compile/bug-with-default-generic.rs index 25f46a09c7dc..3f31fccf7de7 100644 --- a/gcc/testsuite/rust/compile/bug-with-default-generic.rs +++ b/gcc/testsuite/rust/compile/bug-with-default-generic.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/canonical_paths1.rs b/gcc/testsuite/rust/compile/canonical_paths1.rs index bd6f3b27547c..f80d6e688adc 100644 --- a/gcc/testsuite/rust/compile/canonical_paths1.rs +++ b/gcc/testsuite/rust/compile/canonical_paths1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w -fdump-tree-gimple -frust-crate=example" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/cast_generics.rs b/gcc/testsuite/rust/compile/cast_generics.rs index 469fa942ea0c..6da91933cca1 100644 --- a/gcc/testsuite/rust/compile/cast_generics.rs +++ b/gcc/testsuite/rust/compile/cast_generics.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/closure_no_type_anno.rs b/gcc/testsuite/rust/compile/closure_no_type_anno.rs index b647da7b5957..2aab16fc29de 100644 --- a/gcc/testsuite/rust/compile/closure_no_type_anno.rs +++ b/gcc/testsuite/rust/compile/closure_no_type_anno.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/cmp1.rs b/gcc/testsuite/rust/compile/cmp1.rs index 4da5b1c01fc3..db1589e66ff5 100644 --- a/gcc/testsuite/rust/compile/cmp1.rs +++ b/gcc/testsuite/rust/compile/cmp1.rs @@ -1,6 +1,7 @@ // { dg-options "-w" } // taken from https://github.com/rust-lang/rust/blob/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/cmp.rs#L98 +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs b/gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs index 5036410aca58..85bdaf07088b 100644 --- a/gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs +++ b/gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/const-issue1440.rs b/gcc/testsuite/rust/compile/const-issue1440.rs index 3a2989cc8d02..43748cf2457d 100644 --- a/gcc/testsuite/rust/compile/const-issue1440.rs +++ b/gcc/testsuite/rust/compile/const-issue1440.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_1.rs b/gcc/testsuite/rust/compile/const_generics_1.rs index 5d4ca64c81d8..b22e07ed57be 100644 --- a/gcc/testsuite/rust/compile/const_generics_1.rs +++ b/gcc/testsuite/rust/compile/const_generics_1.rs @@ -3,6 +3,7 @@ // There are errors about unused generic parameters, but we can't handle that yet. // Still, this code is invalid Rust. +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_10.rs b/gcc/testsuite/rust/compile/const_generics_10.rs index 7e3bc86bd9fc..13001269ee18 100644 --- a/gcc/testsuite/rust/compile/const_generics_10.rs +++ b/gcc/testsuite/rust/compile/const_generics_10.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_11.rs b/gcc/testsuite/rust/compile/const_generics_11.rs index de902ee0d06e..381d9f404eba 100644 --- a/gcc/testsuite/rust/compile/const_generics_11.rs +++ b/gcc/testsuite/rust/compile/const_generics_11.rs @@ -1,5 +1,5 @@ // { dg-options "-w" } - +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_12.rs b/gcc/testsuite/rust/compile/const_generics_12.rs index a17c52594b1f..88b151f16ddb 100644 --- a/gcc/testsuite/rust/compile/const_generics_12.rs +++ b/gcc/testsuite/rust/compile/const_generics_12.rs @@ -1,5 +1,5 @@ // { dg-options "-w" } - +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_13.rs b/gcc/testsuite/rust/compile/const_generics_13.rs index 20dd0b906ce3..bf8e78e903f7 100644 --- a/gcc/testsuite/rust/compile/const_generics_13.rs +++ b/gcc/testsuite/rust/compile/const_generics_13.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_14.rs b/gcc/testsuite/rust/compile/const_generics_14.rs index 4d52efb16bb1..e0d206f646db 100644 --- a/gcc/testsuite/rust/compile/const_generics_14.rs +++ b/gcc/testsuite/rust/compile/const_generics_14.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_15.rs b/gcc/testsuite/rust/compile/const_generics_15.rs index a160abf59f1c..158548ce33b7 100644 --- a/gcc/testsuite/rust/compile/const_generics_15.rs +++ b/gcc/testsuite/rust/compile/const_generics_15.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_16.rs b/gcc/testsuite/rust/compile/const_generics_16.rs index 060dbda79de6..467be6a68af9 100644 --- a/gcc/testsuite/rust/compile/const_generics_16.rs +++ b/gcc/testsuite/rust/compile/const_generics_16.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_18.rs b/gcc/testsuite/rust/compile/const_generics_18.rs index 8bcc26158b44..09bb8607e7b7 100644 --- a/gcc/testsuite/rust/compile/const_generics_18.rs +++ b/gcc/testsuite/rust/compile/const_generics_18.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_19.rs b/gcc/testsuite/rust/compile/const_generics_19.rs index b0932ae60272..73c1419a8a6e 100644 --- a/gcc/testsuite/rust/compile/const_generics_19.rs +++ b/gcc/testsuite/rust/compile/const_generics_19.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_3.rs b/gcc/testsuite/rust/compile/const_generics_3.rs index 3415f176b2f4..528cf6949afb 100644 --- a/gcc/testsuite/rust/compile/const_generics_3.rs +++ b/gcc/testsuite/rust/compile/const_generics_3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_8.rs b/gcc/testsuite/rust/compile/const_generics_8.rs index ce5e1b59bd71..32b7a19a4698 100644 --- a/gcc/testsuite/rust/compile/const_generics_8.rs +++ b/gcc/testsuite/rust/compile/const_generics_8.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/const_generics_9.rs b/gcc/testsuite/rust/compile/const_generics_9.rs index 98e2d3ff0683..a3f7485e0163 100644 --- a/gcc/testsuite/rust/compile/const_generics_9.rs +++ b/gcc/testsuite/rust/compile/const_generics_9.rs @@ -1,5 +1,5 @@ // { dg-options "-w" } - +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive-debug1.rs b/gcc/testsuite/rust/compile/derive-debug1.rs index 59273743eb9a..f69be0df5f17 100644 --- a/gcc/testsuite/rust/compile/derive-debug1.rs +++ b/gcc/testsuite/rust/compile/derive-debug1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive-default1.rs b/gcc/testsuite/rust/compile/derive-default1.rs index 902c65eca58d..ad31d5a4c6de 100644 --- a/gcc/testsuite/rust/compile/derive-default1.rs +++ b/gcc/testsuite/rust/compile/derive-default1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[derive(Default)] struct Foo { _a: i32, _b: i64, _c: u8 } diff --git a/gcc/testsuite/rust/compile/derive-eq-invalid.rs b/gcc/testsuite/rust/compile/derive-eq-invalid.rs index b0bf856486d3..47fac78193f0 100644 --- a/gcc/testsuite/rust/compile/derive-eq-invalid.rs +++ b/gcc/testsuite/rust/compile/derive-eq-invalid.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + mod core { mod cmp { #[lang = "eq"] diff --git a/gcc/testsuite/rust/compile/derive-hash1.rs b/gcc/testsuite/rust/compile/derive-hash1.rs index 80e1e2d2bda5..cdcc9b1afac3 100644 --- a/gcc/testsuite/rust/compile/derive-hash1.rs +++ b/gcc/testsuite/rust/compile/derive-hash1.rs @@ -1,4 +1,4 @@ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive-partialeq1.rs b/gcc/testsuite/rust/compile/derive-partialeq1.rs index 35e33fbc25c2..fbeb0548e8cf 100644 --- a/gcc/testsuite/rust/compile/derive-partialeq1.rs +++ b/gcc/testsuite/rust/compile/derive-partialeq1.rs @@ -1,4 +1,4 @@ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive_clone_enum1.rs b/gcc/testsuite/rust/compile/derive_clone_enum1.rs index 947dc5c694c7..7dc0a8086d95 100644 --- a/gcc/testsuite/rust/compile/derive_clone_enum1.rs +++ b/gcc/testsuite/rust/compile/derive_clone_enum1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "clone"] trait Clone { pub fn clone(&self) -> Self; diff --git a/gcc/testsuite/rust/compile/derive_clone_enum2.rs b/gcc/testsuite/rust/compile/derive_clone_enum2.rs index c7a4ad5fd646..6f5b29aca8b9 100644 --- a/gcc/testsuite/rust/compile/derive_clone_enum2.rs +++ b/gcc/testsuite/rust/compile/derive_clone_enum2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "clone"] trait Clone { pub fn clone(&self) -> Self; diff --git a/gcc/testsuite/rust/compile/derive_clone_enum3.rs b/gcc/testsuite/rust/compile/derive_clone_enum3.rs index 92fd6eeeb2b2..7c76ab22858c 100644 --- a/gcc/testsuite/rust/compile/derive_clone_enum3.rs +++ b/gcc/testsuite/rust/compile/derive_clone_enum3.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "clone"] trait Clone { pub fn clone(&self) -> Self; diff --git a/gcc/testsuite/rust/compile/derive_macro1.rs b/gcc/testsuite/rust/compile/derive_macro1.rs index 8c42abae2d1a..df7c8e386a21 100644 --- a/gcc/testsuite/rust/compile/derive_macro1.rs +++ b/gcc/testsuite/rust/compile/derive_macro1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive_macro3.rs b/gcc/testsuite/rust/compile/derive_macro3.rs index ad40cae94b51..37b1d505f1d5 100644 --- a/gcc/testsuite/rust/compile/derive_macro3.rs +++ b/gcc/testsuite/rust/compile/derive_macro3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive_macro4.rs b/gcc/testsuite/rust/compile/derive_macro4.rs index 8bf1bcaf5f7b..74290196b39f 100644 --- a/gcc/testsuite/rust/compile/derive_macro4.rs +++ b/gcc/testsuite/rust/compile/derive_macro4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive_macro6.rs b/gcc/testsuite/rust/compile/derive_macro6.rs index 412144d5917a..d575ff108b45 100644 --- a/gcc/testsuite/rust/compile/derive_macro6.rs +++ b/gcc/testsuite/rust/compile/derive_macro6.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/derive_partial_ord1.rs b/gcc/testsuite/rust/compile/derive_partial_ord1.rs index eeca62da0784..4d26de566c6a 100644 --- a/gcc/testsuite/rust/compile/derive_partial_ord1.rs +++ b/gcc/testsuite/rust/compile/derive_partial_ord1.rs @@ -1,6 +1,6 @@ // { dg-additional-options "-w" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs b/gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs index 2d60197e15c0..16d120feb1b9 100644 --- a/gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs +++ b/gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs @@ -1,5 +1,6 @@ // this SEGVs in lowering for now // { dg-additional-options "-frust-compile-until=nameresolution" } +#![feature(lang_items)] macro_rules! forward_ref_binop { (impl $imp:ident, $method:ident for $t:ty, $u:ty) => { diff --git a/gcc/testsuite/rust/compile/expected_type_args2.rs b/gcc/testsuite/rust/compile/expected_type_args2.rs index 11a70bec6d46..22702e34a446 100644 --- a/gcc/testsuite/rust/compile/expected_type_args2.rs +++ b/gcc/testsuite/rust/compile/expected_type_args2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/expected_type_args3.rs b/gcc/testsuite/rust/compile/expected_type_args3.rs index 7003f7abcf70..0916ec945d65 100644 --- a/gcc/testsuite/rust/compile/expected_type_args3.rs +++ b/gcc/testsuite/rust/compile/expected_type_args3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/extern_generics.rs b/gcc/testsuite/rust/compile/extern_generics.rs index 26f97a64ff5d..0312626cc4d8 100644 --- a/gcc/testsuite/rust/compile/extern_generics.rs +++ b/gcc/testsuite/rust/compile/extern_generics.rs @@ -1,4 +1,5 @@ -#[lang="sized"] +#![feature(lang_items)] +#[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/for-loop1.rs b/gcc/testsuite/rust/compile/for-loop1.rs index 21e0399161b5..d42cf673895f 100644 --- a/gcc/testsuite/rust/compile/for-loop1.rs +++ b/gcc/testsuite/rust/compile/for-loop1.rs @@ -1,5 +1,5 @@ // { dg-output "loop\r*\nloop\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/compile/for-loop2.rs b/gcc/testsuite/rust/compile/for-loop2.rs index a0ad06613f51..680fd86a0b57 100644 --- a/gcc/testsuite/rust/compile/for-loop2.rs +++ b/gcc/testsuite/rust/compile/for-loop2.rs @@ -1,5 +1,5 @@ // { dg-output "1\r*\n2\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/compile/format_args_basic_expansion.rs b/gcc/testsuite/rust/compile/format_args_basic_expansion.rs index cedb62c53d93..59101acc86a2 100644 --- a/gcc/testsuite/rust/compile/format_args_basic_expansion.rs +++ b/gcc/testsuite/rust/compile/format_args_basic_expansion.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! format_args { diff --git a/gcc/testsuite/rust/compile/format_args_concat.rs b/gcc/testsuite/rust/compile/format_args_concat.rs index b180667e9e6f..695cde6572b7 100644 --- a/gcc/testsuite/rust/compile/format_args_concat.rs +++ b/gcc/testsuite/rust/compile/format_args_concat.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! format_args { diff --git a/gcc/testsuite/rust/compile/format_args_extra_comma.rs b/gcc/testsuite/rust/compile/format_args_extra_comma.rs index dc48a3a7d2d5..5b8fee512d23 100644 --- a/gcc/testsuite/rust/compile/format_args_extra_comma.rs +++ b/gcc/testsuite/rust/compile/format_args_extra_comma.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! format_args { diff --git a/gcc/testsuite/rust/compile/generics1.rs b/gcc/testsuite/rust/compile/generics1.rs index 9e440af9e3c9..cf3c9e4c32b3 100644 --- a/gcc/testsuite/rust/compile/generics1.rs +++ b/gcc/testsuite/rust/compile/generics1.rs @@ -1,5 +1,6 @@ // { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics11.rs b/gcc/testsuite/rust/compile/generics11.rs index 10b5880d5bcb..7202baf7fba7 100644 --- a/gcc/testsuite/rust/compile/generics11.rs +++ b/gcc/testsuite/rust/compile/generics11.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics12.rs b/gcc/testsuite/rust/compile/generics12.rs index b32f56679caf..21613fb65568 100644 --- a/gcc/testsuite/rust/compile/generics12.rs +++ b/gcc/testsuite/rust/compile/generics12.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics2.rs b/gcc/testsuite/rust/compile/generics2.rs index 4c95fd1a23c4..0ed8a5fb90b1 100644 --- a/gcc/testsuite/rust/compile/generics2.rs +++ b/gcc/testsuite/rust/compile/generics2.rs @@ -1,5 +1,6 @@ // { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics3.rs b/gcc/testsuite/rust/compile/generics3.rs index 514d713a954b..112a24757470 100644 --- a/gcc/testsuite/rust/compile/generics3.rs +++ b/gcc/testsuite/rust/compile/generics3.rs @@ -1,4 +1,5 @@ // { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics4.rs b/gcc/testsuite/rust/compile/generics4.rs index c4dbc432c07c..e8333d6c304a 100644 --- a/gcc/testsuite/rust/compile/generics4.rs +++ b/gcc/testsuite/rust/compile/generics4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics6.rs b/gcc/testsuite/rust/compile/generics6.rs index d77c559db213..67029cd04a1b 100644 --- a/gcc/testsuite/rust/compile/generics6.rs +++ b/gcc/testsuite/rust/compile/generics6.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics7.rs b/gcc/testsuite/rust/compile/generics7.rs index dcedead4b9f3..e2283a43c9a0 100644 --- a/gcc/testsuite/rust/compile/generics7.rs +++ b/gcc/testsuite/rust/compile/generics7.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/generics8.rs b/gcc/testsuite/rust/compile/generics8.rs index 2d30a9ec6025..b38b277a1422 100644 --- a/gcc/testsuite/rust/compile/generics8.rs +++ b/gcc/testsuite/rust/compile/generics8.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/if_let_expr.rs b/gcc/testsuite/rust/compile/if_let_expr.rs index b0879e5fadbb..407abd45e6b2 100644 --- a/gcc/testsuite/rust/compile/if_let_expr.rs +++ b/gcc/testsuite/rust/compile/if_let_expr.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/impl_fnptr.rs b/gcc/testsuite/rust/compile/impl_fnptr.rs index 20c9d88dc1ad..e7c1bb1e5ef6 100644 --- a/gcc/testsuite/rust/compile/impl_fnptr.rs +++ b/gcc/testsuite/rust/compile/impl_fnptr.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/impl_trait_diag.rs b/gcc/testsuite/rust/compile/impl_trait_diag.rs index 54a0cd220a39..e78d2f5e0459 100644 --- a/gcc/testsuite/rust/compile/impl_trait_diag.rs +++ b/gcc/testsuite/rust/compile/impl_trait_diag.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/impl_trait_generic_arg.rs b/gcc/testsuite/rust/compile/impl_trait_generic_arg.rs index ecdb08803b40..a304bd693362 100644 --- a/gcc/testsuite/rust/compile/impl_trait_generic_arg.rs +++ b/gcc/testsuite/rust/compile/impl_trait_generic_arg.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1005.rs b/gcc/testsuite/rust/compile/issue-1005.rs index 15d4bef08c2a..4c51b30d8632 100644 --- a/gcc/testsuite/rust/compile/issue-1005.rs +++ b/gcc/testsuite/rust/compile/issue-1005.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1019.rs b/gcc/testsuite/rust/compile/issue-1019.rs index 1f77ba9d31d6..5bf786c56d81 100644 --- a/gcc/testsuite/rust/compile/issue-1019.rs +++ b/gcc/testsuite/rust/compile/issue-1019.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1031.rs b/gcc/testsuite/rust/compile/issue-1031.rs index cd1da47362aa..785573a10bcd 100644 --- a/gcc/testsuite/rust/compile/issue-1031.rs +++ b/gcc/testsuite/rust/compile/issue-1031.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1034.rs b/gcc/testsuite/rust/compile/issue-1034.rs index d40005ec5d97..ef5f7c713c18 100644 --- a/gcc/testsuite/rust/compile/issue-1034.rs +++ b/gcc/testsuite/rust/compile/issue-1034.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1128.rs b/gcc/testsuite/rust/compile/issue-1128.rs index 8960ebbea63d..de4691992960 100644 --- a/gcc/testsuite/rust/compile/issue-1128.rs +++ b/gcc/testsuite/rust/compile/issue-1128.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1129-2.rs b/gcc/testsuite/rust/compile/issue-1129-2.rs index cfe01b5b4db5..4b4f004a0e16 100644 --- a/gcc/testsuite/rust/compile/issue-1129-2.rs +++ b/gcc/testsuite/rust/compile/issue-1129-2.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1130.rs b/gcc/testsuite/rust/compile/issue-1130.rs index 115e6aad2f15..0219ed23f446 100644 --- a/gcc/testsuite/rust/compile/issue-1130.rs +++ b/gcc/testsuite/rust/compile/issue-1130.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1131.rs b/gcc/testsuite/rust/compile/issue-1131.rs index 86eeb98453ac..c014e736894e 100644 --- a/gcc/testsuite/rust/compile/issue-1131.rs +++ b/gcc/testsuite/rust/compile/issue-1131.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1165.rs b/gcc/testsuite/rust/compile/issue-1165.rs index a6378239519e..ce57ebf7fdc5 100644 --- a/gcc/testsuite/rust/compile/issue-1165.rs +++ b/gcc/testsuite/rust/compile/issue-1165.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1173.rs b/gcc/testsuite/rust/compile/issue-1173.rs index a8fd93eea1b1..59b0adf67de8 100644 --- a/gcc/testsuite/rust/compile/issue-1173.rs +++ b/gcc/testsuite/rust/compile/issue-1173.rs @@ -2,6 +2,7 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1235.rs b/gcc/testsuite/rust/compile/issue-1235.rs index 7c85ac4a6b00..6376e9e6a988 100644 --- a/gcc/testsuite/rust/compile/issue-1235.rs +++ b/gcc/testsuite/rust/compile/issue-1235.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1237.rs b/gcc/testsuite/rust/compile/issue-1237.rs index 79b60b07b522..506a6bf7059e 100644 --- a/gcc/testsuite/rust/compile/issue-1237.rs +++ b/gcc/testsuite/rust/compile/issue-1237.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1289.rs b/gcc/testsuite/rust/compile/issue-1289.rs index 9251d79290bb..58ab0b66df3c 100644 --- a/gcc/testsuite/rust/compile/issue-1289.rs +++ b/gcc/testsuite/rust/compile/issue-1289.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1383.rs b/gcc/testsuite/rust/compile/issue-1383.rs index dac4b2a12552..f8ccd577b62f 100644 --- a/gcc/testsuite/rust/compile/issue-1383.rs +++ b/gcc/testsuite/rust/compile/issue-1383.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1447.rs b/gcc/testsuite/rust/compile/issue-1447.rs index 6d58f7a6eea3..afeef17151f3 100644 --- a/gcc/testsuite/rust/compile/issue-1447.rs +++ b/gcc/testsuite/rust/compile/issue-1447.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1483.rs b/gcc/testsuite/rust/compile/issue-1483.rs index eda7e139283d..96ca72e43684 100644 --- a/gcc/testsuite/rust/compile/issue-1483.rs +++ b/gcc/testsuite/rust/compile/issue-1483.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1485.rs b/gcc/testsuite/rust/compile/issue-1485.rs index a0cd5a0f1f92..958fcd14db99 100644 --- a/gcc/testsuite/rust/compile/issue-1485.rs +++ b/gcc/testsuite/rust/compile/issue-1485.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1487.rs b/gcc/testsuite/rust/compile/issue-1487.rs index 4a4d759ef2e9..dd346517f40a 100644 --- a/gcc/testsuite/rust/compile/issue-1487.rs +++ b/gcc/testsuite/rust/compile/issue-1487.rs @@ -1,4 +1,6 @@ // { dg-options "-w" } +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1589.rs b/gcc/testsuite/rust/compile/issue-1589.rs index 1dd7a45286c4..dd7b4c0893bd 100644 --- a/gcc/testsuite/rust/compile/issue-1589.rs +++ b/gcc/testsuite/rust/compile/issue-1589.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1725-1.rs b/gcc/testsuite/rust/compile/issue-1725-1.rs index a02e6f63eb97..5891f7112d5a 100644 --- a/gcc/testsuite/rust/compile/issue-1725-1.rs +++ b/gcc/testsuite/rust/compile/issue-1725-1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1725-2.rs b/gcc/testsuite/rust/compile/issue-1725-2.rs index d6a2d686c05e..3386f279ed0f 100644 --- a/gcc/testsuite/rust/compile/issue-1725-2.rs +++ b/gcc/testsuite/rust/compile/issue-1725-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1786.rs b/gcc/testsuite/rust/compile/issue-1786.rs index 1c46fee6a870..e4f94bd87e25 100644 --- a/gcc/testsuite/rust/compile/issue-1786.rs +++ b/gcc/testsuite/rust/compile/issue-1786.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1893.rs b/gcc/testsuite/rust/compile/issue-1893.rs index 46c53e9ce7ae..47cde451e26a 100644 --- a/gcc/testsuite/rust/compile/issue-1893.rs +++ b/gcc/testsuite/rust/compile/issue-1893.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1901.rs b/gcc/testsuite/rust/compile/issue-1901.rs index b43e34f702f1..110b939dacd7 100644 --- a/gcc/testsuite/rust/compile/issue-1901.rs +++ b/gcc/testsuite/rust/compile/issue-1901.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1930.rs b/gcc/testsuite/rust/compile/issue-1930.rs index 071b3dae21c3..5eea2291d7e5 100644 --- a/gcc/testsuite/rust/compile/issue-1930.rs +++ b/gcc/testsuite/rust/compile/issue-1930.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-1981.rs b/gcc/testsuite/rust/compile/issue-1981.rs index de9588c60ada..c71cecf38f23 100644 --- a/gcc/testsuite/rust/compile/issue-1981.rs +++ b/gcc/testsuite/rust/compile/issue-1981.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2015.rs b/gcc/testsuite/rust/compile/issue-2015.rs index 7e0365163e5a..57630960f732 100644 --- a/gcc/testsuite/rust/compile/issue-2015.rs +++ b/gcc/testsuite/rust/compile/issue-2015.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2019-1.rs b/gcc/testsuite/rust/compile/issue-2019-1.rs index e91e347b2ea6..e3174b13cf3e 100644 --- a/gcc/testsuite/rust/compile/issue-2019-1.rs +++ b/gcc/testsuite/rust/compile/issue-2019-1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2019-2.rs b/gcc/testsuite/rust/compile/issue-2019-2.rs index 9f7c0c01bbe5..eefe44d35bb3 100644 --- a/gcc/testsuite/rust/compile/issue-2019-2.rs +++ b/gcc/testsuite/rust/compile/issue-2019-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2019-3.rs b/gcc/testsuite/rust/compile/issue-2019-3.rs index c95ce43083ab..7f00d8239edd 100644 --- a/gcc/testsuite/rust/compile/issue-2019-3.rs +++ b/gcc/testsuite/rust/compile/issue-2019-3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2036.rs b/gcc/testsuite/rust/compile/issue-2036.rs index 8701b204fd32..03b8ed05b29a 100644 --- a/gcc/testsuite/rust/compile/issue-2036.rs +++ b/gcc/testsuite/rust/compile/issue-2036.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2037.rs b/gcc/testsuite/rust/compile/issue-2037.rs index 8adcb9751098..0d929d527906 100644 --- a/gcc/testsuite/rust/compile/issue-2037.rs +++ b/gcc/testsuite/rust/compile/issue-2037.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2070.rs b/gcc/testsuite/rust/compile/issue-2070.rs index 981e59926fbb..f4dc36005368 100644 --- a/gcc/testsuite/rust/compile/issue-2070.rs +++ b/gcc/testsuite/rust/compile/issue-2070.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2105.rs b/gcc/testsuite/rust/compile/issue-2105.rs index 28f170e51cf1..4446b2678481 100644 --- a/gcc/testsuite/rust/compile/issue-2105.rs +++ b/gcc/testsuite/rust/compile/issue-2105.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2106.rs b/gcc/testsuite/rust/compile/issue-2106.rs index 4af57c866525..a75d21b8ebbe 100644 --- a/gcc/testsuite/rust/compile/issue-2106.rs +++ b/gcc/testsuite/rust/compile/issue-2106.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2135.rs b/gcc/testsuite/rust/compile/issue-2135.rs index 9f4d3e1b6c18..e2d5ed26e683 100644 --- a/gcc/testsuite/rust/compile/issue-2135.rs +++ b/gcc/testsuite/rust/compile/issue-2135.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2136-1.rs b/gcc/testsuite/rust/compile/issue-2136-1.rs index f0af551f87ea..eee8a6827937 100644 --- a/gcc/testsuite/rust/compile/issue-2136-1.rs +++ b/gcc/testsuite/rust/compile/issue-2136-1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2136-2.rs b/gcc/testsuite/rust/compile/issue-2136-2.rs index b25820dadfb5..b30c9d24d864 100644 --- a/gcc/testsuite/rust/compile/issue-2136-2.rs +++ b/gcc/testsuite/rust/compile/issue-2136-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2139.rs b/gcc/testsuite/rust/compile/issue-2139.rs index 65f82f39f40a..ba3736fb3d9c 100644 --- a/gcc/testsuite/rust/compile/issue-2139.rs +++ b/gcc/testsuite/rust/compile/issue-2139.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2142.rs b/gcc/testsuite/rust/compile/issue-2142.rs index a3ec228c0e12..e4c0c926ebe6 100644 --- a/gcc/testsuite/rust/compile/issue-2142.rs +++ b/gcc/testsuite/rust/compile/issue-2142.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2165.rs b/gcc/testsuite/rust/compile/issue-2165.rs index 5bbde65928b4..38288e988f5e 100644 --- a/gcc/testsuite/rust/compile/issue-2165.rs +++ b/gcc/testsuite/rust/compile/issue-2165.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2166.rs b/gcc/testsuite/rust/compile/issue-2166.rs index 142ed178e7e4..d9e07a60e465 100644 --- a/gcc/testsuite/rust/compile/issue-2166.rs +++ b/gcc/testsuite/rust/compile/issue-2166.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2190-1.rs b/gcc/testsuite/rust/compile/issue-2190-1.rs index 927f90d6c9b0..ad0f168e7300 100644 --- a/gcc/testsuite/rust/compile/issue-2190-1.rs +++ b/gcc/testsuite/rust/compile/issue-2190-1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2190-2.rs b/gcc/testsuite/rust/compile/issue-2190-2.rs index 1c933386aa46..c1abfb617c3c 100644 --- a/gcc/testsuite/rust/compile/issue-2190-2.rs +++ b/gcc/testsuite/rust/compile/issue-2190-2.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2195.rs b/gcc/testsuite/rust/compile/issue-2195.rs index fc158c39bb4b..0a917a86a2c9 100644 --- a/gcc/testsuite/rust/compile/issue-2195.rs +++ b/gcc/testsuite/rust/compile/issue-2195.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2238.rs b/gcc/testsuite/rust/compile/issue-2238.rs index 6a43a13dfe7a..6bbbca4a6de4 100644 --- a/gcc/testsuite/rust/compile/issue-2238.rs +++ b/gcc/testsuite/rust/compile/issue-2238.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2304.rs b/gcc/testsuite/rust/compile/issue-2304.rs index 83130336ebec..cef8fc80739b 100644 --- a/gcc/testsuite/rust/compile/issue-2304.rs +++ b/gcc/testsuite/rust/compile/issue-2304.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2323.rs b/gcc/testsuite/rust/compile/issue-2323.rs index 02a3f90b4d81..2c69214ab08f 100644 --- a/gcc/testsuite/rust/compile/issue-2323.rs +++ b/gcc/testsuite/rust/compile/issue-2323.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2330.rs b/gcc/testsuite/rust/compile/issue-2330.rs index 6ab46c7c8ef8..21637cb9a8a5 100644 --- a/gcc/testsuite/rust/compile/issue-2330.rs +++ b/gcc/testsuite/rust/compile/issue-2330.rs @@ -1,5 +1,5 @@ // { dg-options "-w" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/compile/issue-2369.rs b/gcc/testsuite/rust/compile/issue-2369.rs index 9475aef9d71f..e5a30307a6e4 100644 --- a/gcc/testsuite/rust/compile/issue-2369.rs +++ b/gcc/testsuite/rust/compile/issue-2369.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2375.rs b/gcc/testsuite/rust/compile/issue-2375.rs index a61fef8b618c..e3b9c9f13536 100644 --- a/gcc/testsuite/rust/compile/issue-2375.rs +++ b/gcc/testsuite/rust/compile/issue-2375.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2478.rs b/gcc/testsuite/rust/compile/issue-2478.rs index 7fe4e2d2a94b..1cce4b2853d4 100644 --- a/gcc/testsuite/rust/compile/issue-2478.rs +++ b/gcc/testsuite/rust/compile/issue-2478.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2499.rs b/gcc/testsuite/rust/compile/issue-2499.rs index 662d58fb5b12..f6d40d894fa5 100644 --- a/gcc/testsuite/rust/compile/issue-2499.rs +++ b/gcc/testsuite/rust/compile/issue-2499.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2723-1.rs b/gcc/testsuite/rust/compile/issue-2723-1.rs index 261956de42e4..5c773832cbde 100644 --- a/gcc/testsuite/rust/compile/issue-2723-1.rs +++ b/gcc/testsuite/rust/compile/issue-2723-1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2723-2.rs b/gcc/testsuite/rust/compile/issue-2723-2.rs index c7609d1e14dc..4baf088dbd70 100644 --- a/gcc/testsuite/rust/compile/issue-2723-2.rs +++ b/gcc/testsuite/rust/compile/issue-2723-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2725.rs b/gcc/testsuite/rust/compile/issue-2725.rs index a344bc8d4641..06b1a8900f19 100644 --- a/gcc/testsuite/rust/compile/issue-2725.rs +++ b/gcc/testsuite/rust/compile/issue-2725.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} trait Trait: ?Sized {} // { dg-error ".?Trait. is not permitted in supertraits" } diff --git a/gcc/testsuite/rust/compile/issue-2747.rs b/gcc/testsuite/rust/compile/issue-2747.rs index a9c09e7372f4..fe4b572d7926 100644 --- a/gcc/testsuite/rust/compile/issue-2747.rs +++ b/gcc/testsuite/rust/compile/issue-2747.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2772-1.rs b/gcc/testsuite/rust/compile/issue-2772-1.rs index 69977db0bfb5..aad85917393c 100644 --- a/gcc/testsuite/rust/compile/issue-2772-1.rs +++ b/gcc/testsuite/rust/compile/issue-2772-1.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2772-2.rs b/gcc/testsuite/rust/compile/issue-2772-2.rs index b05f2b1dc2ba..0e1832460534 100644 --- a/gcc/testsuite/rust/compile/issue-2772-2.rs +++ b/gcc/testsuite/rust/compile/issue-2772-2.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2775.rs b/gcc/testsuite/rust/compile/issue-2775.rs index 3ad7085785ea..d67ced3e270d 100644 --- a/gcc/testsuite/rust/compile/issue-2775.rs +++ b/gcc/testsuite/rust/compile/issue-2775.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2782.rs b/gcc/testsuite/rust/compile/issue-2782.rs index e199c882c868..61fc20c143a1 100644 --- a/gcc/testsuite/rust/compile/issue-2782.rs +++ b/gcc/testsuite/rust/compile/issue-2782.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2907.rs b/gcc/testsuite/rust/compile/issue-2907.rs index fdf1953fc8c1..8c0d49673e77 100644 --- a/gcc/testsuite/rust/compile/issue-2907.rs +++ b/gcc/testsuite/rust/compile/issue-2907.rs @@ -1,5 +1,6 @@ #![feature(lang_items)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2951.rs b/gcc/testsuite/rust/compile/issue-2951.rs index d30a3bf2adf1..218332d81eab 100644 --- a/gcc/testsuite/rust/compile/issue-2951.rs +++ b/gcc/testsuite/rust/compile/issue-2951.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2953-1.rs b/gcc/testsuite/rust/compile/issue-2953-1.rs index d07059e440e0..d3289b933c96 100644 --- a/gcc/testsuite/rust/compile/issue-2953-1.rs +++ b/gcc/testsuite/rust/compile/issue-2953-1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] pub trait Sized { // Empty. diff --git a/gcc/testsuite/rust/compile/issue-2953-2.rs b/gcc/testsuite/rust/compile/issue-2953-2.rs index 59276246a1c2..5fbd6c45ac51 100644 --- a/gcc/testsuite/rust/compile/issue-2953-2.rs +++ b/gcc/testsuite/rust/compile/issue-2953-2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] pub trait Sized { // Empty. diff --git a/gcc/testsuite/rust/compile/issue-2954.rs b/gcc/testsuite/rust/compile/issue-2954.rs index 52f7c9140ecc..973ee0a425df 100644 --- a/gcc/testsuite/rust/compile/issue-2954.rs +++ b/gcc/testsuite/rust/compile/issue-2954.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-2987.rs b/gcc/testsuite/rust/compile/issue-2987.rs index 1ab5fdc3647b..9560bde36623 100644 --- a/gcc/testsuite/rust/compile/issue-2987.rs +++ b/gcc/testsuite/rust/compile/issue-2987.rs @@ -1,5 +1,6 @@ // { dg-options "-w" } Currently there are a lot of warnings produced from inside clone/copy // builtins +#![feature(lang_items)] #[lang = "copy"] trait Copy {} diff --git a/gcc/testsuite/rust/compile/issue-3009.rs b/gcc/testsuite/rust/compile/issue-3009.rs index 2eb4ef39abdc..3d6fb9fd632a 100644 --- a/gcc/testsuite/rust/compile/issue-3009.rs +++ b/gcc/testsuite/rust/compile/issue-3009.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3022.rs b/gcc/testsuite/rust/compile/issue-3022.rs index b8b8e6fd5c79..e9358c9aaeee 100644 --- a/gcc/testsuite/rust/compile/issue-3022.rs +++ b/gcc/testsuite/rust/compile/issue-3022.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3030.rs b/gcc/testsuite/rust/compile/issue-3030.rs index 0a1866d9a6b2..94222b78ac86 100644 --- a/gcc/testsuite/rust/compile/issue-3030.rs +++ b/gcc/testsuite/rust/compile/issue-3030.rs @@ -1,5 +1,6 @@ #![feature(negative_impls)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3032-1.rs b/gcc/testsuite/rust/compile/issue-3032-1.rs index e9eb02794ce4..7338cb99b415 100644 --- a/gcc/testsuite/rust/compile/issue-3032-1.rs +++ b/gcc/testsuite/rust/compile/issue-3032-1.rs @@ -1,4 +1,4 @@ -#![feature(negative_impls)] +#![feature(negative_impls, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3032-2.rs b/gcc/testsuite/rust/compile/issue-3032-2.rs index 9e09d4190720..37c081b8c911 100644 --- a/gcc/testsuite/rust/compile/issue-3032-2.rs +++ b/gcc/testsuite/rust/compile/issue-3032-2.rs @@ -1,4 +1,4 @@ -#![feature(negative_impls)] +#![feature(negative_impls, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3033.rs b/gcc/testsuite/rust/compile/issue-3033.rs index 9085b7616c0d..7adce5bd1229 100644 --- a/gcc/testsuite/rust/compile/issue-3033.rs +++ b/gcc/testsuite/rust/compile/issue-3033.rs @@ -1,4 +1,4 @@ -#![feature(negative_impls)] +#![feature(negative_impls, lang_items)] #[lang = "copy"] trait Copy {} diff --git a/gcc/testsuite/rust/compile/issue-3035.rs b/gcc/testsuite/rust/compile/issue-3035.rs index 3266d841dea0..80c2ab62f86b 100644 --- a/gcc/testsuite/rust/compile/issue-3035.rs +++ b/gcc/testsuite/rust/compile/issue-3035.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3036.rs b/gcc/testsuite/rust/compile/issue-3036.rs index 4418ccc04cb9..39856d574781 100644 --- a/gcc/testsuite/rust/compile/issue-3036.rs +++ b/gcc/testsuite/rust/compile/issue-3036.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3045-1.rs b/gcc/testsuite/rust/compile/issue-3045-1.rs index a1328f22d0cd..1f62e368f425 100644 --- a/gcc/testsuite/rust/compile/issue-3045-1.rs +++ b/gcc/testsuite/rust/compile/issue-3045-1.rs @@ -1,4 +1,4 @@ -#![feature(dropck_eyepatch)] +#![feature(dropck_eyepatch, lang_items)] #[allow(dead_code)] #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-3045-2.rs b/gcc/testsuite/rust/compile/issue-3045-2.rs index 177707fb4750..4c90d4d8c3ea 100644 --- a/gcc/testsuite/rust/compile/issue-3045-2.rs +++ b/gcc/testsuite/rust/compile/issue-3045-2.rs @@ -1,4 +1,4 @@ -#![feature(dropck_eyepatch)] +#![feature(dropck_eyepatch, lang_items)] #[allow(dead_code)] #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-3144.rs b/gcc/testsuite/rust/compile/issue-3144.rs index 4e61078a0dcc..02c6ff6e1d24 100644 --- a/gcc/testsuite/rust/compile/issue-3144.rs +++ b/gcc/testsuite/rust/compile/issue-3144.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3242.rs b/gcc/testsuite/rust/compile/issue-3242.rs index a4542aea00b0..a6bd1c838c99 100644 --- a/gcc/testsuite/rust/compile/issue-3242.rs +++ b/gcc/testsuite/rust/compile/issue-3242.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3304.rs b/gcc/testsuite/rust/compile/issue-3304.rs index cc376faeb9dc..aa857e229d79 100644 --- a/gcc/testsuite/rust/compile/issue-3304.rs +++ b/gcc/testsuite/rust/compile/issue-3304.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3382.rs b/gcc/testsuite/rust/compile/issue-3382.rs index 6f4382f1b523..c26494c632b8 100644 --- a/gcc/testsuite/rust/compile/issue-3382.rs +++ b/gcc/testsuite/rust/compile/issue-3382.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3402-1.rs b/gcc/testsuite/rust/compile/issue-3402-1.rs index ed603cecaada..cd13b748cee0 100644 --- a/gcc/testsuite/rust/compile/issue-3402-1.rs +++ b/gcc/testsuite/rust/compile/issue-3402-1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + pub struct Foo { a: i32, // { dg-warning "field is never read" "" { target *-*-* } .-1 } diff --git a/gcc/testsuite/rust/compile/issue-3402-2.rs b/gcc/testsuite/rust/compile/issue-3402-2.rs index b665af25b51f..33d72e08f2ef 100644 --- a/gcc/testsuite/rust/compile/issue-3402-2.rs +++ b/gcc/testsuite/rust/compile/issue-3402-2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + pub struct Bar(i32); #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-3403.rs b/gcc/testsuite/rust/compile/issue-3403.rs index ced6b4efd975..6a3f7200a7bd 100644 --- a/gcc/testsuite/rust/compile/issue-3403.rs +++ b/gcc/testsuite/rust/compile/issue-3403.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + pub struct Foo { a: i32, // { dg-warning "field is never read" "" { target *-*-* } .-1 } diff --git a/gcc/testsuite/rust/compile/issue-3454.rs b/gcc/testsuite/rust/compile/issue-3454.rs index 2a3c0c714606..e2a5a39b4549 100644 --- a/gcc/testsuite/rust/compile/issue-3454.rs +++ b/gcc/testsuite/rust/compile/issue-3454.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3551.rs b/gcc/testsuite/rust/compile/issue-3551.rs index 6d6a8129885d..55303b21f7c1 100644 --- a/gcc/testsuite/rust/compile/issue-3551.rs +++ b/gcc/testsuite/rust/compile/issue-3551.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3554-2.rs b/gcc/testsuite/rust/compile/issue-3554-2.rs index e455a8b2cec0..3710e5778ab2 100644 --- a/gcc/testsuite/rust/compile/issue-3554-2.rs +++ b/gcc/testsuite/rust/compile/issue-3554-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3599.rs b/gcc/testsuite/rust/compile/issue-3599.rs index 1d29fac84e93..a41d2b3ae00e 100644 --- a/gcc/testsuite/rust/compile/issue-3599.rs +++ b/gcc/testsuite/rust/compile/issue-3599.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3642.rs b/gcc/testsuite/rust/compile/issue-3642.rs index 6d9decc8616d..30abfd3b251a 100644 --- a/gcc/testsuite/rust/compile/issue-3642.rs +++ b/gcc/testsuite/rust/compile/issue-3642.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3711.rs b/gcc/testsuite/rust/compile/issue-3711.rs index a3f9c39b4c58..911d4adbc2c9 100644 --- a/gcc/testsuite/rust/compile/issue-3711.rs +++ b/gcc/testsuite/rust/compile/issue-3711.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3836.rs b/gcc/testsuite/rust/compile/issue-3836.rs index a2287957ad14..8cc661febc76 100644 --- a/gcc/testsuite/rust/compile/issue-3836.rs +++ b/gcc/testsuite/rust/compile/issue-3836.rs @@ -1,4 +1,6 @@ // { dg-options "-w" } +#![feature(lang_items)] + mod core { mod option { pub enum Option { diff --git a/gcc/testsuite/rust/compile/issue-3898.rs b/gcc/testsuite/rust/compile/issue-3898.rs index 114370cf8815..8199267469ad 100644 --- a/gcc/testsuite/rust/compile/issue-3898.rs +++ b/gcc/testsuite/rust/compile/issue-3898.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-frust-compile-until=lowering" } +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3915.rs b/gcc/testsuite/rust/compile/issue-3915.rs index 7132036f92ff..5cd8dc022297 100644 --- a/gcc/testsuite/rust/compile/issue-3915.rs +++ b/gcc/testsuite/rust/compile/issue-3915.rs @@ -1,4 +1,6 @@ // { dg-options "-w" } +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3916.rs b/gcc/testsuite/rust/compile/issue-3916.rs index 59b522b4ed5c..c4adb643c3f3 100644 --- a/gcc/testsuite/rust/compile/issue-3916.rs +++ b/gcc/testsuite/rust/compile/issue-3916.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-3969.rs b/gcc/testsuite/rust/compile/issue-3969.rs index 9608589c3e27..6715978c4f6a 100644 --- a/gcc/testsuite/rust/compile/issue-3969.rs +++ b/gcc/testsuite/rust/compile/issue-3969.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] pub trait Sized { // Empty. diff --git a/gcc/testsuite/rust/compile/issue-402.rs b/gcc/testsuite/rust/compile/issue-402.rs index 2c99fc8f2485..ec398e9bc960 100644 --- a/gcc/testsuite/rust/compile/issue-402.rs +++ b/gcc/testsuite/rust/compile/issue-402.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-4090-1.rs b/gcc/testsuite/rust/compile/issue-4090-1.rs index 9f83835ee4a3..04119432fba4 100644 --- a/gcc/testsuite/rust/compile/issue-4090-1.rs +++ b/gcc/testsuite/rust/compile/issue-4090-1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + mod core { mod marker { #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-4090-2.rs b/gcc/testsuite/rust/compile/issue-4090-2.rs index 75d6b7c6407c..7b76c0aa6030 100644 --- a/gcc/testsuite/rust/compile/issue-4090-2.rs +++ b/gcc/testsuite/rust/compile/issue-4090-2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + mod core { mod marker { #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-850.rs b/gcc/testsuite/rust/compile/issue-850.rs index e42b5573d1d1..c6a5f316f6a8 100644 --- a/gcc/testsuite/rust/compile/issue-850.rs +++ b/gcc/testsuite/rust/compile/issue-850.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/issue-855.rs b/gcc/testsuite/rust/compile/issue-855.rs index 9e450ddda3ae..3736d087b8e7 100644 --- a/gcc/testsuite/rust/compile/issue-855.rs +++ b/gcc/testsuite/rust/compile/issue-855.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + pub use result::Result::{self, Err, Ok}; #[lang = "sized"] diff --git a/gcc/testsuite/rust/compile/issue-925.rs b/gcc/testsuite/rust/compile/issue-925.rs index 507fe9444e5f..34c611b99b38 100644 --- a/gcc/testsuite/rust/compile/issue-925.rs +++ b/gcc/testsuite/rust/compile/issue-925.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/iterators1.rs b/gcc/testsuite/rust/compile/iterators1.rs index 2ea3d741c9f3..4bbc47e25707 100644 --- a/gcc/testsuite/rust/compile/iterators1.rs +++ b/gcc/testsuite/rust/compile/iterators1.rs @@ -1,4 +1,4 @@ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs b/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs index cf9f65b0ea4a..b96c1ee255d2 100644 --- a/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs +++ b/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! option_env { diff --git a/gcc/testsuite/rust/compile/macros/builtin/option_env2.rs b/gcc/testsuite/rust/compile/macros/builtin/option_env2.rs index 63f72545fd9d..ef0e563b9470 100644 --- a/gcc/testsuite/rust/compile/macros/builtin/option_env2.rs +++ b/gcc/testsuite/rust/compile/macros/builtin/option_env2.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! option_env { diff --git a/gcc/testsuite/rust/compile/macros/builtin/option_env3.rs b/gcc/testsuite/rust/compile/macros/builtin/option_env3.rs index ad6dd4c21da2..545f3c8d5662 100644 --- a/gcc/testsuite/rust/compile/macros/builtin/option_env3.rs +++ b/gcc/testsuite/rust/compile/macros/builtin/option_env3.rs @@ -1,4 +1,4 @@ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! option_env { diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs index 5c51b78065c1..0708128703af 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs @@ -1,5 +1,6 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs index bcbc8dd695af..bbf027655810 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-frust-compile-until=lowering" } +#![feature(lang_items)] macro_rules! impl_fn_for_zst { ($( diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs index 47514f1e998b..4d7649737368 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-frust-compile-until=lowering" } +#![feature(lang_items)] macro_rules! impl_fn_for_zst { ($( diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro20.rs b/gcc/testsuite/rust/compile/macros/mbe/macro20.rs index e03455b1b01f..448183414bd4 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro20.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro20.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro23.rs b/gcc/testsuite/rust/compile/macros/mbe/macro23.rs index a6a2afdad076..3add715deb53 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro23.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro23.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro40.rs b/gcc/testsuite/rust/compile/macros/mbe/macro40.rs index f9d048e8ab1d..39cbf5a737e0 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro40.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro40.rs @@ -1,5 +1,6 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro49.rs b/gcc/testsuite/rust/compile/macros/mbe/macro49.rs index 9d63ff1e627d..850cf44d4192 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro49.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro49.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro54.rs b/gcc/testsuite/rust/compile/macros/mbe/macro54.rs index d3b3f806a6a0..1cc4b3d542cf 100644 --- a/gcc/testsuite/rust/compile/macros/mbe/macro54.rs +++ b/gcc/testsuite/rust/compile/macros/mbe/macro54.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/multiple_bindings1.rs b/gcc/testsuite/rust/compile/multiple_bindings1.rs index 8a2e18c27b1b..c433a0dd292e 100644 --- a/gcc/testsuite/rust/compile/multiple_bindings1.rs +++ b/gcc/testsuite/rust/compile/multiple_bindings1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/name_resolution2.rs b/gcc/testsuite/rust/compile/name_resolution2.rs index 564c5d20ea5d..997bf55ca674 100644 --- a/gcc/testsuite/rust/compile/name_resolution2.rs +++ b/gcc/testsuite/rust/compile/name_resolution2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/name_resolution4.rs b/gcc/testsuite/rust/compile/name_resolution4.rs index 0fc72f601c78..2da1aaeaa581 100644 --- a/gcc/testsuite/rust/compile/name_resolution4.rs +++ b/gcc/testsuite/rust/compile/name_resolution4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/nested_generic.rs b/gcc/testsuite/rust/compile/nested_generic.rs index 322b3c50afb4..b7dae27bf5a6 100644 --- a/gcc/testsuite/rust/compile/nested_generic.rs +++ b/gcc/testsuite/rust/compile/nested_generic.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs index ba1042a9bbe8..9190c4004e62 100644 --- a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs +++ b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs index a2662c25e218..c50823bc5c1d 100644 --- a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs +++ b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs index b4342e8c4cba..fa65b55c13cd 100644 --- a/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs +++ b/gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_closure_bind.rs b/gcc/testsuite/rust/compile/parse_closure_bind.rs index 1e08197a5fd0..45138466d61c 100644 --- a/gcc/testsuite/rust/compile/parse_closure_bind.rs +++ b/gcc/testsuite/rust/compile/parse_closure_bind.rs @@ -1,5 +1,6 @@ // { dg-additional-options "-frust-compile-until=typecheck" } // TODO: this should typecheck +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_complex_generic_application.rs b/gcc/testsuite/rust/compile/parse_complex_generic_application.rs index 02877dd727ed..b678cb219cde 100644 --- a/gcc/testsuite/rust/compile/parse_complex_generic_application.rs +++ b/gcc/testsuite/rust/compile/parse_complex_generic_application.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/parse_complex_generic_application2.rs b/gcc/testsuite/rust/compile/parse_complex_generic_application2.rs index 5ebc94f1f989..41ce21a49076 100644 --- a/gcc/testsuite/rust/compile/parse_complex_generic_application2.rs +++ b/gcc/testsuite/rust/compile/parse_complex_generic_application2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/path_as_generic_arg.rs b/gcc/testsuite/rust/compile/path_as_generic_arg.rs index 21baf8000e71..aff4ce2793d5 100644 --- a/gcc/testsuite/rust/compile/path_as_generic_arg.rs +++ b/gcc/testsuite/rust/compile/path_as_generic_arg.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/privacy4.rs b/gcc/testsuite/rust/compile/privacy4.rs index 7865f6a3d479..5da43ffef75a 100644 --- a/gcc/testsuite/rust/compile/privacy4.rs +++ b/gcc/testsuite/rust/compile/privacy4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/privacy6.rs b/gcc/testsuite/rust/compile/privacy6.rs index e1e0fac282b4..72d1a3b4f339 100644 --- a/gcc/testsuite/rust/compile/privacy6.rs +++ b/gcc/testsuite/rust/compile/privacy6.rs @@ -1,5 +1,6 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/silly-order-bug.rs b/gcc/testsuite/rust/compile/silly-order-bug.rs index 0d9cf1d8a884..cdc8b2f8571b 100644 --- a/gcc/testsuite/rust/compile/silly-order-bug.rs +++ b/gcc/testsuite/rust/compile/silly-order-bug.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs b/gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs index c46a97d1539b..7377a26d7353 100644 --- a/gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs +++ b/gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/stmt_with_block_dot.rs b/gcc/testsuite/rust/compile/stmt_with_block_dot.rs index c7037af8cd4e..5a3721e5662b 100644 --- a/gcc/testsuite/rust/compile/stmt_with_block_dot.rs +++ b/gcc/testsuite/rust/compile/stmt_with_block_dot.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/structural-eq-peq.rs b/gcc/testsuite/rust/compile/structural-eq-peq.rs index d04c295037f5..9bdc98d3d464 100644 --- a/gcc/testsuite/rust/compile/structural-eq-peq.rs +++ b/gcc/testsuite/rust/compile/structural-eq-peq.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "structural_peq"] pub trait StructuralPartialEq { // Empty. diff --git a/gcc/testsuite/rust/compile/torture/associated_types1.rs b/gcc/testsuite/rust/compile/torture/associated_types1.rs index 2be703722c2e..4fc76af6ab9c 100644 --- a/gcc/testsuite/rust/compile/torture/associated_types1.rs +++ b/gcc/testsuite/rust/compile/torture/associated_types1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/forward_decl_5.rs b/gcc/testsuite/rust/compile/torture/forward_decl_5.rs index 670ab0a799fb..9d0660cc2f71 100644 --- a/gcc/testsuite/rust/compile/torture/forward_decl_5.rs +++ b/gcc/testsuite/rust/compile/torture/forward_decl_5.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics1.rs b/gcc/testsuite/rust/compile/torture/generics1.rs index b32eddd6c482..1d4c0f223848 100644 --- a/gcc/testsuite/rust/compile/torture/generics1.rs +++ b/gcc/testsuite/rust/compile/torture/generics1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics10.rs b/gcc/testsuite/rust/compile/torture/generics10.rs index 1a17e842a0dc..af12d7d328d3 100644 --- a/gcc/testsuite/rust/compile/torture/generics10.rs +++ b/gcc/testsuite/rust/compile/torture/generics10.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics11.rs b/gcc/testsuite/rust/compile/torture/generics11.rs index 9d5e719d774f..0e2939f7d4f3 100644 --- a/gcc/testsuite/rust/compile/torture/generics11.rs +++ b/gcc/testsuite/rust/compile/torture/generics11.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics12.rs b/gcc/testsuite/rust/compile/torture/generics12.rs index 9347b24d2d41..cf841dd1874e 100644 --- a/gcc/testsuite/rust/compile/torture/generics12.rs +++ b/gcc/testsuite/rust/compile/torture/generics12.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics13.rs b/gcc/testsuite/rust/compile/torture/generics13.rs index 00b26ec0968c..b83521f77fee 100644 --- a/gcc/testsuite/rust/compile/torture/generics13.rs +++ b/gcc/testsuite/rust/compile/torture/generics13.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics14.rs b/gcc/testsuite/rust/compile/torture/generics14.rs index 5be39ebff91c..bf5b295546da 100644 --- a/gcc/testsuite/rust/compile/torture/generics14.rs +++ b/gcc/testsuite/rust/compile/torture/generics14.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics15.rs b/gcc/testsuite/rust/compile/torture/generics15.rs index 2b1f31c0217e..ab65007b7a2d 100644 --- a/gcc/testsuite/rust/compile/torture/generics15.rs +++ b/gcc/testsuite/rust/compile/torture/generics15.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics16.rs b/gcc/testsuite/rust/compile/torture/generics16.rs index a9fa2ebdf0bc..0701c942afa5 100644 --- a/gcc/testsuite/rust/compile/torture/generics16.rs +++ b/gcc/testsuite/rust/compile/torture/generics16.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics17.rs b/gcc/testsuite/rust/compile/torture/generics17.rs index 9a04158e4c95..a52de9b0077b 100644 --- a/gcc/testsuite/rust/compile/torture/generics17.rs +++ b/gcc/testsuite/rust/compile/torture/generics17.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics18.rs b/gcc/testsuite/rust/compile/torture/generics18.rs index cb7b1fa7404d..8a239f2ea333 100644 --- a/gcc/testsuite/rust/compile/torture/generics18.rs +++ b/gcc/testsuite/rust/compile/torture/generics18.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics19.rs b/gcc/testsuite/rust/compile/torture/generics19.rs index c98599fffdac..4b372b61a489 100644 --- a/gcc/testsuite/rust/compile/torture/generics19.rs +++ b/gcc/testsuite/rust/compile/torture/generics19.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics2.rs b/gcc/testsuite/rust/compile/torture/generics2.rs index e720b4221497..61fd57406a26 100644 --- a/gcc/testsuite/rust/compile/torture/generics2.rs +++ b/gcc/testsuite/rust/compile/torture/generics2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics20.rs b/gcc/testsuite/rust/compile/torture/generics20.rs index 92b022e3746f..985189ed0e7f 100644 --- a/gcc/testsuite/rust/compile/torture/generics20.rs +++ b/gcc/testsuite/rust/compile/torture/generics20.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics21.rs b/gcc/testsuite/rust/compile/torture/generics21.rs index 1c74ea429991..2986e69aedf9 100644 --- a/gcc/testsuite/rust/compile/torture/generics21.rs +++ b/gcc/testsuite/rust/compile/torture/generics21.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics22.rs b/gcc/testsuite/rust/compile/torture/generics22.rs index b838e6e8262c..b5c5f9a003e7 100644 --- a/gcc/testsuite/rust/compile/torture/generics22.rs +++ b/gcc/testsuite/rust/compile/torture/generics22.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics23.rs b/gcc/testsuite/rust/compile/torture/generics23.rs index bf4dfb59f6bb..d0da16f6719a 100644 --- a/gcc/testsuite/rust/compile/torture/generics23.rs +++ b/gcc/testsuite/rust/compile/torture/generics23.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics24.rs b/gcc/testsuite/rust/compile/torture/generics24.rs index ce782c0e9876..8655ca50988c 100644 --- a/gcc/testsuite/rust/compile/torture/generics24.rs +++ b/gcc/testsuite/rust/compile/torture/generics24.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics25.rs b/gcc/testsuite/rust/compile/torture/generics25.rs index 4fe952a5da17..a711e2144bd2 100644 --- a/gcc/testsuite/rust/compile/torture/generics25.rs +++ b/gcc/testsuite/rust/compile/torture/generics25.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics26.rs b/gcc/testsuite/rust/compile/torture/generics26.rs index 0111add4138a..3a5dcac49e28 100644 --- a/gcc/testsuite/rust/compile/torture/generics26.rs +++ b/gcc/testsuite/rust/compile/torture/generics26.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics27.rs b/gcc/testsuite/rust/compile/torture/generics27.rs index c4ca4db81e01..db8fe765ac33 100644 --- a/gcc/testsuite/rust/compile/torture/generics27.rs +++ b/gcc/testsuite/rust/compile/torture/generics27.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics28.rs b/gcc/testsuite/rust/compile/torture/generics28.rs index c1ffd9c245fb..f815ef5d2a62 100644 --- a/gcc/testsuite/rust/compile/torture/generics28.rs +++ b/gcc/testsuite/rust/compile/torture/generics28.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics29.rs b/gcc/testsuite/rust/compile/torture/generics29.rs index baf53e4347f0..4a35b3b41137 100644 --- a/gcc/testsuite/rust/compile/torture/generics29.rs +++ b/gcc/testsuite/rust/compile/torture/generics29.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics3.rs b/gcc/testsuite/rust/compile/torture/generics3.rs index 4c5dabcbd8bc..ae12d007dca4 100644 --- a/gcc/testsuite/rust/compile/torture/generics3.rs +++ b/gcc/testsuite/rust/compile/torture/generics3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics30.rs b/gcc/testsuite/rust/compile/torture/generics30.rs index a84f140e1fdb..f592e774c693 100644 --- a/gcc/testsuite/rust/compile/torture/generics30.rs +++ b/gcc/testsuite/rust/compile/torture/generics30.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics31.rs b/gcc/testsuite/rust/compile/torture/generics31.rs index f8e2f36ef734..a393a4c3bb6c 100644 --- a/gcc/testsuite/rust/compile/torture/generics31.rs +++ b/gcc/testsuite/rust/compile/torture/generics31.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics32.rs b/gcc/testsuite/rust/compile/torture/generics32.rs index 49c4539d91d7..f332a776595a 100644 --- a/gcc/testsuite/rust/compile/torture/generics32.rs +++ b/gcc/testsuite/rust/compile/torture/generics32.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics4.rs b/gcc/testsuite/rust/compile/torture/generics4.rs index 54bdf56b63fa..3d4875b9f64c 100644 --- a/gcc/testsuite/rust/compile/torture/generics4.rs +++ b/gcc/testsuite/rust/compile/torture/generics4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics5.rs b/gcc/testsuite/rust/compile/torture/generics5.rs index df27fdd8f6eb..3fcf13be08b0 100644 --- a/gcc/testsuite/rust/compile/torture/generics5.rs +++ b/gcc/testsuite/rust/compile/torture/generics5.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics6.rs b/gcc/testsuite/rust/compile/torture/generics6.rs index 16b85fbcb189..79d1ab8c361e 100644 --- a/gcc/testsuite/rust/compile/torture/generics6.rs +++ b/gcc/testsuite/rust/compile/torture/generics6.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics7.rs b/gcc/testsuite/rust/compile/torture/generics7.rs index 66454d6166dc..0eb1db18c9c8 100644 --- a/gcc/testsuite/rust/compile/torture/generics7.rs +++ b/gcc/testsuite/rust/compile/torture/generics7.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics8.rs b/gcc/testsuite/rust/compile/torture/generics8.rs index bc6d09b9919c..b46b1a28886d 100644 --- a/gcc/testsuite/rust/compile/torture/generics8.rs +++ b/gcc/testsuite/rust/compile/torture/generics8.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/generics9.rs b/gcc/testsuite/rust/compile/torture/generics9.rs index 3d9d748ef98c..fa926eed92b1 100644 --- a/gcc/testsuite/rust/compile/torture/generics9.rs +++ b/gcc/testsuite/rust/compile/torture/generics9.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-2.rs b/gcc/testsuite/rust/compile/torture/intrinsics-2.rs index a6cd8f8553f4..23151b14de5d 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-2.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-2.rs @@ -2,6 +2,7 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-4.rs b/gcc/testsuite/rust/compile/torture/intrinsics-4.rs index 3d26e999b9e9..51fc3c1a76c1 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-4.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-4.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-5.rs b/gcc/testsuite/rust/compile/torture/intrinsics-5.rs index 7a62cca280ca..a015c2a17844 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-5.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-5.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-6.rs b/gcc/testsuite/rust/compile/torture/intrinsics-6.rs index 0e2634592379..12821a06e4e2 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-6.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-6.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-7.rs b/gcc/testsuite/rust/compile/torture/intrinsics-7.rs index 754aacb3449e..6dc9187c483c 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-7.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-7.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-8.rs b/gcc/testsuite/rust/compile/torture/intrinsics-8.rs index b9bd83c76240..22b101257cba 100644 --- a/gcc/testsuite/rust/compile/torture/intrinsics-8.rs +++ b/gcc/testsuite/rust/compile/torture/intrinsics-8.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-1024.rs b/gcc/testsuite/rust/compile/torture/issue-1024.rs index 819e329058c5..c7325651e693 100644 --- a/gcc/testsuite/rust/compile/torture/issue-1024.rs +++ b/gcc/testsuite/rust/compile/torture/issue-1024.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-1075.rs b/gcc/testsuite/rust/compile/torture/issue-1075.rs index d23774b2c0bb..558467862b53 100644 --- a/gcc/testsuite/rust/compile/torture/issue-1075.rs +++ b/gcc/testsuite/rust/compile/torture/issue-1075.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-1432.rs b/gcc/testsuite/rust/compile/torture/issue-1432.rs index 5b526fdd52db..df1b52738ce3 100644 --- a/gcc/testsuite/rust/compile/torture/issue-1432.rs +++ b/gcc/testsuite/rust/compile/torture/issue-1432.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-1555.rs b/gcc/testsuite/rust/compile/torture/issue-1555.rs index bee8952f3683..b2f675a79488 100644 --- a/gcc/testsuite/rust/compile/torture/issue-1555.rs +++ b/gcc/testsuite/rust/compile/torture/issue-1555.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-368.rs b/gcc/testsuite/rust/compile/torture/issue-368.rs index 775e70d9d23e..a657a7c52bcf 100644 --- a/gcc/testsuite/rust/compile/torture/issue-368.rs +++ b/gcc/testsuite/rust/compile/torture/issue-368.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-808.rs b/gcc/testsuite/rust/compile/torture/issue-808.rs index 4186d54f4bc1..f739d22e1c3e 100644 --- a/gcc/testsuite/rust/compile/torture/issue-808.rs +++ b/gcc/testsuite/rust/compile/torture/issue-808.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-862.rs b/gcc/testsuite/rust/compile/torture/issue-862.rs index d9ac91246018..88d6d652070c 100644 --- a/gcc/testsuite/rust/compile/torture/issue-862.rs +++ b/gcc/testsuite/rust/compile/torture/issue-862.rs @@ -1,5 +1,6 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-893-2.rs b/gcc/testsuite/rust/compile/torture/issue-893-2.rs index 3df27b8335ef..2e4ec14b6196 100644 --- a/gcc/testsuite/rust/compile/torture/issue-893-2.rs +++ b/gcc/testsuite/rust/compile/torture/issue-893-2.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/issue-893.rs b/gcc/testsuite/rust/compile/torture/issue-893.rs index f96b5c346432..bd77c8dc41bf 100644 --- a/gcc/testsuite/rust/compile/torture/issue-893.rs +++ b/gcc/testsuite/rust/compile/torture/issue-893.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/must_use2.rs b/gcc/testsuite/rust/compile/torture/must_use2.rs index cf6643eec25d..9c9a1a7b3f13 100644 --- a/gcc/testsuite/rust/compile/torture/must_use2.rs +++ b/gcc/testsuite/rust/compile/torture/must_use2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/nested_fn2.rs b/gcc/testsuite/rust/compile/torture/nested_fn2.rs index ad7a10b0a82e..57cee8a4a8a4 100644 --- a/gcc/testsuite/rust/compile/torture/nested_fn2.rs +++ b/gcc/testsuite/rust/compile/torture/nested_fn2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/phantom_data.rs b/gcc/testsuite/rust/compile/torture/phantom_data.rs index d6c5adcf89a2..a5b70a55f042 100644 --- a/gcc/testsuite/rust/compile/torture/phantom_data.rs +++ b/gcc/testsuite/rust/compile/torture/phantom_data.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/range-lang-item1.rs b/gcc/testsuite/rust/compile/torture/range-lang-item1.rs index 604fee8e3285..db10f85265e8 100644 --- a/gcc/testsuite/rust/compile/torture/range-lang-item1.rs +++ b/gcc/testsuite/rust/compile/torture/range-lang-item1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits1.rs b/gcc/testsuite/rust/compile/torture/traits1.rs index 8929501de6f5..6fe943c8948a 100644 --- a/gcc/testsuite/rust/compile/torture/traits1.rs +++ b/gcc/testsuite/rust/compile/torture/traits1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits10.rs b/gcc/testsuite/rust/compile/torture/traits10.rs index 4cf36e3c6f1c..47104453b46b 100644 --- a/gcc/testsuite/rust/compile/torture/traits10.rs +++ b/gcc/testsuite/rust/compile/torture/traits10.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits11.rs b/gcc/testsuite/rust/compile/torture/traits11.rs index 02383a5610aa..1cab51faf72d 100644 --- a/gcc/testsuite/rust/compile/torture/traits11.rs +++ b/gcc/testsuite/rust/compile/torture/traits11.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits12.rs b/gcc/testsuite/rust/compile/torture/traits12.rs index 8648022b8fe3..3e340eb273f6 100644 --- a/gcc/testsuite/rust/compile/torture/traits12.rs +++ b/gcc/testsuite/rust/compile/torture/traits12.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits13.rs b/gcc/testsuite/rust/compile/torture/traits13.rs index 5d9c81943d9c..ce70a28d344c 100644 --- a/gcc/testsuite/rust/compile/torture/traits13.rs +++ b/gcc/testsuite/rust/compile/torture/traits13.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits14.rs b/gcc/testsuite/rust/compile/torture/traits14.rs index ab546a88fae7..2996ecf1ab1e 100644 --- a/gcc/testsuite/rust/compile/torture/traits14.rs +++ b/gcc/testsuite/rust/compile/torture/traits14.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits15.rs b/gcc/testsuite/rust/compile/torture/traits15.rs index c1863a8a2f9b..c875577ef6f6 100644 --- a/gcc/testsuite/rust/compile/torture/traits15.rs +++ b/gcc/testsuite/rust/compile/torture/traits15.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits16.rs b/gcc/testsuite/rust/compile/torture/traits16.rs index 8c8e682e6c16..7dc546c4c990 100644 --- a/gcc/testsuite/rust/compile/torture/traits16.rs +++ b/gcc/testsuite/rust/compile/torture/traits16.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits17.rs b/gcc/testsuite/rust/compile/torture/traits17.rs index 268c2bd50c55..9ee267eb9e21 100644 --- a/gcc/testsuite/rust/compile/torture/traits17.rs +++ b/gcc/testsuite/rust/compile/torture/traits17.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits18.rs b/gcc/testsuite/rust/compile/torture/traits18.rs index 512152e9fdf3..bd32f70db0cf 100644 --- a/gcc/testsuite/rust/compile/torture/traits18.rs +++ b/gcc/testsuite/rust/compile/torture/traits18.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits19.rs b/gcc/testsuite/rust/compile/torture/traits19.rs index 4be898d40240..bd1a6e28bcf7 100644 --- a/gcc/testsuite/rust/compile/torture/traits19.rs +++ b/gcc/testsuite/rust/compile/torture/traits19.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits2.rs b/gcc/testsuite/rust/compile/torture/traits2.rs index a9dca948d1b4..f0a33d9e2c31 100644 --- a/gcc/testsuite/rust/compile/torture/traits2.rs +++ b/gcc/testsuite/rust/compile/torture/traits2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits3.rs b/gcc/testsuite/rust/compile/torture/traits3.rs index dad6ddab05ab..d06a68faf889 100644 --- a/gcc/testsuite/rust/compile/torture/traits3.rs +++ b/gcc/testsuite/rust/compile/torture/traits3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits4.rs b/gcc/testsuite/rust/compile/torture/traits4.rs index 49c4db2d34a6..716d657e14ac 100644 --- a/gcc/testsuite/rust/compile/torture/traits4.rs +++ b/gcc/testsuite/rust/compile/torture/traits4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits5.rs b/gcc/testsuite/rust/compile/torture/traits5.rs index c60a2597418b..86e83e5d7ded 100644 --- a/gcc/testsuite/rust/compile/torture/traits5.rs +++ b/gcc/testsuite/rust/compile/torture/traits5.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits6.rs b/gcc/testsuite/rust/compile/torture/traits6.rs index f11735324f2f..f1c4e84de2d8 100644 --- a/gcc/testsuite/rust/compile/torture/traits6.rs +++ b/gcc/testsuite/rust/compile/torture/traits6.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits7.rs b/gcc/testsuite/rust/compile/torture/traits7.rs index 545fd39416ac..928dd627d1eb 100644 --- a/gcc/testsuite/rust/compile/torture/traits7.rs +++ b/gcc/testsuite/rust/compile/torture/traits7.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits8.rs b/gcc/testsuite/rust/compile/torture/traits8.rs index cc0875bd0757..f2515e891fbf 100644 --- a/gcc/testsuite/rust/compile/torture/traits8.rs +++ b/gcc/testsuite/rust/compile/torture/traits8.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/traits9.rs b/gcc/testsuite/rust/compile/torture/traits9.rs index 3a7c37fcbb60..8015a35c322e 100644 --- a/gcc/testsuite/rust/compile/torture/traits9.rs +++ b/gcc/testsuite/rust/compile/torture/traits9.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs b/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs index 7b987797d493..4de1843a9e12 100644 --- a/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs +++ b/gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/transmute1.rs b/gcc/testsuite/rust/compile/torture/transmute1.rs index be9fb1de56da..fc1d94a3bb00 100644 --- a/gcc/testsuite/rust/compile/torture/transmute1.rs +++ b/gcc/testsuite/rust/compile/torture/transmute1.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs b/gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs index af1cb541fc3f..50083e596ac2 100644 --- a/gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs +++ b/gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/torture/utf8_identifiers.rs b/gcc/testsuite/rust/compile/torture/utf8_identifiers.rs index 696fcc0a3d83..f7d6b3771a73 100644 --- a/gcc/testsuite/rust/compile/torture/utf8_identifiers.rs +++ b/gcc/testsuite/rust/compile/torture/utf8_identifiers.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits1.rs b/gcc/testsuite/rust/compile/traits1.rs index 779662c3f418..d67a6cd13736 100644 --- a/gcc/testsuite/rust/compile/traits1.rs +++ b/gcc/testsuite/rust/compile/traits1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits10.rs b/gcc/testsuite/rust/compile/traits10.rs index da6c15553049..5e6e7e2cbef3 100644 --- a/gcc/testsuite/rust/compile/traits10.rs +++ b/gcc/testsuite/rust/compile/traits10.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits11.rs b/gcc/testsuite/rust/compile/traits11.rs index ac8ccdf5886b..6aa860b74129 100644 --- a/gcc/testsuite/rust/compile/traits11.rs +++ b/gcc/testsuite/rust/compile/traits11.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits12.rs b/gcc/testsuite/rust/compile/traits12.rs index b194e073a911..99f10a2206dd 100644 --- a/gcc/testsuite/rust/compile/traits12.rs +++ b/gcc/testsuite/rust/compile/traits12.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits2.rs b/gcc/testsuite/rust/compile/traits2.rs index a76f4c02ffc8..857ab28688c0 100644 --- a/gcc/testsuite/rust/compile/traits2.rs +++ b/gcc/testsuite/rust/compile/traits2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits3.rs b/gcc/testsuite/rust/compile/traits3.rs index 119132f80e88..c4e3185f59c8 100644 --- a/gcc/testsuite/rust/compile/traits3.rs +++ b/gcc/testsuite/rust/compile/traits3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits4.rs b/gcc/testsuite/rust/compile/traits4.rs index 4388b5e1cb5f..11a0c78c1675 100644 --- a/gcc/testsuite/rust/compile/traits4.rs +++ b/gcc/testsuite/rust/compile/traits4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits5.rs b/gcc/testsuite/rust/compile/traits5.rs index 4e9dcc167b7b..5bb6793b93b9 100644 --- a/gcc/testsuite/rust/compile/traits5.rs +++ b/gcc/testsuite/rust/compile/traits5.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits6.rs b/gcc/testsuite/rust/compile/traits6.rs index d081dd11e10d..b4922ccad030 100644 --- a/gcc/testsuite/rust/compile/traits6.rs +++ b/gcc/testsuite/rust/compile/traits6.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits7.rs b/gcc/testsuite/rust/compile/traits7.rs index 68f3f38f97bd..62e197e7d0ee 100644 --- a/gcc/testsuite/rust/compile/traits7.rs +++ b/gcc/testsuite/rust/compile/traits7.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits8.rs b/gcc/testsuite/rust/compile/traits8.rs index ccba9fad5dbe..117ba542c1f9 100644 --- a/gcc/testsuite/rust/compile/traits8.rs +++ b/gcc/testsuite/rust/compile/traits8.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/traits9.rs b/gcc/testsuite/rust/compile/traits9.rs index f4308e8ccc17..334124436230 100644 --- a/gcc/testsuite/rust/compile/traits9.rs +++ b/gcc/testsuite/rust/compile/traits9.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/try-expr1.rs b/gcc/testsuite/rust/compile/try-expr1.rs index f1a78657e858..f6e460e4311f 100644 --- a/gcc/testsuite/rust/compile/try-expr1.rs +++ b/gcc/testsuite/rust/compile/try-expr1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-frust-compile-until=typecheck" } +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/try-trait.rs b/gcc/testsuite/rust/compile/try-trait.rs index 9ec135dcd56c..3c0a88c05e8d 100644 --- a/gcc/testsuite/rust/compile/try-trait.rs +++ b/gcc/testsuite/rust/compile/try-trait.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/try_block1.rs b/gcc/testsuite/rust/compile/try_block1.rs index 7ae053683e94..9ace0296ecfa 100644 --- a/gcc/testsuite/rust/compile/try_block1.rs +++ b/gcc/testsuite/rust/compile/try_block1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-frust-edition=2018" } +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/type-bindings1.rs b/gcc/testsuite/rust/compile/type-bindings1.rs index ef0b47128dfa..fabb4871187a 100644 --- a/gcc/testsuite/rust/compile/type-bindings1.rs +++ b/gcc/testsuite/rust/compile/type-bindings1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/unconstrained_type_param.rs b/gcc/testsuite/rust/compile/unconstrained_type_param.rs index 60554dac0e01..dccfc9ed9190 100644 --- a/gcc/testsuite/rust/compile/unconstrained_type_param.rs +++ b/gcc/testsuite/rust/compile/unconstrained_type_param.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/unify-errors1.rs b/gcc/testsuite/rust/compile/unify-errors1.rs index 0fe95efd0d7f..e10105950aa4 100644 --- a/gcc/testsuite/rust/compile/unify-errors1.rs +++ b/gcc/testsuite/rust/compile/unify-errors1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/compile/unsafe10.rs b/gcc/testsuite/rust/compile/unsafe10.rs index 5861c15cd71d..12c0483ce904 100644 --- a/gcc/testsuite/rust/compile/unsafe10.rs +++ b/gcc/testsuite/rust/compile/unsafe10.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/v0-mangle1.rs b/gcc/testsuite/rust/compile/v0-mangle1.rs index 04c546e351af..b4a8c131382a 100644 --- a/gcc/testsuite/rust/compile/v0-mangle1.rs +++ b/gcc/testsuite/rust/compile/v0-mangle1.rs @@ -1,4 +1,5 @@ // { dg-additional-options -frust-mangling=v0 } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/v0-mangle2.rs b/gcc/testsuite/rust/compile/v0-mangle2.rs index d092dcc7a196..4378dd874f73 100644 --- a/gcc/testsuite/rust/compile/v0-mangle2.rs +++ b/gcc/testsuite/rust/compile/v0-mangle2.rs @@ -1,4 +1,5 @@ // { dg-additional-options -frust-mangling=v0 } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/compile/while_let1.rs b/gcc/testsuite/rust/compile/while_let1.rs index a3fa3053226a..03d84df98c91 100644 --- a/gcc/testsuite/rust/compile/while_let1.rs +++ b/gcc/testsuite/rust/compile/while_let1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + // use self::Ordering::*; // use Ordering::*; diff --git a/gcc/testsuite/rust/execute/black_box.rs b/gcc/testsuite/rust/execute/black_box.rs index 58d10a3e4209..8fa2ccefeb47 100644 --- a/gcc/testsuite/rust/execute/black_box.rs +++ b/gcc/testsuite/rust/execute/black_box.rs @@ -1,5 +1,5 @@ /* { dg-output "Value is: 42\r*\n" } */ -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] extern "C" { fn printf(s: *const i8, ...); diff --git a/gcc/testsuite/rust/execute/torture/atomic_load.rs b/gcc/testsuite/rust/execute/torture/atomic_load.rs index 11da84844945..c2727007d107 100644 --- a/gcc/testsuite/rust/execute/torture/atomic_load.rs +++ b/gcc/testsuite/rust/execute/torture/atomic_load.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/atomic_store.rs b/gcc/testsuite/rust/execute/torture/atomic_store.rs index 1b46678ba382..acf7c64c7f6e 100644 --- a/gcc/testsuite/rust/execute/torture/atomic_store.rs +++ b/gcc/testsuite/rust/execute/torture/atomic_store.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs b/gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs index 0431629e9ea6..d51c95dc6998 100644 --- a/gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs +++ b/gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs @@ -1,4 +1,6 @@ /* { dg-output "less\r*" }*/ +#![feature(lang_items)] + mod core { mod option { pub enum Option { diff --git a/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs b/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs index b6a96953d4a9..86c26df82e4f 100644 --- a/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs +++ b/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs @@ -1,5 +1,7 @@ /* { dg-output "<><=>=\r*" } */ /* { dg-options "-w" } */ +#![feature(lang_items)] + mod core { mod option { pub enum Option { diff --git a/gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs b/gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs index 56fbeaab602d..708c2aa1401c 100644 --- a/gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs +++ b/gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs @@ -1,7 +1,7 @@ // { dg-output "VALUE\r*\nVALUE\r*\n" } // { dg-set-compiler-env-var ENV_MACRO_TEST "VALUE" } -#![feature(rustc_attrs)] +#![feature(rustc_attrs, lang_items)] #[rustc_builtin_macro] macro_rules! option_env { diff --git a/gcc/testsuite/rust/execute/torture/closure1.rs b/gcc/testsuite/rust/execute/torture/closure1.rs index e9564133b556..1a5e498246bf 100644 --- a/gcc/testsuite/rust/execute/torture/closure1.rs +++ b/gcc/testsuite/rust/execute/torture/closure1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/closure2.rs b/gcc/testsuite/rust/execute/torture/closure2.rs index deca7845f8b3..06f385fac3c1 100644 --- a/gcc/testsuite/rust/execute/torture/closure2.rs +++ b/gcc/testsuite/rust/execute/torture/closure2.rs @@ -1,4 +1,6 @@ // { dg-output "3\r*\n" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/closure3.rs b/gcc/testsuite/rust/execute/torture/closure3.rs index 98ec26143a38..e9c624497217 100644 --- a/gcc/testsuite/rust/execute/torture/closure3.rs +++ b/gcc/testsuite/rust/execute/torture/closure3.rs @@ -1,4 +1,6 @@ // { dg-output "3\r*\n" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/closure4.rs b/gcc/testsuite/rust/execute/torture/closure4.rs index 070177607896..3f845dcd5648 100644 --- a/gcc/testsuite/rust/execute/torture/closure4.rs +++ b/gcc/testsuite/rust/execute/torture/closure4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/coercion1.rs b/gcc/testsuite/rust/execute/torture/coercion1.rs index 335f4962104b..e6511b9635b6 100644 --- a/gcc/testsuite/rust/execute/torture/coercion1.rs +++ b/gcc/testsuite/rust/execute/torture/coercion1.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/coercion2.rs b/gcc/testsuite/rust/execute/torture/coercion2.rs index 6be86020bdd7..cf316e40732c 100644 --- a/gcc/testsuite/rust/execute/torture/coercion2.rs +++ b/gcc/testsuite/rust/execute/torture/coercion2.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/coercion3.rs b/gcc/testsuite/rust/execute/torture/coercion3.rs index 0686056de4e8..a870beae00b9 100644 --- a/gcc/testsuite/rust/execute/torture/coercion3.rs +++ b/gcc/testsuite/rust/execute/torture/coercion3.rs @@ -1,4 +1,5 @@ // { dg-output "123\r*\n" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-1.rs b/gcc/testsuite/rust/execute/torture/const-generics-1.rs index dbb7afe6835b..3ad1b3b69164 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-1.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-2.rs b/gcc/testsuite/rust/execute/torture/const-generics-2.rs index cf92953a37ae..6ed5535876bd 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-2.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-3.rs b/gcc/testsuite/rust/execute/torture/const-generics-3.rs index 53698bb2dd64..289b8654e992 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-3.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-4.rs b/gcc/testsuite/rust/execute/torture/const-generics-4.rs index bf64f13e6545..9104f24d5748 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-4.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-5.rs b/gcc/testsuite/rust/execute/torture/const-generics-5.rs index fd3c6a2ce151..91006edf2ffa 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-5.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-5.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-6.rs b/gcc/testsuite/rust/execute/torture/const-generics-6.rs index 325b58e387d7..0aa7fae18319 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-6.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-6.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/const-generics-7.rs b/gcc/testsuite/rust/execute/torture/const-generics-7.rs index afba0329a706..c75d89747ece 100644 --- a/gcc/testsuite/rust/execute/torture/const-generics-7.rs +++ b/gcc/testsuite/rust/execute/torture/const-generics-7.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs b/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs index 15bb811773bd..662f8136554d 100644 --- a/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs +++ b/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs @@ -1,4 +1,5 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/derive-default1.rs b/gcc/testsuite/rust/execute/torture/derive-default1.rs index 4bcafa0fc44f..775f5be6e9bd 100644 --- a/gcc/testsuite/rust/execute/torture/derive-default1.rs +++ b/gcc/testsuite/rust/execute/torture/derive-default1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[derive(Default)] struct Foo { a: i32 } #[derive(Default)] diff --git a/gcc/testsuite/rust/execute/torture/derive-partialeq1.rs b/gcc/testsuite/rust/execute/torture/derive-partialeq1.rs index 67b2773e498f..442ee6725707 100644 --- a/gcc/testsuite/rust/execute/torture/derive-partialeq1.rs +++ b/gcc/testsuite/rust/execute/torture/derive-partialeq1.rs @@ -1,6 +1,6 @@ // { dg-output "true\r*\nfalse\r*\nfalse\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/derive-partialeq2.rs b/gcc/testsuite/rust/execute/torture/derive-partialeq2.rs index e316017753a2..1f4c374d4e89 100644 --- a/gcc/testsuite/rust/execute/torture/derive-partialeq2.rs +++ b/gcc/testsuite/rust/execute/torture/derive-partialeq2.rs @@ -1,6 +1,6 @@ // { dg-output "true\r*\nfalse\r*\nfalse\r*\nfalse\r*\nfalse\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub mod core { pub mod intrinsics { diff --git a/gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs b/gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs index 542ecd83db04..28a120fd4d09 100644 --- a/gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs +++ b/gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "clone"] trait Clone { pub fn clone(&self) -> Self; diff --git a/gcc/testsuite/rust/execute/torture/derive_macro1.rs b/gcc/testsuite/rust/execute/torture/derive_macro1.rs index 22cfaaae191c..780a30f597aa 100644 --- a/gcc/testsuite/rust/execute/torture/derive_macro1.rs +++ b/gcc/testsuite/rust/execute/torture/derive_macro1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/derive_macro3.rs b/gcc/testsuite/rust/execute/torture/derive_macro3.rs index 4138a5bf7e4c..e8fe94cfedd7 100644 --- a/gcc/testsuite/rust/execute/torture/derive_macro3.rs +++ b/gcc/testsuite/rust/execute/torture/derive_macro3.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/derive_macro4.rs b/gcc/testsuite/rust/execute/torture/derive_macro4.rs index 38c4808574a3..adeeb8db42c1 100644 --- a/gcc/testsuite/rust/execute/torture/derive_macro4.rs +++ b/gcc/testsuite/rust/execute/torture/derive_macro4.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs b/gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs index c30bbd3d3856..66011b555fbb 100644 --- a/gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs +++ b/gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs @@ -1,6 +1,7 @@ /* { dg-output "0\r*\n2\r*\n" } */ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs b/gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs index c1bae35deb2e..5f7d5ffeaeaf 100644 --- a/gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs +++ b/gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/for-loop1.rs b/gcc/testsuite/rust/execute/torture/for-loop1.rs index 334218927b13..e48a4b12400b 100644 --- a/gcc/testsuite/rust/execute/torture/for-loop1.rs +++ b/gcc/testsuite/rust/execute/torture/for-loop1.rs @@ -1,5 +1,5 @@ // { dg-output "loop\r*\nloop\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/execute/torture/for-loop2.rs b/gcc/testsuite/rust/execute/torture/for-loop2.rs index 4f5dfe1a0a26..022e9510378a 100644 --- a/gcc/testsuite/rust/execute/torture/for-loop2.rs +++ b/gcc/testsuite/rust/execute/torture/for-loop2.rs @@ -1,5 +1,5 @@ // { dg-output "loop1\r*\nloop2\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/execute/torture/gat1.rs b/gcc/testsuite/rust/execute/torture/gat1.rs index 8310a5883809..9a60986d945d 100644 --- a/gcc/testsuite/rust/execute/torture/gat1.rs +++ b/gcc/testsuite/rust/execute/torture/gat1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs b/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs index c73ea34c6dab..d1d63ceda153 100644 --- a/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs +++ b/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_desugar.rs b/gcc/testsuite/rust/execute/torture/impl_desugar.rs index 22d39519f305..77309de2e666 100644 --- a/gcc/testsuite/rust/execute/torture/impl_desugar.rs +++ b/gcc/testsuite/rust/execute/torture/impl_desugar.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_rpit1.rs b/gcc/testsuite/rust/execute/torture/impl_rpit1.rs index 8ce5f21ef87e..9de4dff7678d 100644 --- a/gcc/testsuite/rust/execute/torture/impl_rpit1.rs +++ b/gcc/testsuite/rust/execute/torture/impl_rpit1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_rpit2.rs b/gcc/testsuite/rust/execute/torture/impl_rpit2.rs index f7cbbb668649..0f2e7e0d6336 100644 --- a/gcc/testsuite/rust/execute/torture/impl_rpit2.rs +++ b/gcc/testsuite/rust/execute/torture/impl_rpit2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_rpit3.rs b/gcc/testsuite/rust/execute/torture/impl_rpit3.rs index dd68eb29ef96..ec55f6af0cf5 100644 --- a/gcc/testsuite/rust/execute/torture/impl_rpit3.rs +++ b/gcc/testsuite/rust/execute/torture/impl_rpit3.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_trait1.rs b/gcc/testsuite/rust/execute/torture/impl_trait1.rs index 33a5c8cf1dbb..e578ed869362 100644 --- a/gcc/testsuite/rust/execute/torture/impl_trait1.rs +++ b/gcc/testsuite/rust/execute/torture/impl_trait1.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_trait2.rs b/gcc/testsuite/rust/execute/torture/impl_trait2.rs index 29f393d679d2..d13765e428ba 100644 --- a/gcc/testsuite/rust/execute/torture/impl_trait2.rs +++ b/gcc/testsuite/rust/execute/torture/impl_trait2.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_trait3.rs b/gcc/testsuite/rust/execute/torture/impl_trait3.rs index c1cec07bc4cf..588b11d0935f 100644 --- a/gcc/testsuite/rust/execute/torture/impl_trait3.rs +++ b/gcc/testsuite/rust/execute/torture/impl_trait3.rs @@ -1,4 +1,5 @@ /* { dg-output "Hello from Message\r*\n" } */ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/impl_trait4.rs b/gcc/testsuite/rust/execute/torture/impl_trait4.rs index 67d00957e3d6..e054949b5584 100644 --- a/gcc/testsuite/rust/execute/torture/impl_trait4.rs +++ b/gcc/testsuite/rust/execute/torture/impl_trait4.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/index1.rs b/gcc/testsuite/rust/execute/torture/index1.rs index 19e58e32b16e..1071b35f2dea 100644 --- a/gcc/testsuite/rust/execute/torture/index1.rs +++ b/gcc/testsuite/rust/execute/torture/index1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1120.rs b/gcc/testsuite/rust/execute/torture/issue-1120.rs index 7dfa26fc14e9..d7ef483ff93d 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1120.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1120.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1133.rs b/gcc/testsuite/rust/execute/torture/issue-1133.rs index 29f532e5c96a..788b0ea08b8a 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1133.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1133.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1198.rs b/gcc/testsuite/rust/execute/torture/issue-1198.rs index d5c3d895783a..d50faba0fb0f 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1198.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1198.rs @@ -1,4 +1,6 @@ /* { dg-output "foo_deref\r*\nimm_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-1232.rs b/gcc/testsuite/rust/execute/torture/issue-1232.rs index 6fb42b3167dc..d0db0eed5444 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1232.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1232.rs @@ -2,6 +2,7 @@ // { dg-output "slice_access=3\r*\n" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1249.rs b/gcc/testsuite/rust/execute/torture/issue-1249.rs index e7a261c1a0ba..548600a242ce 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1249.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1249.rs @@ -1,6 +1,7 @@ // { dg-options "-w" } // { dg-output "1\r*\n2\r*\n" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1436.rs b/gcc/testsuite/rust/execute/torture/issue-1436.rs index 5d909078b5ec..23620ab78350 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1436.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1436.rs @@ -2,6 +2,7 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1481.rs b/gcc/testsuite/rust/execute/torture/issue-1481.rs index 2ff78d9b6055..e63e2bde5822 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1481.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1481.rs @@ -1,5 +1,6 @@ /* { dg-output "called Foo::print\\(\\)\r*" } */ /* { dg-options "-w" } */ +#![feature(lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1482.rs b/gcc/testsuite/rust/execute/torture/issue-1482.rs index ed8dc8146103..3b1b3987af4b 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1482.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1482.rs @@ -1,3 +1,5 @@ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1496.rs b/gcc/testsuite/rust/execute/torture/issue-1496.rs index 36291a742368..26dd1ef8795b 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1496.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1496.rs @@ -1,4 +1,6 @@ /* { dg-output "foo_deref\r*\nimm_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-1720-2.rs b/gcc/testsuite/rust/execute/torture/issue-1720-2.rs index 9c5356ed736c..d90072fb9583 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1720-2.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1720-2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-1720.rs b/gcc/testsuite/rust/execute/torture/issue-1720.rs index 22182825490c..5da45eed5312 100644 --- a/gcc/testsuite/rust/execute/torture/issue-1720.rs +++ b/gcc/testsuite/rust/execute/torture/issue-1720.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-2005.rs b/gcc/testsuite/rust/execute/torture/issue-2005.rs index 87edb95988dc..29d445497dc4 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2005.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2005.rs @@ -1,6 +1,6 @@ // { dg-additional-options "-w" } /* { dg-output "WORKS\r?\n" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/issue-2052.rs b/gcc/testsuite/rust/execute/torture/issue-2052.rs index bf5d6a7cfbc4..a30ddc4f5d3e 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2052.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2052.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-2179.rs b/gcc/testsuite/rust/execute/torture/issue-2179.rs index 8a5ec1bf32e2..c5da7ee7518b 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2179.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2179.rs @@ -1,4 +1,5 @@ // { dg-output "123\r*\n" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-2180.rs b/gcc/testsuite/rust/execute/torture/issue-2180.rs index 6bd71720e481..ee18c8be8d4e 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2180.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2180.rs @@ -1,4 +1,5 @@ // { dg-output "123\r*\n" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-2236.rs b/gcc/testsuite/rust/execute/torture/issue-2236.rs index 850b99718ef6..b7f28885eb51 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2236.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2236.rs @@ -1,4 +1,5 @@ // { dg-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-2583.rs b/gcc/testsuite/rust/execute/torture/issue-2583.rs index 4ff12fca49e7..c45d61da421d 100644 --- a/gcc/testsuite/rust/execute/torture/issue-2583.rs +++ b/gcc/testsuite/rust/execute/torture/issue-2583.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-3126.rs b/gcc/testsuite/rust/execute/torture/issue-3126.rs index f5051467f027..65bc07da112f 100644 --- a/gcc/testsuite/rust/execute/torture/issue-3126.rs +++ b/gcc/testsuite/rust/execute/torture/issue-3126.rs @@ -1,4 +1,6 @@ /* { dg-output "child\r*\n" }*/ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-3381.rs b/gcc/testsuite/rust/execute/torture/issue-3381.rs index 62dbcd0b2fd2..02d96d766aa5 100644 --- a/gcc/testsuite/rust/execute/torture/issue-3381.rs +++ b/gcc/testsuite/rust/execute/torture/issue-3381.rs @@ -1,4 +1,6 @@ /* { dg-output "Err: 15\r*\n" } */ +#![feature(lang_items)] + #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/issue-3502.rs b/gcc/testsuite/rust/execute/torture/issue-3502.rs index f07a126b66a0..aa3885896c32 100644 --- a/gcc/testsuite/rust/execute/torture/issue-3502.rs +++ b/gcc/testsuite/rust/execute/torture/issue-3502.rs @@ -1,4 +1,6 @@ /* { dg-output "parent 123\r*\nchild\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-3836.rs b/gcc/testsuite/rust/execute/torture/issue-3836.rs index 61ad42492e74..5c9373675812 100644 --- a/gcc/testsuite/rust/execute/torture/issue-3836.rs +++ b/gcc/testsuite/rust/execute/torture/issue-3836.rs @@ -1,7 +1,7 @@ // { dg-options "-w" } // { dg-output "less\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/issue-647.rs b/gcc/testsuite/rust/execute/torture/issue-647.rs index 6a3565571ef1..fbf4a1ec9e42 100644 --- a/gcc/testsuite/rust/execute/torture/issue-647.rs +++ b/gcc/testsuite/rust/execute/torture/issue-647.rs @@ -1,4 +1,6 @@ /* { dg-output "Hello World 123\r*\n" }*/ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-845.rs b/gcc/testsuite/rust/execute/torture/issue-845.rs index b11ccd5374a1..060cf0be7935 100644 --- a/gcc/testsuite/rust/execute/torture/issue-845.rs +++ b/gcc/testsuite/rust/execute/torture/issue-845.rs @@ -1,5 +1,7 @@ // { dg-output "Foo::bar\r*\n" } // { dg-additional-options "-w" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-851.rs b/gcc/testsuite/rust/execute/torture/issue-851.rs index 1361235b9781..093143f9b3c9 100644 --- a/gcc/testsuite/rust/execute/torture/issue-851.rs +++ b/gcc/testsuite/rust/execute/torture/issue-851.rs @@ -1,4 +1,6 @@ /* { dg-output "Result: 123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/issue-858.rs b/gcc/testsuite/rust/execute/torture/issue-858.rs index 0b1118b4f8d3..63518cee1014 100644 --- a/gcc/testsuite/rust/execute/torture/issue-858.rs +++ b/gcc/testsuite/rust/execute/torture/issue-858.rs @@ -1,4 +1,6 @@ /* { dg-output "Result: 123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/iter1.rs b/gcc/testsuite/rust/execute/torture/iter1.rs index 233eb60383b3..84b5033e0133 100644 --- a/gcc/testsuite/rust/execute/torture/iter1.rs +++ b/gcc/testsuite/rust/execute/torture/iter1.rs @@ -1,5 +1,5 @@ // { dg-output "1\r*\n2\r*\n" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] pub use option::Option::{self, None, Some}; pub use result::Result::{self, Err, Ok}; diff --git a/gcc/testsuite/rust/execute/torture/macros23.rs b/gcc/testsuite/rust/execute/torture/macros23.rs index b27985d3befd..ef958af69544 100644 --- a/gcc/testsuite/rust/execute/torture/macros23.rs +++ b/gcc/testsuite/rust/execute/torture/macros23.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/macros28.rs b/gcc/testsuite/rust/execute/torture/macros28.rs index 46d9cfcac0c3..db1d9f21ca82 100644 --- a/gcc/testsuite/rust/execute/torture/macros28.rs +++ b/gcc/testsuite/rust/execute/torture/macros28.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/method2.rs b/gcc/testsuite/rust/execute/torture/method2.rs index e5f630a6d4fe..0355a750c650 100644 --- a/gcc/testsuite/rust/execute/torture/method2.rs +++ b/gcc/testsuite/rust/execute/torture/method2.rs @@ -1,5 +1,7 @@ // { dg-additional-options "-w" } // { dg-output "foo_deref\r*\nimm_deref\r*\n" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/method3.rs b/gcc/testsuite/rust/execute/torture/method3.rs index 9a7865ca979c..70b77923f864 100644 --- a/gcc/testsuite/rust/execute/torture/method3.rs +++ b/gcc/testsuite/rust/execute/torture/method3.rs @@ -1,5 +1,7 @@ // { dg-additional-options "-w" } // { dg-output "mut_deref\r*\nfoobar: 123\r*\n" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/method4.rs b/gcc/testsuite/rust/execute/torture/method4.rs index e20618f06350..f4b3a3352a93 100644 --- a/gcc/testsuite/rust/execute/torture/method4.rs +++ b/gcc/testsuite/rust/execute/torture/method4.rs @@ -1,5 +1,7 @@ // { dg-additional-options "-w" } // { dg-output "mut_deref\r*\nfoobar: 123\r*\n" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/min_specialization2.rs b/gcc/testsuite/rust/execute/torture/min_specialization2.rs index 74faee4eb2d4..b3eac27b2f0d 100644 --- a/gcc/testsuite/rust/execute/torture/min_specialization2.rs +++ b/gcc/testsuite/rust/execute/torture/min_specialization2.rs @@ -1,4 +1,4 @@ -#![feature(min_specialization)] +#![feature(min_specialization, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/min_specialization3.rs b/gcc/testsuite/rust/execute/torture/min_specialization3.rs index 9eccd974dae7..b73a8acea4e8 100644 --- a/gcc/testsuite/rust/execute/torture/min_specialization3.rs +++ b/gcc/testsuite/rust/execute/torture/min_specialization3.rs @@ -1,4 +1,4 @@ -#![feature(min_specialization)] +#![feature(min_specialization, lang_items)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_1.rs b/gcc/testsuite/rust/execute/torture/operator_overload_1.rs index 9aed3933c42a..0fc6372d6c37 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_1.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_1.rs @@ -1,4 +1,6 @@ /* { dg-output "3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_10.rs b/gcc/testsuite/rust/execute/torture/operator_overload_10.rs index 921ec5f6fe9a..6989347edb3b 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_10.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_10.rs @@ -1,4 +1,6 @@ /* { dg-output "foo_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_11.rs b/gcc/testsuite/rust/execute/torture/operator_overload_11.rs index f0359fb4d809..d0b45a7212c7 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_11.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_11.rs @@ -1,5 +1,7 @@ // { dg-output "1\r*\n" } // { dg-additional-options "-w" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_12.rs b/gcc/testsuite/rust/execute/torture/operator_overload_12.rs index 2cd5c69f1e1f..a0e1bc8f18f9 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_12.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_12.rs @@ -1,5 +1,7 @@ // { dg-output "1\r*\n" } // { dg-additional-options "-w" } +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_2.rs b/gcc/testsuite/rust/execute/torture/operator_overload_2.rs index 686241547429..dfc2530068f8 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_2.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_2.rs @@ -1,4 +1,6 @@ /* { dg-output "3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_3.rs b/gcc/testsuite/rust/execute/torture/operator_overload_3.rs index 6c1a8b8f8b8a..68071430a33f 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_3.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_3.rs @@ -1,4 +1,6 @@ /* { dg-output "3\r*\n3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_4.rs b/gcc/testsuite/rust/execute/torture/operator_overload_4.rs index c8235c6a822f..3f68bf1a92fa 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_4.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_4.rs @@ -1,4 +1,6 @@ /* { dg-output "neg\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_5.rs b/gcc/testsuite/rust/execute/torture/operator_overload_5.rs index eeef5bc576bb..b5c1fd609f50 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_5.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_5.rs @@ -1,4 +1,6 @@ /* { dg-output "not\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_6.rs b/gcc/testsuite/rust/execute/torture/operator_overload_6.rs index d5ffae51fab0..0a69758bb325 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_6.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_6.rs @@ -1,4 +1,6 @@ /* { dg-output "add_assign\r*\n3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_7.rs b/gcc/testsuite/rust/execute/torture/operator_overload_7.rs index 7226b26920bc..e1bd7c41b2e0 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_7.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_7.rs @@ -1,4 +1,6 @@ /* { dg-output "imm_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_8.rs b/gcc/testsuite/rust/execute/torture/operator_overload_8.rs index 4b589a8af458..8324768354c8 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_8.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_8.rs @@ -1,4 +1,6 @@ /* { dg-output "imm_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/operator_overload_9.rs b/gcc/testsuite/rust/execute/torture/operator_overload_9.rs index 5fc042850ed3..4d10f78ed652 100644 --- a/gcc/testsuite/rust/execute/torture/operator_overload_9.rs +++ b/gcc/testsuite/rust/execute/torture/operator_overload_9.rs @@ -1,4 +1,6 @@ /* { dg-output "mut_deref\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/partial-eq-1.rs b/gcc/testsuite/rust/execute/torture/partial-eq-1.rs index db123a1b5e7d..fa918f3e89c1 100644 --- a/gcc/testsuite/rust/execute/torture/partial-eq-1.rs +++ b/gcc/testsuite/rust/execute/torture/partial-eq-1.rs @@ -1,5 +1,6 @@ /* { dg-output "a == b\r*\na != c\r*\n" }*/ /* { dg-options "-w" } */ +#![feature(lang_items)] mod core { mod marker { diff --git a/gcc/testsuite/rust/execute/torture/partial-eq-2.rs b/gcc/testsuite/rust/execute/torture/partial-eq-2.rs index debed8c83f32..e132ef07de16 100644 --- a/gcc/testsuite/rust/execute/torture/partial-eq-2.rs +++ b/gcc/testsuite/rust/execute/torture/partial-eq-2.rs @@ -1,6 +1,7 @@ /* { dg-output "a == b\r*\na != c\r*\n" }*/ /* { dg-options "-w" } */ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/partial-eq-3.rs b/gcc/testsuite/rust/execute/torture/partial-eq-3.rs index 849910afc832..4ace3d92320e 100644 --- a/gcc/testsuite/rust/execute/torture/partial-eq-3.rs +++ b/gcc/testsuite/rust/execute/torture/partial-eq-3.rs @@ -1,7 +1,7 @@ /* { dg-output "a == b\r*\na != c\r*\n" }*/ /* { dg-options "-w" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-eq-4.rs b/gcc/testsuite/rust/execute/torture/partial-eq-4.rs index b6997d8592fa..d1835db1626d 100644 --- a/gcc/testsuite/rust/execute/torture/partial-eq-4.rs +++ b/gcc/testsuite/rust/execute/torture/partial-eq-4.rs @@ -1,7 +1,7 @@ /* { dg-output "a == b\r*\na != c\r*\n" }*/ /* { dg-options "-w" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-1.rs b/gcc/testsuite/rust/execute/torture/partial-ord-1.rs index a3558e7cb7a9..b1546a3e9283 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-1.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-1.rs @@ -1,4 +1,5 @@ /* { dg-output "x == y\r*\nx > z\r*\n" }*/ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-2.rs b/gcc/testsuite/rust/execute/torture/partial-ord-2.rs index d3b713fc5e26..76cdc2a17921 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-2.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-2.rs @@ -1,6 +1,6 @@ /* { dg-output "x == y\r*\nx > z\r*\n" }*/ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-3.rs b/gcc/testsuite/rust/execute/torture/partial-ord-3.rs index 7aec07c5caaa..dd8072fe910d 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-3.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-3.rs @@ -1,7 +1,7 @@ /* { dg-output "x == y\r*\nx > z\r*\nx < z\r*\nx >= y\r*\nx <= y\r*\n" } */ /* { dg-options "-w" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-4.rs b/gcc/testsuite/rust/execute/torture/partial-ord-4.rs index fd52f328c58b..de130745e681 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-4.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-4.rs @@ -1,7 +1,7 @@ /* { dg-output "a == b\r*\na != c\r*\n" }*/ /* { dg-options "-w" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-5.rs b/gcc/testsuite/rust/execute/torture/partial-ord-5.rs index 721d2aa00655..b87a08ebcca5 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-5.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-5.rs @@ -1,7 +1,7 @@ /* { dg-output "a == b\r*\na != c\r*\na >= c\r*\na <= b\r*\na > c\r*\nc < b\r*\n" } */ /* { dg-options "-w" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/partial-ord-6.rs b/gcc/testsuite/rust/execute/torture/partial-ord-6.rs index 5d64f8c2f84c..04f13cdac37b 100644 --- a/gcc/testsuite/rust/execute/torture/partial-ord-6.rs +++ b/gcc/testsuite/rust/execute/torture/partial-ord-6.rs @@ -1,7 +1,7 @@ // { dg-additional-options "-w" } /* { dg-output "Foo A < B\r?\nFoo B < C\r?\nFoo C == C\r?\nBar x < y\r?\nBarFull s1 < s2\r?\n" } */ -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] mod core { mod option { diff --git a/gcc/testsuite/rust/execute/torture/prefetch_data.rs b/gcc/testsuite/rust/execute/torture/prefetch_data.rs index 2a847fbcb397..a155e670d3b3 100644 --- a/gcc/testsuite/rust/execute/torture/prefetch_data.rs +++ b/gcc/testsuite/rust/execute/torture/prefetch_data.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/ref-pattern2.rs b/gcc/testsuite/rust/execute/torture/ref-pattern2.rs index 8e7172406c47..cde7ea533317 100644 --- a/gcc/testsuite/rust/execute/torture/ref-pattern2.rs +++ b/gcc/testsuite/rust/execute/torture/ref-pattern2.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/sip-hasher.rs b/gcc/testsuite/rust/execute/torture/sip-hasher.rs index 60826a3ed012..32cdc22fe912 100644 --- a/gcc/testsuite/rust/execute/torture/sip-hasher.rs +++ b/gcc/testsuite/rust/execute/torture/sip-hasher.rs @@ -1,8 +1,7 @@ // { dg-skip-if "" { *-*-* } { "-m32" } { "" } } // { dg-options "-w" } // { dg-output "Hash: 0x63d53fd2170bbb8c\r*\n" } -#![feature(intrinsics)] -#![feature(rustc_attrs)] +#![feature(intrinsics, lang_items, rustc_attrs)] #[lang = "sized"] trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/slice-magic.rs b/gcc/testsuite/rust/execute/torture/slice-magic.rs index 1f56187ee5d6..521a2513f620 100644 --- a/gcc/testsuite/rust/execute/torture/slice-magic.rs +++ b/gcc/testsuite/rust/execute/torture/slice-magic.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/slice-magic2.rs b/gcc/testsuite/rust/execute/torture/slice-magic2.rs index 20f113ef97d8..75c04f382be6 100644 --- a/gcc/testsuite/rust/execute/torture/slice-magic2.rs +++ b/gcc/testsuite/rust/execute/torture/slice-magic2.rs @@ -1,6 +1,7 @@ // { dg-additional-options "-w" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/slice1.rs b/gcc/testsuite/rust/execute/torture/slice1.rs index 2683179c7586..317ff7a81879 100644 --- a/gcc/testsuite/rust/execute/torture/slice1.rs +++ b/gcc/testsuite/rust/execute/torture/slice1.rs @@ -1,4 +1,5 @@ // { dg-additional-options "-w" } +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/str-layout1.rs b/gcc/testsuite/rust/execute/torture/str-layout1.rs index fb3b4e34a7c2..a28d2650862e 100644 --- a/gcc/testsuite/rust/execute/torture/str-layout1.rs +++ b/gcc/testsuite/rust/execute/torture/str-layout1.rs @@ -2,6 +2,7 @@ // { dg-output "t1sz=5 t2sz=10\r*" } #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/trait1.rs b/gcc/testsuite/rust/execute/torture/trait1.rs index f8a5959edd52..db5b6e2473e4 100644 --- a/gcc/testsuite/rust/execute/torture/trait1.rs +++ b/gcc/testsuite/rust/execute/torture/trait1.rs @@ -1,4 +1,6 @@ /* { dg-output "S::f\r*\nT1::f\r*\nT2::f\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait10.rs b/gcc/testsuite/rust/execute/torture/trait10.rs index 4e576eb82496..4eb9546af778 100644 --- a/gcc/testsuite/rust/execute/torture/trait10.rs +++ b/gcc/testsuite/rust/execute/torture/trait10.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait11.rs b/gcc/testsuite/rust/execute/torture/trait11.rs index cca084ae8d09..84add740ed1f 100644 --- a/gcc/testsuite/rust/execute/torture/trait11.rs +++ b/gcc/testsuite/rust/execute/torture/trait11.rs @@ -1,4 +1,5 @@ /* { dg-output "3\r*\n" } */ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/trait12.rs b/gcc/testsuite/rust/execute/torture/trait12.rs index d174a891409b..dd7a6442c6cc 100644 --- a/gcc/testsuite/rust/execute/torture/trait12.rs +++ b/gcc/testsuite/rust/execute/torture/trait12.rs @@ -1,4 +1,6 @@ /* { dg-output "3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait13.rs b/gcc/testsuite/rust/execute/torture/trait13.rs index 0d8f89487058..25912bd86727 100644 --- a/gcc/testsuite/rust/execute/torture/trait13.rs +++ b/gcc/testsuite/rust/execute/torture/trait13.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n456\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait14.rs b/gcc/testsuite/rust/execute/torture/trait14.rs index 759950e6fe2b..ebc0c5c80354 100644 --- a/gcc/testsuite/rust/execute/torture/trait14.rs +++ b/gcc/testsuite/rust/execute/torture/trait14.rs @@ -1,4 +1,5 @@ /* { dg-output "parent123\r*\nchild\r*\n" } */ +#![feature(lang_items)] extern "C" { fn printf(s: *const i8, ...); diff --git a/gcc/testsuite/rust/execute/torture/trait15.rs b/gcc/testsuite/rust/execute/torture/trait15.rs index 53469d78f53a..59f8dc3bcce9 100644 --- a/gcc/testsuite/rust/execute/torture/trait15.rs +++ b/gcc/testsuite/rust/execute/torture/trait15.rs @@ -1,6 +1,8 @@ /* { dg-output "parent123\r*\nchild\r*\n" } */ // Testing generics passing with supertraits +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait2.rs b/gcc/testsuite/rust/execute/torture/trait2.rs index d5fd5466fe92..db69c1e83fce 100644 --- a/gcc/testsuite/rust/execute/torture/trait2.rs +++ b/gcc/testsuite/rust/execute/torture/trait2.rs @@ -1,4 +1,6 @@ /* { dg-output "Bar::A = 456\r*\n::A = 456\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait3.rs b/gcc/testsuite/rust/execute/torture/trait3.rs index 668b43760b4b..d39d3241a64b 100644 --- a/gcc/testsuite/rust/execute/torture/trait3.rs +++ b/gcc/testsuite/rust/execute/torture/trait3.rs @@ -1,4 +1,6 @@ /* { dg-output "123, 777\r*" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait4.rs b/gcc/testsuite/rust/execute/torture/trait4.rs index 61c2d1584332..fb1eaaed92a6 100644 --- a/gcc/testsuite/rust/execute/torture/trait4.rs +++ b/gcc/testsuite/rust/execute/torture/trait4.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n" }*/ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait5.rs b/gcc/testsuite/rust/execute/torture/trait5.rs index 7cd7d1a19efc..67b5dd4eae22 100644 --- a/gcc/testsuite/rust/execute/torture/trait5.rs +++ b/gcc/testsuite/rust/execute/torture/trait5.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait6.rs b/gcc/testsuite/rust/execute/torture/trait6.rs index de5ddc1ea9e8..baa075be7d43 100644 --- a/gcc/testsuite/rust/execute/torture/trait6.rs +++ b/gcc/testsuite/rust/execute/torture/trait6.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait7.rs b/gcc/testsuite/rust/execute/torture/trait7.rs index 21f1575218bd..47d40aeae3da 100644 --- a/gcc/testsuite/rust/execute/torture/trait7.rs +++ b/gcc/testsuite/rust/execute/torture/trait7.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait8.rs b/gcc/testsuite/rust/execute/torture/trait8.rs index 69e784ef3b44..cbce3c1b361c 100644 --- a/gcc/testsuite/rust/execute/torture/trait8.rs +++ b/gcc/testsuite/rust/execute/torture/trait8.rs @@ -1,4 +1,6 @@ /* { dg-output "123\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/trait9.rs b/gcc/testsuite/rust/execute/torture/trait9.rs index f60554adae69..3448eb88a779 100644 --- a/gcc/testsuite/rust/execute/torture/trait9.rs +++ b/gcc/testsuite/rust/execute/torture/trait9.rs @@ -1,4 +1,6 @@ /* { dg-output "3\r*\n" } */ +#![feature(lang_items)] + extern "C" { fn printf(s: *const i8, ...); } diff --git a/gcc/testsuite/rust/execute/torture/transmute1.rs b/gcc/testsuite/rust/execute/torture/transmute1.rs index d89affd5b820..8da1ae732a01 100644 --- a/gcc/testsuite/rust/execute/torture/transmute1.rs +++ b/gcc/testsuite/rust/execute/torture/transmute1.rs @@ -1,5 +1,5 @@ // { dg-additional-options "-w" } -#![feature(intrinsics)] +#![feature(intrinsics, lang_items)] extern "rust-intrinsic" { fn transmute(value: T) -> U; diff --git a/gcc/testsuite/rust/execute/torture/wrapping_op1.rs b/gcc/testsuite/rust/execute/torture/wrapping_op1.rs index e0c100cd20cc..ba9b1686779e 100644 --- a/gcc/testsuite/rust/execute/torture/wrapping_op1.rs +++ b/gcc/testsuite/rust/execute/torture/wrapping_op1.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/execute/torture/wrapping_op2.rs b/gcc/testsuite/rust/execute/torture/wrapping_op2.rs index 692899281008..5e6a37db9b70 100644 --- a/gcc/testsuite/rust/execute/torture/wrapping_op2.rs +++ b/gcc/testsuite/rust/execute/torture/wrapping_op2.rs @@ -1,5 +1,6 @@ #![feature(intrinsics)] +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/link/generic_function_1.rs b/gcc/testsuite/rust/link/generic_function_1.rs index 46d0e825b9da..dab62f0d00d1 100644 --- a/gcc/testsuite/rust/link/generic_function_1.rs +++ b/gcc/testsuite/rust/link/generic_function_1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} diff --git a/gcc/testsuite/rust/link/trait_import_1.rs b/gcc/testsuite/rust/link/trait_import_1.rs index e54b0e19d44c..589871d016eb 100644 --- a/gcc/testsuite/rust/link/trait_import_1.rs +++ b/gcc/testsuite/rust/link/trait_import_1.rs @@ -1,3 +1,4 @@ +#![feature(lang_items)] #[lang = "sized"] pub trait Sized {} From 32ccd056c0204542b4ec6cdb64126ff517aa51af Mon Sep 17 00:00:00 2001 From: Owen Avery Date: Sat, 29 Nov 2025 18:20:01 -0500 Subject: [PATCH 09/11] gccrs: Improve feature handling This fixes a false positive with undefined features, improves the implementation of Feature::as_name, and configures the testsuite to check further stages of libcore compilation. gcc/rust/ChangeLog: * ast/rust-macro.h (MetaNameValueStr::get_name): New function. (MetaNameValueStr::get_value): Likewise. * checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Tweak unknown feature detection. (FeatureGate::gate): Handle field rename. (FeatureGate::note_stability_attribute): New function definition. * checks/errors/feature/rust-feature-gate.h (FeatureGate::note_stability_attribute): New function declaration. (FeatureGate::Stability): New enum class. (FeatureGate::valid_features): Rename field to... (FeatureGate::valid_lang_features): ...here. (FeatureGate::valid_lib_features): New field. (FeatureGate::defined_lib_features): Likewise. * checks/errors/feature/rust-feature.cc (Feature::as_name): Improve implementation. gcc/testsuite/ChangeLog: * rust/core/core.exp: Change -frust-compile-until=astvalidation to -frust-compile-until=nameresolution. Signed-off-by: Owen Avery --- gcc/rust/ast/rust-macro.h | 4 + .../errors/feature/rust-feature-gate.cc | 91 +++++++++++++++++-- .../checks/errors/feature/rust-feature-gate.h | 13 ++- .../checks/errors/feature/rust-feature.cc | 9 +- gcc/testsuite/rust/core/core.exp | 2 +- 5 files changed, 103 insertions(+), 16 deletions(-) diff --git a/gcc/rust/ast/rust-macro.h b/gcc/rust/ast/rust-macro.h index 416507501ac8..71de8f022d22 100644 --- a/gcc/rust/ast/rust-macro.h +++ b/gcc/rust/ast/rust-macro.h @@ -993,6 +993,10 @@ class MetaNameValueStr : public MetaItem return ident.as_string () + " = \"" + str + "\""; } + const Identifier &get_name () const { return ident; } + + const std::string &get_value () const { return str; } + void accept_vis (ASTVisitor &vis) override; // HACK: used to simplify parsing - creates a copy of this diff --git a/gcc/rust/checks/errors/feature/rust-feature-gate.cc b/gcc/rust/checks/errors/feature/rust-feature-gate.cc index 448fa18f21d4..9df822b7e1c7 100644 --- a/gcc/rust/checks/errors/feature/rust-feature-gate.cc +++ b/gcc/rust/checks/errors/feature/rust-feature-gate.cc @@ -34,7 +34,10 @@ FeatureGate::check (AST::Crate &crate) void FeatureGate::visit (AST::Crate &crate) { - valid_features.clear (); + valid_lang_features.clear (); + valid_lib_features.clear (); + + // avoid clearing defined features (?) for (const auto &attr : crate.inner_attrs) { @@ -58,29 +61,45 @@ FeatureGate::visit (AST::Crate &crate) for (const auto &item : meta_item->get_items ()) { const auto &name_str = item->as_string (); - auto tname = Feature::as_name (name_str); - if (tname.has_value ()) - { - auto name = tname.value (); - valid_features.insert (name); - } + // TODO: detect duplicates + if (auto tname = Feature::as_name (name_str)) + valid_lang_features.insert (tname.value ()); else - rust_error_at (item->get_locus (), ErrorCode::E0635, - "unknown feature %qs", name_str.c_str ()); + valid_lib_features.emplace (name_str, item->get_locus ()); } } } } AST::DefaultASTVisitor::visit (crate); + + for (auto &ent : valid_lib_features) + { + const std::string &feature = ent.first; + location_t locus = ent.second; + + // rustc treats these as valid, + // but apparently has special handling for them + if (feature == "libc" || feature == "test") + continue; + + if (defined_lib_features.find (feature) != defined_lib_features.end ()) + { + // TODO: emit warning if stable + continue; + } + + rust_error_at (locus, ErrorCode::E0635, "unknown feature %qs", + feature.c_str ()); + } } void FeatureGate::gate (Feature::Name name, location_t loc, const std::string &error_msg) { - if (!valid_features.count (name)) + if (!valid_lang_features.count (name)) { auto &feature = Feature::lookup (name); if (auto issue = feature.issue ()) @@ -164,10 +183,60 @@ FeatureGate::check_lang_item_attribute ( } } +void +FeatureGate::note_stability_attribute ( + const std::vector &attributes) +{ + for (const AST::Attribute &attr : attributes) + { + std::string attr_name = attr.get_path ().as_string (); + + Stability stability; + + if (attr_name == Values::Attributes::STABLE) + stability = Stability::STABLE; + else if (attr_name == Values::Attributes::UNSTABLE) + stability = Stability::UNSTABLE; + else if (attr_name == Values::Attributes::RUSTC_CONST_STABLE) + stability = Stability::STABLE; + else if (attr_name == Values::Attributes::RUSTC_CONST_UNSTABLE) + stability = Stability::UNSTABLE; + else + continue; + + if (attr.empty_input ()) + // TODO: error? + continue; + + auto &attr_input = attr.get_attr_input (); + if (attr_input.get_attr_input_type () + != AST::AttrInput::AttrInputType::TOKEN_TREE) + // TODO: error? + continue; + + std::unique_ptr meta_item ( + static_cast (attr_input) + .parse_to_meta_item ()); + + for (auto &item : meta_item->get_items ()) + { + // TODO: more thorough error checking? + // ~only the standard libraries should ever exercise this + if (item->is_key_value_pair ()) + { + auto &pair = static_cast (*item); + if (pair.get_name ().as_string () == "feature") + defined_lib_features.emplace (pair.get_value (), stability); + } + } + } +} + void FeatureGate::visit (AST::MacroRulesDefinition &rules_def) { check_rustc_attri (rules_def.get_outer_attrs ()); + note_stability_attribute (rules_def.get_outer_attrs ()); } void @@ -178,6 +247,8 @@ FeatureGate::visit (AST::Function &function) check_lang_item_attribute (function.get_outer_attrs ()); + note_stability_attribute (function.get_outer_attrs ()); + AST::DefaultASTVisitor::visit (function); } diff --git a/gcc/rust/checks/errors/feature/rust-feature-gate.h b/gcc/rust/checks/errors/feature/rust-feature-gate.h index c8ab66b753db..8ff491c108ea 100644 --- a/gcc/rust/checks/errors/feature/rust-feature-gate.h +++ b/gcc/rust/checks/errors/feature/rust-feature-gate.h @@ -59,7 +59,18 @@ class FeatureGate : public AST::DefaultASTVisitor check_may_dangle_attribute (const std::vector &attributes); void check_lang_item_attribute (const std::vector &attributes); - std::set valid_features; + void note_stability_attribute (const std::vector &attributes); + + std::set valid_lang_features; + std::map valid_lib_features; + + enum class Stability + { + STABLE, + UNSTABLE, + }; + + std::map defined_lib_features; }; } // namespace Rust #endif diff --git a/gcc/rust/checks/errors/feature/rust-feature.cc b/gcc/rust/checks/errors/feature/rust-feature.cc index 7fc5cb047975..1a967aa70a99 100644 --- a/gcc/rust/checks/errors/feature/rust-feature.cc +++ b/gcc/rust/checks/errors/feature/rust-feature.cc @@ -77,10 +77,11 @@ const std::map Feature::name_hash_map = { tl::optional Feature::as_name (const std::string &name) { - if (Feature::name_hash_map.count (name)) - return Feature::name_hash_map.at (name); - - return tl::nullopt; + auto it = Feature::name_hash_map.find (name); + if (it == Feature::name_hash_map.end ()) + return tl::nullopt; + else + return it->second; } tl::optional> diff --git a/gcc/testsuite/rust/core/core.exp b/gcc/testsuite/rust/core/core.exp index 330c6d5ba5bd..45bdbb599591 100644 --- a/gcc/testsuite/rust/core/core.exp +++ b/gcc/testsuite/rust/core/core.exp @@ -30,7 +30,7 @@ set saved-dg-do-what-default ${dg-do-what-default} set dg-do-what-default "compile" set individual_timeout 600 dg-additional-files [lsort [glob -nocomplain $srcdir/../../libgrust/rustc-lib/*]] -dg-runtest $srcdir/../../libgrust/rustc-lib/core/src/lib.rs "-frust-edition=2018 -frust-crate=core -frust-compile-until=astvalidation -w" "" +dg-runtest $srcdir/../../libgrust/rustc-lib/core/src/lib.rs "-frust-edition=2018 -frust-crate=core -frust-compile-until=nameresolution -w" "" set dg-do-what-default ${saved-dg-do-what-default} # All done. From 37f6d586df4d82b00346a7aeac6dcb3011812707 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Sat, 29 Nov 2025 01:56:52 +0100 Subject: [PATCH 10/11] gccrs: Add missing test for lang item feature gate We recently modified all tests with lang items to add the lang feature gate switch but we did not introduce any test to check that a proper error message is printed when this switch is not used. gcc/testsuite/ChangeLog: * rust/compile/lang_feature_gate.rs: New test. Signed-off-by: Pierre-Emmanuel Patry --- gcc/testsuite/rust/compile/lang_feature_gate.rs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 gcc/testsuite/rust/compile/lang_feature_gate.rs diff --git a/gcc/testsuite/rust/compile/lang_feature_gate.rs b/gcc/testsuite/rust/compile/lang_feature_gate.rs new file mode 100644 index 000000000000..4cd485ec6ea9 --- /dev/null +++ b/gcc/testsuite/rust/compile/lang_feature_gate.rs @@ -0,0 +1,2 @@ +#[lang = "sized"] // { dg-error "lang items are subject to change. add .#!.feature.lang_items... to the crate attributes to enable" } +pub trait Sized {} From bdbf56d4a2554d4a638aaed3c74ee0f395eddc79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Poulhi=C3=A8s?= Date: Tue, 2 Dec 2025 19:02:21 +0100 Subject: [PATCH 11/11] gccrs: reindent rust-lex.cc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reindent according to latest clang-format settings. No functional change. gcc/rust/ChangeLog: * lex/rust-lex.cc (rust_input_source_test): Reindent. Signed-off-by: Marc Poulhiès --- gcc/rust/lex/rust-lex.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/rust/lex/rust-lex.cc b/gcc/rust/lex/rust-lex.cc index 4d94a202a1f4..a99b5ed1a348 100644 --- a/gcc/rust/lex/rust-lex.cc +++ b/gcc/rust/lex/rust-lex.cc @@ -2640,8 +2640,8 @@ rust_input_source_test () { // ASCII std::string src = (const char *) u8"_abcde\tXYZ\v\f"; - std::vector expected - = {u'_', u'a', u'b', u'c', u'd', u'e', u'\t', u'X', u'Y', u'Z', u'\v', u'\f'}; + std::vector expected = {u'_', u'a', u'b', u'c', u'd', u'e', + u'\t', u'X', u'Y', u'Z', u'\v', u'\f'}; test_buffer_input_source (src, expected); // BOM