aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/rust')
-rw-r--r--gcc/testsuite/rust/borrowck/reference.rs1
-rw-r--r--gcc/testsuite/rust/borrowck/tmp.rs1
-rw-r--r--gcc/testsuite/rust/compile/additional-trait-bounds1.rs2
-rw-r--r--gcc/testsuite/rust/compile/additional-trait-bounds2.rs2
-rw-r--r--gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs2
-rw-r--r--gcc/testsuite/rust/compile/auto_traits1.rs2
-rw-r--r--gcc/testsuite/rust/compile/auto_traits2.rs2
-rw-r--r--gcc/testsuite/rust/compile/bad-rpit1.rs1
-rw-r--r--gcc/testsuite/rust/compile/black_box.rs2
-rw-r--r--gcc/testsuite/rust/compile/bounds1.rs1
-rw-r--r--gcc/testsuite/rust/compile/box_syntax_feature_gate.rs1
-rw-r--r--gcc/testsuite/rust/compile/braced_macro_arm.rs3
-rw-r--r--gcc/testsuite/rust/compile/bug-with-default-generic.rs1
-rw-r--r--gcc/testsuite/rust/compile/canonical_paths1.rs1
-rw-r--r--gcc/testsuite/rust/compile/cast_generics.rs1
-rw-r--r--gcc/testsuite/rust/compile/closure_no_type_anno.rs1
-rw-r--r--gcc/testsuite/rust/compile/cmp1.rs1
-rw-r--r--gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs1
-rw-r--r--gcc/testsuite/rust/compile/const-issue1440.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_1.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_10.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_11.rs2
-rw-r--r--gcc/testsuite/rust/compile/const_generics_12.rs2
-rw-r--r--gcc/testsuite/rust/compile/const_generics_13.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_14.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_15.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_16.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_17.rs3
-rw-r--r--gcc/testsuite/rust/compile/const_generics_18.rs11
-rw-r--r--gcc/testsuite/rust/compile/const_generics_19.rs11
-rw-r--r--gcc/testsuite/rust/compile/const_generics_3.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_8.rs1
-rw-r--r--gcc/testsuite/rust/compile/const_generics_9.rs2
-rw-r--r--gcc/testsuite/rust/compile/decl_macro6.rs1
-rw-r--r--gcc/testsuite/rust/compile/decl_macro7.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive-debug1.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive-default1.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive-eq-invalid.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive-hash1.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive-partialeq1.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive_clone_enum1.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive_clone_enum2.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive_clone_enum3.rs2
-rw-r--r--gcc/testsuite/rust/compile/derive_macro1.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive_macro3.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive_macro4.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive_macro6.rs1
-rw-r--r--gcc/testsuite/rust/compile/derive_partial_ord1.rs2
-rw-r--r--gcc/testsuite/rust/compile/e0579-neg-float-fail.rs9
-rw-r--r--gcc/testsuite/rust/compile/e0579-neg-float.rs9
-rw-r--r--gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs1
-rw-r--r--gcc/testsuite/rust/compile/expected_type_args2.rs1
-rw-r--r--gcc/testsuite/rust/compile/expected_type_args3.rs1
-rw-r--r--gcc/testsuite/rust/compile/extern_generics.rs3
-rw-r--r--gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs1
-rw-r--r--gcc/testsuite/rust/compile/for-loop1.rs2
-rw-r--r--gcc/testsuite/rust/compile/for-loop2.rs2
-rw-r--r--gcc/testsuite/rust/compile/format_args_basic_expansion.rs2
-rw-r--r--gcc/testsuite/rust/compile/format_args_concat.rs2
-rw-r--r--gcc/testsuite/rust/compile/format_args_extra_comma.rs2
-rw-r--r--gcc/testsuite/rust/compile/gat1.rs4
-rw-r--r--gcc/testsuite/rust/compile/generics1.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics11.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics12.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics14.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics2.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics3.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics4.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics6.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics7.rs1
-rw-r--r--gcc/testsuite/rust/compile/generics8.rs1
-rw-r--r--gcc/testsuite/rust/compile/if_let_expr.rs1
-rw-r--r--gcc/testsuite/rust/compile/impl_fnptr.rs1
-rw-r--r--gcc/testsuite/rust/compile/impl_trait_diag.rs1
-rw-r--r--gcc/testsuite/rust/compile/impl_trait_generic_arg.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-1005.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1019.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1031.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1034.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1128.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1129-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1130.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1131.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1165.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1173.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1235.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1237.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1289.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1383.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1447.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1483.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1485.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1487.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-1589.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1725-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1725-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1786.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1893.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1901.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1930.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-1981.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2015.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2019-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2019-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2019-3.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2036.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2037.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2070.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2105.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2106.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2135.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2136-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2136-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2139.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2142.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2165.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2166.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2187.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2190-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2190-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2195.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2238.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2304.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2323.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2330.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2369.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2375.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2478.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2499.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2723-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2723-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2725.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2747.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2772-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2772-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2775.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2782.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2907.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2951.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-2953-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2953-2.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2954.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-2987.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3009.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3022.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3030.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3032-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3032-2.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3033.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3035.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3036.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3045-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3045-2.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3144.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3242.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3304.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3382.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3402-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3402-2.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3403.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3454.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3551.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3554-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3599.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3617.rs14
-rw-r--r--gcc/testsuite/rust/compile/issue-3642.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3659.rs10
-rw-r--r--gcc/testsuite/rust/compile/issue-3711.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3836.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3898.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-3915.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3916.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3969.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-3971.rs11
-rw-r--r--gcc/testsuite/rust/compile/issue-402.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-407-2.rs7
-rw-r--r--gcc/testsuite/rust/compile/issue-407.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-4090-1.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-4090-2.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-4140-1.rs18
-rw-r--r--gcc/testsuite/rust/compile/issue-4140-2.rs12
-rw-r--r--gcc/testsuite/rust/compile/issue-4162.rs6
-rw-r--r--gcc/testsuite/rust/compile/issue-4188.rs13
-rw-r--r--gcc/testsuite/rust/compile/issue-4212.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-4219.rs5
-rw-r--r--gcc/testsuite/rust/compile/issue-4222.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-4226.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-4242.rs10
-rw-r--r--gcc/testsuite/rust/compile/issue-4261.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-4262.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-4267.rs3
-rw-r--r--gcc/testsuite/rust/compile/issue-850.rs1
-rw-r--r--gcc/testsuite/rust/compile/issue-855.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-867.rs4
-rw-r--r--gcc/testsuite/rust/compile/issue-925.rs1
-rw-r--r--gcc/testsuite/rust/compile/iterators1.rs2
-rw-r--r--gcc/testsuite/rust/compile/lang_feature_gate.rs2
-rw-r--r--gcc/testsuite/rust/compile/macros/builtin/option_env1.rs2
-rw-r--r--gcc/testsuite/rust/compile/macros/builtin/option_env2.rs2
-rw-r--r--gcc/testsuite/rust/compile/macros/builtin/option_env3.rs2
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs10
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro20.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro23.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro27.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro28.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro29.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro30.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro31.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro33.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro35.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro37.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro38.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro39.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro40.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro48.rs5
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro49.rs1
-rw-r--r--gcc/testsuite/rust/compile/macros/mbe/macro54.rs1
-rw-r--r--gcc/testsuite/rust/compile/multiple_bindings1.rs1
-rw-r--r--gcc/testsuite/rust/compile/name_resolution2.rs1
-rw-r--r--gcc/testsuite/rust/compile/name_resolution4.rs1
-rw-r--r--gcc/testsuite/rust/compile/nested_generic.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_closure_bind.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_complex_generic_application.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_complex_generic_application2.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_invalid_specialization.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs1
-rw-r--r--gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs2
-rw-r--r--gcc/testsuite/rust/compile/path_as_generic_arg.rs1
-rw-r--r--gcc/testsuite/rust/compile/privacy4.rs1
-rw-r--r--gcc/testsuite/rust/compile/privacy6.rs1
-rw-r--r--gcc/testsuite/rust/compile/raw-byte-string-loc.rs1
-rw-r--r--gcc/testsuite/rust/compile/raw-string-loc.rs1
-rw-r--r--gcc/testsuite/rust/compile/raw_ref_op_invalid.rs2
-rw-r--r--gcc/testsuite/rust/compile/self_const_ptr.rs1
-rw-r--r--gcc/testsuite/rust/compile/self_mut_ptr.rs1
-rw-r--r--gcc/testsuite/rust/compile/self_ptr.rs1
-rw-r--r--gcc/testsuite/rust/compile/silly-order-bug.rs2
-rw-r--r--gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs1
-rw-r--r--gcc/testsuite/rust/compile/static_var1.rs2
-rw-r--r--gcc/testsuite/rust/compile/stmt_with_block_dot.rs1
-rw-r--r--gcc/testsuite/rust/compile/structural-eq-peq.rs2
-rw-r--r--gcc/testsuite/rust/compile/torture/associated_types1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/forward_decl_5.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics10.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics11.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics12.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics13.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics14.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics15.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics16.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics17.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics18.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics19.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics20.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics21.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics22.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics23.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics24.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics25.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics26.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics27.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics28.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics29.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics3.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics30.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics31.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics32.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics4.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics5.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics6.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics7.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics8.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/generics9.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-4.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-5.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-6.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-7.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/intrinsics-8.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-1024.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-1075.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-1432.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-1555.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-368.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-808.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-862.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-893-2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/issue-893.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/must_use2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/nested_fn2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/phantom_data.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/range-lang-item1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits10.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits11.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits12.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits13.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits14.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits15.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits16.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits17.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits18.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits19.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits2.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits3.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits4.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits5.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits6.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits7.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits8.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/traits9.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/transmute1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs1
-rw-r--r--gcc/testsuite/rust/compile/torture/utf8_identifiers.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits1.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits10.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits11.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits12.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits2.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits3.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits4.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits5.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits6.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits7.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits8.rs1
-rw-r--r--gcc/testsuite/rust/compile/traits9.rs1
-rw-r--r--gcc/testsuite/rust/compile/try-expr1.rs1
-rw-r--r--gcc/testsuite/rust/compile/try-trait.rs2
-rw-r--r--gcc/testsuite/rust/compile/try_block1.rs1
-rw-r--r--gcc/testsuite/rust/compile/type-bindings1.rs1
-rw-r--r--gcc/testsuite/rust/compile/unconstrained_type_param.rs1
-rw-r--r--gcc/testsuite/rust/compile/unify-errors1.rs1
-rw-r--r--gcc/testsuite/rust/compile/unsafe10.rs1
-rw-r--r--gcc/testsuite/rust/compile/v0-mangle1.rs1
-rw-r--r--gcc/testsuite/rust/compile/v0-mangle2.rs1
-rw-r--r--gcc/testsuite/rust/compile/while_let1.rs2
-rw-r--r--gcc/testsuite/rust/core/core.exp2
-rw-r--r--gcc/testsuite/rust/execute/black_box.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/atomic_load.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/atomic_store.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/closure1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/closure2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/closure3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/closure4.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/coercion1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/coercion2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/coercion3.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-2.rs22
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-3.rs14
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-4.rs44
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-5.rs15
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-6.rs17
-rw-r--r--gcc/testsuite/rust/execute/torture/const-generics-7.rs23
-rw-r--r--gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/derive-default1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/derive-partialeq1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/derive-partialeq2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/derive_macro1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/derive_macro3.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/derive_macro4.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/for-loop1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/for-loop2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/gat1.rs20
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_desugar-2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_desugar.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_rpit1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_rpit2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_rpit3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_trait1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_trait2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_trait3.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/impl_trait4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/index1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1120.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1133.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1198.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1232.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1249.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1436.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1481.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1482.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1496.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1720-2.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-1720.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2005.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2052.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2179.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2180.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2236.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-2583.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-3126.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-3381.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-3502.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-3836.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-4242.rs11
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-647.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-845.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-851.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/issue-858.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/iter1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/literalpattern_neg.rs9
-rw-r--r--gcc/testsuite/rust/execute/torture/macros23.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/macros28.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/method2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/method3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/method4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/min_specialization2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/min_specialization3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_10.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_11.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_12.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_5.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_6.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_7.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_8.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/operator_overload_9.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-eq-1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-eq-2.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-eq-3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-eq-4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-5.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/partial-ord-6.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/prefetch_data.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/ref-pattern2.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/sip-hasher.rs3
-rw-r--r--gcc/testsuite/rust/execute/torture/slice-magic.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/slice-magic2.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/slice1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/str-layout1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/trait1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait10.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait11.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/trait12.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait13.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait14.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/trait15.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait2.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait3.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait4.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait5.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait6.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait7.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait8.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/trait9.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/transmute1.rs2
-rw-r--r--gcc/testsuite/rust/execute/torture/wrapping_op1.rs1
-rw-r--r--gcc/testsuite/rust/execute/torture/wrapping_op2.rs1
-rw-r--r--gcc/testsuite/rust/link/generic_function_1.rs1
-rw-r--r--gcc/testsuite/rust/link/trait_import_1.rs1
476 files changed, 854 insertions, 101 deletions
diff --git a/gcc/testsuite/rust/borrowck/reference.rs b/gcc/testsuite/rust/borrowck/reference.rs
index c4b9f7d..1bef938 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 545a278..210153f 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 449a72f..c629aba 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 1c49b75..7140b3b 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 1c49b75..7140b3b 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 192052d..e9f5e0a 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 7004761..eda22b5 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 d8c21b1..c728e36 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 80615af..35d9e9e 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 a02e6f6..5891f71 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 5f62a59..62e7c10 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<T>;
diff --git a/gcc/testsuite/rust/compile/braced_macro_arm.rs b/gcc/testsuite/rust/compile/braced_macro_arm.rs
index 1446878..8782cf9 100644
--- a/gcc/testsuite/rust/compile/braced_macro_arm.rs
+++ b/gcc/testsuite/rust/compile/braced_macro_arm.rs
@@ -7,12 +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 }
- // { dg-error "failed to parse item in crate" "" { target *-*-* } .-3 }
};
}
diff --git a/gcc/testsuite/rust/compile/bug-with-default-generic.rs b/gcc/testsuite/rust/compile/bug-with-default-generic.rs
index 25f46a0..3f31fcc 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 bd6f3b2..f80d6e6 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 469fa94..6da9193 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 b647da7..2aab16f 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 4da5b1c..db1589e 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 5036410..85bdaf0 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 3a2989c..43748cf2 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 5d4ca64..b22e07e 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 7e3bc86..1300126 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 de902ee..381d9f4 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 a17c525..88b151f 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 20dd0b9..bf8e78e 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 4d52efb..e0d206f 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 a160abf..158548c 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 060dbda..467be6a 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_17.rs b/gcc/testsuite/rust/compile/const_generics_17.rs
new file mode 100644
index 0000000..f65ca22
--- /dev/null
+++ b/gcc/testsuite/rust/compile/const_generics_17.rs
@@ -0,0 +1,3 @@
+struct Foo<const N: u32 = 1, const O: bool>; // { dg-error "invalid order for generic parameters: generic parameters with a default must be trailing" }
+
+impl<const N: u32> Foo<N> {}
diff --git a/gcc/testsuite/rust/compile/const_generics_18.rs b/gcc/testsuite/rust/compile/const_generics_18.rs
new file mode 100644
index 0000000..09bb860
--- /dev/null
+++ b/gcc/testsuite/rust/compile/const_generics_18.rs
@@ -0,0 +1,11 @@
+#![feature(lang_items)]
+#[lang = "sized"]
+trait Sized {}
+
+struct Foo<const N: usize>;
+type Alias = Foo<4>;
+
+fn main() -> i32 {
+ let _x: Alias = Foo::<4> {};
+ 0
+}
diff --git a/gcc/testsuite/rust/compile/const_generics_19.rs b/gcc/testsuite/rust/compile/const_generics_19.rs
new file mode 100644
index 0000000..73c1419
--- /dev/null
+++ b/gcc/testsuite/rust/compile/const_generics_19.rs
@@ -0,0 +1,11 @@
+#![feature(lang_items)]
+#[lang = "sized"]
+trait Sized {}
+
+struct Foo<const N: usize>;
+struct Wrapper<T>(T);
+
+fn main() -> i32 {
+ let _: Wrapper<Foo<3>> = Wrapper(Foo::<3> {});
+ 0
+}
diff --git a/gcc/testsuite/rust/compile/const_generics_3.rs b/gcc/testsuite/rust/compile/const_generics_3.rs
index 3415f17..528cf69 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 ce5e1b5..32b7a19 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 98e2d3f..a3f7485 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/decl_macro6.rs b/gcc/testsuite/rust/compile/decl_macro6.rs
index 5c5e700..b290b4c 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 7327fb5..8007544 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/derive-debug1.rs b/gcc/testsuite/rust/compile/derive-debug1.rs
index 5927374..f69be0d 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 902c65e..ad31d5a 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 b0bf856..47fac78 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 80e1e2d..cdcc9b1 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 35e33fb..fbeb054 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 947dc5c6..7dc0a80 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 c7a4ad5..6f5b29a 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 92fd6ee..7c76ab2 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 8c42aba..df7c8e3 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 ad40cae..37b1d50 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 8bf1bca..7429019 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 412144d..d575ff1 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 eeca62d..4d26de5 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/e0579-neg-float-fail.rs b/gcc/testsuite/rust/compile/e0579-neg-float-fail.rs
new file mode 100644
index 0000000..fefe221
--- /dev/null
+++ b/gcc/testsuite/rust/compile/e0579-neg-float-fail.rs
@@ -0,0 +1,9 @@
+#![feature(exclusive_range_pattern)]
+
+fn main() {
+ let x = 1.0;
+
+ match x { // { dg-message "sorry, unimplemented: match on floating-point types is not yet supported" }
+ -1.0f32..-1.2f32 => 2, // { dg-error "lower range bound must be less than upper .E0579." }
+ };
+} \ No newline at end of file
diff --git a/gcc/testsuite/rust/compile/e0579-neg-float.rs b/gcc/testsuite/rust/compile/e0579-neg-float.rs
new file mode 100644
index 0000000..cc60e80
--- /dev/null
+++ b/gcc/testsuite/rust/compile/e0579-neg-float.rs
@@ -0,0 +1,9 @@
+#![feature(exclusive_range_pattern)]
+
+fn main() {
+ let x = 1.0;
+
+ match x { // { dg-message "sorry, unimplemented: match on floating-point types is not yet supported" }
+ -1.2f32..-1.0f32 => 2,
+ };
+} \ No newline at end of file
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 2d60197..16d120f 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 11a70be..22702e3 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 7003f7a..0916ec9 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 26f97a6..0312626 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/extern_type_item_missing_semi.rs b/gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs
index a42af02..cd4d4e2 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/for-loop1.rs b/gcc/testsuite/rust/compile/for-loop1.rs
index 21e0399..d42cf67 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 a0ad066..680fd86 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 cedb62c..59101ac 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 b180667..695cde65 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 dc48a3a..5b8fee5 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/gat1.rs b/gcc/testsuite/rust/compile/gat1.rs
new file mode 100644
index 0000000..032f64e
--- /dev/null
+++ b/gcc/testsuite/rust/compile/gat1.rs
@@ -0,0 +1,4 @@
+trait Foo {
+ type Bar<T>;
+ type Baz<'a>;
+}
diff --git a/gcc/testsuite/rust/compile/generics1.rs b/gcc/testsuite/rust/compile/generics1.rs
index 9e440af..cf3c9e4 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 10b5880..7202baf 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 b32f566..21613fb 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/generics14.rs b/gcc/testsuite/rust/compile/generics14.rs
new file mode 100644
index 0000000..d97fd35
--- /dev/null
+++ b/gcc/testsuite/rust/compile/generics14.rs
@@ -0,0 +1 @@
+struct Foo<const N: i32, 'a>; // { dg-error "invalid order for generic parameters: lifetime parameters must be declared prior to type and const parameters" }
diff --git a/gcc/testsuite/rust/compile/generics2.rs b/gcc/testsuite/rust/compile/generics2.rs
index 4c95fd1..0ed8a5f 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 514d713..112a247 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 c4dbc43..e8333d6 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 d77c559..67029cd0 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 dcedead..e2283a4 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 2d30a9e..b38b277 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 b0879e5..407abd4 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 20c9d88..e7c1bb1 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 54a0cd2..e78d2f5 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 ecdb088..a304bd6 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 15d4bef..4c51b30 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 1f77ba9..5bf786c 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 cd1da47..785573a 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 d40005e..ef5f7c7 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 8960ebb..de46919 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 cfe01b5..4b4f004 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 115e6aa..0219ed2 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 86eeb98..c014e73 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 a637823..ce57ebf 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 a8fd93e..59b0adf 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 7c85ac4..6376e9e 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 79b60b0..506a6bf 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 9251d79..58ab0b6 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 dac4b2a..f8ccd57 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 6d58f7a..afeef17 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 eda7e13..96ca72e 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 a0cd5a0..958fcd1 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 4a4d759..dd34651 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 1dd7a45..dd7b4c0 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 a02e6f6..5891f71 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 d6a2d68..3386f27 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 1c46fee..e4f94bd 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 46c53e9..47cde45 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 b43e34f..110b939 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 071b3da..5eea229 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 de9588c..c71cecf 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 7e03651..5763096 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 e91e347..e3174b1 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 9f7c0c0..eefe44d 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 c95ce43..7f00d82 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 8701b20..03b8ed0 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 8adcb97..0d929d5 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 981e599..f4dc360 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 28f170e..4446b26 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 4af57c8..a75d21b 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 9f4d3e1..e2d5ed2 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 f0af551..eee8a68 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 b25820d..b30c9d2 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 65f82f3..ba3736f 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 a3ec228..e4c0c92 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 5bbde65..38288e9 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 142ed17..d9e07a6 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-2187.rs b/gcc/testsuite/rust/compile/issue-2187.rs
index deef417..78d843e 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-2190-1.rs b/gcc/testsuite/rust/compile/issue-2190-1.rs
index 927f90d..ad0f168 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 1c93338..c1abfb6 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 fc158c3..0a917a8 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 6a43a13..6bbbca4 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 8313033..cef8fc8 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 02a3f90..2c69214 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 6ab46c7..21637cb 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 9475aef..e5a3030 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 a61fef8..e3b9c9f 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 7fe4e2d..1cce4b2 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 662d58f..f6d40d8 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 261956d..5c77383 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 c7609d1..4baf088 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 a344bc8..06b1a89 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 a9c09e7..fe4b572 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 69977db..aad8591 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 b05f2b1..0e18324 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 3ad7085..d67ced3 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 e199c88..61fc20c 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 fdf1953..8c0d496 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 d30a3bf..218332d 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 d07059e..d3289b9 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 5927624..5fbd6c4 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 52f7c91..973ee0a 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 1ab5fdc..9560bde 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 2eb4ef3..3d6fb9f 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 b8b8e6f..e9358c9 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 0a1866d..94222b7 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 e9eb027..7338cb9 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 9e09d41..37c081b 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 9085b76..7adce5b 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 3266d84..80c2ab6 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 4418ccc..39856d5 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 a1328f2..1f62e368 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 177707fb..4c90d4d 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 4e61078..02c6ff6 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 a4542aea0..a6bd1c8 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 cc376fa..aa857e2 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 6f4382f..c26494c 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 ed603ce..cd13b74 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 b665af2..33d72e0 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 ced6b4e..6a3f720 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 2a3c0c7..e2a5a39 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 6d6a812..55303b2 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 e455a8b..3710e57 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 1d29fac..a41d2b3 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-3617.rs b/gcc/testsuite/rust/compile/issue-3617.rs
new file mode 100644
index 0000000..64c2166
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-3617.rs
@@ -0,0 +1,14 @@
+macro_rules! quote_tokens {
+ () => {
+ #[macro_export]
+ macro_rules! inner {
+ () => {
+ $crate::
+ }
+ }
+ };
+}
+
+pub fn main() {
+ quote_tokens!();
+}
diff --git a/gcc/testsuite/rust/compile/issue-3642.rs b/gcc/testsuite/rust/compile/issue-3642.rs
index 6d9decc..30abfd3 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-3659.rs b/gcc/testsuite/rust/compile/issue-3659.rs
new file mode 100644
index 0000000..ffbc634
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-3659.rs
@@ -0,0 +1,10 @@
+#![feature(exclusive_range_pattern)]
+
+fn main() {
+ let x = 3;
+
+ match x {
+ 0..-1 => 2, // { dg-error "lower range bound must be less than upper .E0579." }
+ _ => 3,
+ };
+}
diff --git a/gcc/testsuite/rust/compile/issue-3711.rs b/gcc/testsuite/rust/compile/issue-3711.rs
index a3f9c39..911d4ad 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 a228795..8cc661f 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<T> {
diff --git a/gcc/testsuite/rust/compile/issue-3898.rs b/gcc/testsuite/rust/compile/issue-3898.rs
index 114370c..8199267 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 7132036..5cd8dc0 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 59b522b..c4adb64 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 9608589..6715978 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-3971.rs b/gcc/testsuite/rust/compile/issue-3971.rs
new file mode 100644
index 0000000..5607d2d
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-3971.rs
@@ -0,0 +1,11 @@
+#[lang = "copy"]
+trait Copy {}
+
+// since the macro expansion fails, the current nameres fixpoint error is emitted - just accept it for now
+#[derive(Copy)]
+// { dg-error "derive may only be applied to structs, enums and unions" "" { target *-*-* } .-1 }
+// { dg-excess-errors "could not resolve trait" }
+
+pub fn check_ge(a: i32, b: i32) -> bool {
+ a >= b
+}
diff --git a/gcc/testsuite/rust/compile/issue-402.rs b/gcc/testsuite/rust/compile/issue-402.rs
index 2c99fc8..ec398e9 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-407-2.rs b/gcc/testsuite/rust/compile/issue-407-2.rs
index 2d60d6d..6dad861 100644
--- a/gcc/testsuite/rust/compile/issue-407-2.rs
+++ b/gcc/testsuite/rust/compile/issue-407-2.rs
@@ -2,15 +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 }
- // { 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 bd0d306..3a9dbeb 100644
--- a/gcc/testsuite/rust/compile/issue-407.rs
+++ b/gcc/testsuite/rust/compile/issue-407.rs
@@ -2,7 +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 }
- // { dg-error {failed to parse item in crate} "" { target *-*-* } .-3 }
}
diff --git a/gcc/testsuite/rust/compile/issue-4090-1.rs b/gcc/testsuite/rust/compile/issue-4090-1.rs
index 9f83835..0411943 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 75d6b7c..7b76c0a 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-4140-1.rs b/gcc/testsuite/rust/compile/issue-4140-1.rs
new file mode 100644
index 0000000..8b68b3e
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4140-1.rs
@@ -0,0 +1,18 @@
+pub enum TypeCtor {
+ Slice,
+ Array,
+}
+pub struct B<T>(T);
+
+macro_rules! ty_app {
+ ($_a:pat) => {
+ ApplicationTy($ctor) // { dg-error "unexpected token" }
+ // { dg-error "failed to parse tuple struct items" "" { target *-*-* } .-1 }
+ };
+}
+
+pub fn foo(ty: ApplicationTy) { // { dg-error "could not resolve type path 'ApplicationTy'" }
+ match ty {
+ ty_app!(bean::Array) => {}
+ }
+}
diff --git a/gcc/testsuite/rust/compile/issue-4140-2.rs b/gcc/testsuite/rust/compile/issue-4140-2.rs
new file mode 100644
index 0000000..bcccddb
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4140-2.rs
@@ -0,0 +1,12 @@
+macro_rules! ty_app {
+ ($_a:pat) => {
+ ($ctor)
+ };
+}
+
+pub fn foo() {
+ match ty {
+ // { dg-error "Cannot find path" "4140" { target *-*-* } 0 }
+ ty_app!(bean::Array) => {} // { dg-error "unrecognised token" "4140" { target *-*-* } 0 }
+ }
+}
diff --git a/gcc/testsuite/rust/compile/issue-4162.rs b/gcc/testsuite/rust/compile/issue-4162.rs
new file mode 100644
index 0000000..ffaa92d
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4162.rs
@@ -0,0 +1,6 @@
+pub fn main() {
+ while let = 5
+ // { dg-error "should be at least 1 pattern" "" { target *-*-* } .-1 }
+ {}
+}
+
diff --git a/gcc/testsuite/rust/compile/issue-4188.rs b/gcc/testsuite/rust/compile/issue-4188.rs
new file mode 100644
index 0000000..32b175d
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4188.rs
@@ -0,0 +1,13 @@
+trait MemoryUnit {
+ extern "C" fn read_dword(&'s self) -> u16 {}
+ // { dg-error {failed to resolve lifetime} "" { target *-*-* } .-1 }
+ // { dg-error {mismatched types} "" { target *-*-* } .-2 }
+}
+
+impl MemoryUnit for MemoryUnit {
+ extern "C" fn read_dword(&'s self) -> u16 {
+ let b16 = self.read_word() as u16;
+
+ b16 << 8
+ }
+}
diff --git a/gcc/testsuite/rust/compile/issue-4212.rs b/gcc/testsuite/rust/compile/issue-4212.rs
index e068e45..e7bf113 100644
--- a/gcc/testsuite/rust/compile/issue-4212.rs
+++ b/gcc/testsuite/rust/compile/issue-4212.rs
@@ -1,5 +1,5 @@
#![derive(PartialOrd, PartialEq)]
-// { dg-error "derive attribute cannot be used at crate level" "" { target *-*-* } .-1 }
+// { dg-error "attribute cannot be used at crate level" "" { target *-*-* } .-1 }
pub fn check_ge(a: i32, b: i32) -> bool {
a >= b
}
diff --git a/gcc/testsuite/rust/compile/issue-4219.rs b/gcc/testsuite/rust/compile/issue-4219.rs
new file mode 100644
index 0000000..d6e70e9
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4219.rs
@@ -0,0 +1,5 @@
+#![inline]
+// { dg-error "attribute cannot be used at crate level" "" { target *-*-* } .-1 }
+pub fn check_ge(a: i32, b: i32) -> bool {
+ a >= b
+}
diff --git a/gcc/testsuite/rust/compile/issue-4222.rs b/gcc/testsuite/rust/compile/issue-4222.rs
new file mode 100644
index 0000000..b829c6f
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4222.rs
@@ -0,0 +1,3 @@
+#![cfg(false)]
+// { dg-error ".false. predicate key cannot be a literal" "" { target *-*-* } .-1 }
+fn a() {}
diff --git a/gcc/testsuite/rust/compile/issue-4226.rs b/gcc/testsuite/rust/compile/issue-4226.rs
new file mode 100644
index 0000000..553faf2
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4226.rs
@@ -0,0 +1,3 @@
+#[doc]
+// { dg-error "attribute must be of the form ...doc.hidden.inline....... or ...doc = string.." "" { target *-*-* } .-1 }
+pub fn a(){}
diff --git a/gcc/testsuite/rust/compile/issue-4242.rs b/gcc/testsuite/rust/compile/issue-4242.rs
new file mode 100644
index 0000000..ecbe258
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4242.rs
@@ -0,0 +1,10 @@
+#![feature(exclusive_range_pattern)]
+
+fn main() {
+ let x = 1;
+
+ match x {
+ -55..0 => 2,
+ -99..-55 => 3,
+ };
+} \ No newline at end of file
diff --git a/gcc/testsuite/rust/compile/issue-4261.rs b/gcc/testsuite/rust/compile/issue-4261.rs
new file mode 100644
index 0000000..32beafa
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4261.rs
@@ -0,0 +1,3 @@
+#[cfg()]
+// { dg-error "malformed .cfg. attribute input" "" { target *-*-* } .-1 }
+fn a() {}
diff --git a/gcc/testsuite/rust/compile/issue-4262.rs b/gcc/testsuite/rust/compile/issue-4262.rs
new file mode 100644
index 0000000..2ce1cb4
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4262.rs
@@ -0,0 +1,3 @@
+#[cfg]
+// { dg-error ".cfg. is not followed by parentheses" "" { target *-*-* } .-1 }
+fn a() {}
diff --git a/gcc/testsuite/rust/compile/issue-4267.rs b/gcc/testsuite/rust/compile/issue-4267.rs
new file mode 100644
index 0000000..f507748
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-4267.rs
@@ -0,0 +1,3 @@
+#[cfg(a,a)]
+// { dg-error "multiple .cfg. predicates are specified" "" { target *-*-* } .-1 }
+fn a(){}
diff --git a/gcc/testsuite/rust/compile/issue-850.rs b/gcc/testsuite/rust/compile/issue-850.rs
index e42b557..c6a5f31 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 9e450dd..3736d08 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-867.rs b/gcc/testsuite/rust/compile/issue-867.rs
index e5f9b29..1aa29b3 100644
--- a/gcc/testsuite/rust/compile/issue-867.rs
+++ b/gcc/testsuite/rust/compile/issue-867.rs
@@ -1,8 +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 *-*-* } .+2 }
- // { dg-error {failed to parse item in crate} "" { target *-*-* } .+1 }
}
diff --git a/gcc/testsuite/rust/compile/issue-925.rs b/gcc/testsuite/rust/compile/issue-925.rs
index 507fe94..34c611b 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 2ea3d74..4bbc47e 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/lang_feature_gate.rs b/gcc/testsuite/rust/compile/lang_feature_gate.rs
new file mode 100644
index 0000000..4cd485e
--- /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 {}
diff --git a/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs b/gcc/testsuite/rust/compile/macros/builtin/option_env1.rs
index cf9f65b..b96c1ee 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 63f7254..ef0e563 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 ad6dd4c..545f3c8 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-issue1053-2.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs
index 3145990..fc96caa 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 1df6a3a..7ff380d 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-issue1400.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs
index 5c51b78..0708128 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-issue3608.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs
new file mode 100644
index 0000000..b081d45
--- /dev/null
+++ b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs
@@ -0,0 +1,10 @@
+include!(;
+
+struct Baz {
+
+impl Bar for
+
+
+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 }
diff --git a/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs b/gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs
index bcbc8dd..bbf0276 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 47514f1..4d76497 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 e03455b..4481834 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 a6a2afd..3add715 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/macro27.rs b/gcc/testsuite/rust/compile/macros/mbe/macro27.rs
index ee7833b..b9f392f 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 8002f28..bbe55a7 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 39f5021..a6c9eb5 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 35064bc0..097272e 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 6674a5f..30fae48 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 2ccd33e..a73d245 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 07b157b..8c295d4 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 5713d90..26f79d8 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 eb294ae..e297492 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 f5c498c..867ec21 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/macro40.rs b/gcc/testsuite/rust/compile/macros/mbe/macro40.rs
index f9d048e..39cbf5a 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/macro48.rs b/gcc/testsuite/rust/compile/macros/mbe/macro48.rs
index 6b3b369..aff5d19 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/macros/mbe/macro49.rs b/gcc/testsuite/rust/compile/macros/mbe/macro49.rs
index 9d63ff1..850cf44 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 d3b3f80..1cc4b3d 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 8a2e18c..c433a0d 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 564c5d2..997bf55 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 0fc72f6..2da1aae 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 322b3c5..b7dae27 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 ba1042a..9190c40 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 a2662c2..c50823b 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 b4342e8..fa65b55 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 1e08197..4513846 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 02877dd..b678cb2 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 5ebc94f..41ce21a 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/parse_invalid_specialization.rs b/gcc/testsuite/rust/compile/parse_invalid_specialization.rs
index 1ce7384..68e2120 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 c112e40..1d52abb 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 94c49c3..1205f19 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/path_as_generic_arg.rs b/gcc/testsuite/rust/compile/path_as_generic_arg.rs
index 21baf80..aff4ce2 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 7865f6a..5da43ff 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 e1e0fac..72d1a3b 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/raw-byte-string-loc.rs b/gcc/testsuite/rust/compile/raw-byte-string-loc.rs
index b71b6e5..6082118 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 26331ea..9e32790 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/raw_ref_op_invalid.rs b/gcc/testsuite/rust/compile/raw_ref_op_invalid.rs
index 90e169f..42ec63d 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 *-*-* } }
-
}
diff --git a/gcc/testsuite/rust/compile/self_const_ptr.rs b/gcc/testsuite/rust/compile/self_const_ptr.rs
index 014fe1b..51e339e 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 2a127b7..c986ef6 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 fd7ff6c..2b3128c 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/silly-order-bug.rs b/gcc/testsuite/rust/compile/silly-order-bug.rs
index 0d9cf1d..cdc8b2f 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 c46a97d..7377a26 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/static_var1.rs b/gcc/testsuite/rust/compile/static_var1.rs
index b3b5751..fdd2876 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/stmt_with_block_dot.rs b/gcc/testsuite/rust/compile/stmt_with_block_dot.rs
index c7037af..5a3721e 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 d04c295..9bdc98d3d 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 2be7037..4fc76af 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 670ab0a..9d0660c 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 b32eddd..1d4c0f2 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 1a17e84..af12d7d 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 9d5e719..0e2939f 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 9347b24..cf841dd 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 00b26ec..b83521f 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 5be39eb..bf5b2955 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 2b1f31c..ab65007 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 a9fa2eb..0701c94 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 9a04158..a52de9b 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 cb7b1fa..8a239f2 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 c98599f..4b372b6 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 e720b422..61fd574 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 92b022e..985189e 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 1c74ea4..2986e69 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 b838e6e..b5c5f9a 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 bf4dfb5..d0da16f 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 ce782c0..8655ca5 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 4fe952a..a711e21 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 0111add..3a5dcac 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 c4ca4db..db8fe76 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 c1ffd9c..f815ef5 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 baf53e4..4a35b3b 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 4c5dabc..ae12d00 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 a84f140..f592e77 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 f8e2f36..a393a4c 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 49c4539..f332a77 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 54bdf56..3d4875b 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 df27fdd..3fcf13b 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 16b85fb..79d1ab8 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 66454d6..0eb1db1 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 bc6d09b..b46b1a2 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 3d9d748..fa926ee 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/identifier-missing-impl-1.rs b/gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
index 2389fa5..8a9b031 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 }
}
}
diff --git a/gcc/testsuite/rust/compile/torture/intrinsics-2.rs b/gcc/testsuite/rust/compile/torture/intrinsics-2.rs
index a6cd8f8..23151b1 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 3d26e99..51fc3c1 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 7a62cca..a015c2a 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 0e26345..12821a0 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 754aacb..6dc9187c 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 b9bd83c..22b1012 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 819e329..c732565 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 d23774b..5584678 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 5b526fd..df1b527 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 bee8952..b2f675a 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 775e70d..a657a7c 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 4186d54..f739d22 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 d9ac912..88d6d65 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 3df27b8..2e4ec14 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 f96b5c3..bd77c8d 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 cf6643e..9c9a1a7 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 ad7a10b..57cee8a 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 d6c5adc..a5b70a5 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 604fee8..db10f85 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 8929501..6fe943c 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 4cf36e3..4710445 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 02383a5..1cab51f 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 8648022..3e340eb 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 5d9c819..ce70a28 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 ab546a8..2996ecf 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 c1863a8..c875577 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 8c8e682..7dc546c 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 268c2bd..9ee267e 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 512152e..bd32f70 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 4be898d..bd1a6e2 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 a9dca94..f0a33d9 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 dad6dda..d06a68f 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 49c4db2..716d657 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 c60a259..86e83e5 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 f117353..f1c4e84 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 545fd39..928dd62 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 cc0875b..f2515e8 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 3a7c37f..8015a35 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 7b98779..4de1843 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 be9fb1d..fc1d94a 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 af1cb54..50083e5 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 696fcc0..f7d6b37 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 779662c..d67a6cd 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 da6c155..5e6e7e2 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 ac8ccdf..6aa860b 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 b194e07..99f10a2 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 a76f4c0..857ab28 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 119132f..c4e3185 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 4388b5e..11a0c78 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 4e9dcc1..5bb6793 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 d081dd1..b4922cc 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 68f3f38..62e197e 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 ccba9fa..117ba54 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 f4308e8..3341244 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 f1a7865..f6e460e 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 9ec135d..3c0a88c 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 7ae0536..9ace029 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 ef0b471..fabb487 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 60554da..dccfc9e 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 0fe95ef..e101059 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 5861c15..12c0483 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 04c546e..b4a8c13 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 d092dcc..4378dd8 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 a3fa305..03d84df 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/core/core.exp b/gcc/testsuite/rust/core/core.exp
index 330c6d5..45bdbb5 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.
diff --git a/gcc/testsuite/rust/execute/black_box.rs b/gcc/testsuite/rust/execute/black_box.rs
index 58d10a3..8fa2cce 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 11da848..c272700 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 1b46678..acf7c64c 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 0431629..d51c95d 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<T> {
diff --git a/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs b/gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs
index b6a9695..86c26df 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<T> {
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 56fbeaa..708c2aa 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 e956413..1a5e498 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 deca784..06f385f 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 98ec261..e9c6244 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 0701776..3f845dc 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 335f496..e6511b9 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 6be8602..cf316e4 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 0686056..a870bea 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 dbb7afe..3ad1b3b 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
new file mode 100644
index 0000000..6ed5535
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-2.rs
@@ -0,0 +1,22 @@
+#![feature(lang_items)]
+
+#[lang = "sized"]
+trait Sized {}
+
+trait Magic {
+ fn magic(&self) -> usize;
+}
+
+struct Foo<const N: usize>;
+
+impl<const N: usize> Magic for Foo<N> {
+ fn magic(&self) -> usize {
+ N
+ }
+}
+
+fn main() -> i32 {
+ let f = Foo::<7> {};
+ let n = f.magic();
+ n as i32 - 7
+}
diff --git a/gcc/testsuite/rust/execute/torture/const-generics-3.rs b/gcc/testsuite/rust/execute/torture/const-generics-3.rs
new file mode 100644
index 0000000..289b865
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-3.rs
@@ -0,0 +1,14 @@
+#![feature(lang_items)]
+#[lang = "sized"]
+pub trait Sized {}
+
+fn simd_shuffle<const N: usize>(idx: [u32; N]) -> [u32; N] {
+ idx
+}
+
+fn main() -> i32 {
+ let a = [1u32, 2, 3, 4];
+ let out = simd_shuffle(a);
+ let _check: [u32; 4] = out;
+ 0
+}
diff --git a/gcc/testsuite/rust/execute/torture/const-generics-4.rs b/gcc/testsuite/rust/execute/torture/const-generics-4.rs
new file mode 100644
index 0000000..9104f24
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-4.rs
@@ -0,0 +1,44 @@
+#![feature(lang_items)]
+#[lang = "sized"]
+trait Sized {}
+
+#[allow(unused)]
+macro_rules! simd_shuffle {
+ ($x:expr, $y:expr, $idx:expr $(,)?) => {{
+ simd_shuffle(
+ $x,
+ $y,
+ const {
+ let v: [u32; _] = $idx;
+ v
+ },
+ )
+ }};
+}
+
+const fn simd_shuffle(_a: [u32; 4], _b: [u32; 4], idx: [u32; 4]) -> [u32; 4] {
+ idx
+}
+
+fn main() -> i32 {
+ let a = [1, 2, 3, 4];
+ let b = [5, 6, 7, 8];
+ let indices = [3, 2, 1, 0];
+
+ let result: [u32; 4] = simd_shuffle!(a, b, indices);
+
+ if result[0] != 3 {
+ return 1;
+ }
+ if result[1] != 2 {
+ return 2;
+ }
+ if result[2] != 1 {
+ return 3;
+ }
+ if result[3] != 0 {
+ return 4;
+ }
+
+ 0
+}
diff --git a/gcc/testsuite/rust/execute/torture/const-generics-5.rs b/gcc/testsuite/rust/execute/torture/const-generics-5.rs
new file mode 100644
index 0000000..91006ed
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-5.rs
@@ -0,0 +1,15 @@
+#![feature(lang_items)]
+
+#[lang = "sized"]
+trait Sized {}
+
+struct Foo<const N: usize>;
+
+impl<const N: usize> Foo<N> {
+ const VALUE: usize = N;
+}
+
+fn main() -> i32 {
+ let val = Foo::<7>::VALUE;
+ val as i32 - 7
+}
diff --git a/gcc/testsuite/rust/execute/torture/const-generics-6.rs b/gcc/testsuite/rust/execute/torture/const-generics-6.rs
new file mode 100644
index 0000000..0aa7fae
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-6.rs
@@ -0,0 +1,17 @@
+#![feature(lang_items)]
+
+#[lang = "sized"]
+trait Sized {}
+
+struct Foo<const N: usize>;
+
+impl<const N: usize> Foo<N> {
+ const VALUE: usize = N;
+ const SQUARE: usize = N * N;
+}
+
+fn main() -> i32 {
+ let a = Foo::<5>::VALUE; // 5
+ let b = Foo::<5>::SQUARE; // 25
+ (a + b) as i32 - 30
+}
diff --git a/gcc/testsuite/rust/execute/torture/const-generics-7.rs b/gcc/testsuite/rust/execute/torture/const-generics-7.rs
new file mode 100644
index 0000000..c75d897
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/const-generics-7.rs
@@ -0,0 +1,23 @@
+#![feature(intrinsics)]
+
+#![feature(lang_items)]
+#[lang = "sized"]
+pub trait Sized {}
+
+mod mem {
+ extern "rust-intrinsic" {
+ #[rustc_const_stable(feature = "const_size_of", since = "1.40.0")]
+ pub fn size_of<T>() -> usize;
+ }
+}
+
+struct Foo<T>;
+
+impl<T> Foo<T> {
+ const MAGIC: usize = mem::size_of::<T>();
+}
+
+fn main() -> i32 {
+ let sz = Foo::<u16>::MAGIC;
+ sz as i32 - 2
+}
diff --git a/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs b/gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
index 15bb811..662f813 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 4bcafa0..775f5be 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 67b2773..442ee67 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 e316017..1f4c374 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 542ecd8..28a120f 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 22cfaaa..780a30f 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 4138a5b..e8fe94c 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 38c4808..adeeb8d 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 c30bbd3..66011b5 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 c1bae35..5f7d5ff 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 3342189..e48a4b1 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 4f5dfe1..022e951 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
new file mode 100644
index 0000000..9a60986
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/gat1.rs
@@ -0,0 +1,20 @@
+#![feature(lang_items)]
+
+#[lang = "sized"]
+trait Sized {}
+
+pub struct MyBuf;
+
+trait Foo {
+ type Bar<T>: Sized;
+}
+
+impl Foo for MyBuf {
+ type Bar<T> = T;
+}
+
+type A = <MyBuf as Foo>::Bar<u32>;
+fn main() -> i32 {
+ let a: A = 1;
+ a as i32 - 1
+}
diff --git a/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs b/gcc/testsuite/rust/execute/torture/impl_desugar-2.rs
index c73ea34..d1d63ce 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 22d3951..77309de 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 8ce5f21..9de4dff 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 f7cbbb6..0f2e7e0 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 dd68eb2..ec55f6a 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 33a5c8c..e578ed8 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 29f393d..d13765e 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 c1cec07..588b11d 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 67d0095..e054949 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 19e58e3..1071b35 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 7dfa26f..d7ef483 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 29f532e..788b0ea 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 d5c3d89..d50faba 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 6fb42b3..d0db0ee 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 e7a261c..548600a 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 5d90907..23620ab 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 2ff78d9..e63e2bd 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 ed8dc81..3b1b398 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 36291a7..26dd1ef 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 9c5356e..d90072f 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 2218282..5da45ee 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 87edb95..29d4454 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 bf5d6a7..a30ddc4 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 8a5ec1b..c5da7ee 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 6bd7172..ee18c8b 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 850b997..b7f2888 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 4ff12fc..c45d61d 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 f505146..65bc07d 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 62dbcd0..02d96d7 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 f07a126..aa38858 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 61ad424..5c93736 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-4242.rs b/gcc/testsuite/rust/execute/torture/issue-4242.rs
new file mode 100644
index 0000000..867adc9
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/issue-4242.rs
@@ -0,0 +1,11 @@
+#![feature(exclusive_range_pattern)]
+
+fn main() -> i32 {
+ let x = -77;
+
+ match x {
+ -55..99 => 1,
+ -99..-55 => 0, // the correct case
+ _ => 1,
+ }
+} \ No newline at end of file
diff --git a/gcc/testsuite/rust/execute/torture/issue-647.rs b/gcc/testsuite/rust/execute/torture/issue-647.rs
index 6a35655..fbf4a1e 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 b11ccd5..060cf0b 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 1361235..093143f 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 0b1118b..63518ce 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 233eb60..84b5033 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/literalpattern_neg.rs b/gcc/testsuite/rust/execute/torture/literalpattern_neg.rs
new file mode 100644
index 0000000..3553c4a
--- /dev/null
+++ b/gcc/testsuite/rust/execute/torture/literalpattern_neg.rs
@@ -0,0 +1,9 @@
+fn main() -> i32 {
+ let x = -55;
+
+ match x {
+ 55 => 1,
+ -55 => 0, // correct case
+ _ => 1
+ }
+} \ No newline at end of file
diff --git a/gcc/testsuite/rust/execute/torture/macros23.rs b/gcc/testsuite/rust/execute/torture/macros23.rs
index b27985d..ef958af 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 46d9cfc..db1d9f2 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 e5f630a..0355a750 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 9a7865c..70b7792 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 e20618f..f4b3a33 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 74faee4..b3eac27 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 9eccd97..b73a8ac 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 9aed393..0fc6372 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 921ec5f..6989347 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 f0359fb..d0b45a7 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 2cd5c69..a0e1bc8 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 6862415..dfc2530 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 6c1a8b8..6807143 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 c8235c6..3f68bf1 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 eeef5bc..b5c1fd6 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 d5ffae5..0a69758 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 7226b26..e1bd7c4 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 4b589a8..8324768 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 5fc0428..4d10f78 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 db123a1..fa918f3 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 debed8c..e132ef0 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 849910a..4ace3d9 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 b6997d8..d1835db 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 a3558e7..b1546a3 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 d3b713f..76cdc2a 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 7aec07c..dd8072f 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 fd52f32..de13074 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 721d2aa..b87a08e 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 5d64f8c..04f13cd 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 2a847fb..a155e67 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 8e71724..cde7ea5 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 60826a3..32cdc22 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 1f56187..521a251 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 20f113e..75c04f3 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 2683179..317ff7a 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 fb3b4e3..a28d265 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 f8a5959..db5b6e2 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 4e576eb..4eb9546 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 cca084a..84add74 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 d174a89..dd7a644 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 0d8f894..25912bd 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 759950e..ebc0c5c 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 53469d7..59f8dc3 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 d5fd546..db69c1e 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<Foo as Bar>::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 668b437..d39d324 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 61c2d15..fb1eaae 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 7cd7d1a..67b5dd4 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 de5ddc1..baa075b 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 21f1575..47d40ae 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 69e784e..cbce3c1 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 f60554a..3448eb8 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 d89affd..8da1ae7 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<T, U>(value: T) -> U;
diff --git a/gcc/testsuite/rust/execute/torture/wrapping_op1.rs b/gcc/testsuite/rust/execute/torture/wrapping_op1.rs
index e0c100c..ba9b168 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 6928992..5e6a37d 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 46d0e82..dab62f0 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 e54b0e1..589871d 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 {}