From 688f589b9f1cfab947fd8a9d6b5d951d1aae7cb0 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 2 Jun 2021 11:05:44 +0200 Subject: Re-organize GCC/Rust testsuites ... as discussed in : > [...] best practice from what other GCC testsuites are doing), which I hope > makes clearer the difference between the individual GCC/Rust testsuites: > 'rust.test/compile' -> 'rust/compile/torture' > 'rust.test/execute' -> 'rust/execute/torture' > 'rust.test/unsupported' -> 'rust/compile/xfail' > 'rust.test/xfail_compile' -> 'rust/compile' ... plus corresponding documentation updates in the '*.exp' files and elsewhere. --- .../rust.test/compile/arithmetic_expressions1.rs | 30 --------- .../rust.test/compile/array_type_infer.rs | 4 -- .../rust.test/compile/array_zero_length.rs | 4 -- gcc/testsuite/rust.test/compile/arrays1.rs | 9 --- gcc/testsuite/rust.test/compile/arrays2.rs | 8 --- gcc/testsuite/rust.test/compile/arrays3.rs | 6 -- gcc/testsuite/rust.test/compile/arrays4.rs | 6 -- gcc/testsuite/rust.test/compile/arrays_index1.rs | 9 --- gcc/testsuite/rust.test/compile/arrays_index2.rs | 4 -- gcc/testsuite/rust.test/compile/block_expr1.rs | 29 --------- gcc/testsuite/rust.test/compile/block_expr2.rs | 15 ----- gcc/testsuite/rust.test/compile/block_expr3.rs | 14 ----- gcc/testsuite/rust.test/compile/block_expr4.rs | 8 --- gcc/testsuite/rust.test/compile/block_expr5.rs | 40 ------------ .../rust.test/compile/block_expr_parser_bug.rs | 5 -- gcc/testsuite/rust.test/compile/borrow1.rs | 17 ----- gcc/testsuite/rust.test/compile/cfg_attr.rs | 8 --- gcc/testsuite/rust.test/compile/char1.rs | 4 -- .../rust.test/compile/comparison_expr1.rs | 38 ----------- gcc/testsuite/rust.test/compile/compile.exp | 35 ----------- .../rust.test/compile/compound_assignment_expr1.rs | 23 ------- gcc/testsuite/rust.test/compile/conditional.rs | 11 ---- gcc/testsuite/rust.test/compile/constant1.rs | 9 --- gcc/testsuite/rust.test/compile/deadcode1.rs | 22 ------- gcc/testsuite/rust.test/compile/deadcode2.rs | 10 --- gcc/testsuite/rust.test/compile/deref1.rs | 6 -- gcc/testsuite/rust.test/compile/float1.rs | 9 --- gcc/testsuite/rust.test/compile/float_types.rs | 13 ---- gcc/testsuite/rust.test/compile/forward_decl_1.rs | 11 ---- gcc/testsuite/rust.test/compile/forward_decl_2.rs | 6 -- gcc/testsuite/rust.test/compile/forward_decl_3.rs | 9 --- gcc/testsuite/rust.test/compile/forward_decl_4.rs | 9 --- gcc/testsuite/rust.test/compile/func1.rs | 7 --- gcc/testsuite/rust.test/compile/func2.rs | 20 ------ .../rust.test/compile/function_reference1.rs | 9 --- .../rust.test/compile/function_reference2.rs | 9 --- .../rust.test/compile/function_reference3.rs | 20 ------ .../rust.test/compile/function_reference4.rs | 9 --- gcc/testsuite/rust.test/compile/generics1.rs | 51 --------------- gcc/testsuite/rust.test/compile/generics10.rs | 19 ------ gcc/testsuite/rust.test/compile/generics11.rs | 8 --- gcc/testsuite/rust.test/compile/generics12.rs | 17 ----- gcc/testsuite/rust.test/compile/generics13.rs | 40 ------------ gcc/testsuite/rust.test/compile/generics14.rs | 19 ------ gcc/testsuite/rust.test/compile/generics15.rs | 23 ------- gcc/testsuite/rust.test/compile/generics16.rs | 31 --------- gcc/testsuite/rust.test/compile/generics17.rs | 19 ------ gcc/testsuite/rust.test/compile/generics18.rs | 20 ------ gcc/testsuite/rust.test/compile/generics19.rs | 12 ---- gcc/testsuite/rust.test/compile/generics2.rs | 45 ------------- gcc/testsuite/rust.test/compile/generics20.rs | 12 ---- gcc/testsuite/rust.test/compile/generics21.rs | 13 ---- gcc/testsuite/rust.test/compile/generics22.rs | 13 ---- gcc/testsuite/rust.test/compile/generics23.rs | 6 -- gcc/testsuite/rust.test/compile/generics24.rs | 34 ---------- gcc/testsuite/rust.test/compile/generics25.rs | 9 --- gcc/testsuite/rust.test/compile/generics26.rs | 21 ------- gcc/testsuite/rust.test/compile/generics27.rs | 16 ----- gcc/testsuite/rust.test/compile/generics28.rs | 18 ------ gcc/testsuite/rust.test/compile/generics29.rs | 16 ----- gcc/testsuite/rust.test/compile/generics3.rs | 15 ----- gcc/testsuite/rust.test/compile/generics30.rs | 16 ----- gcc/testsuite/rust.test/compile/generics31.rs | 15 ----- gcc/testsuite/rust.test/compile/generics32.rs | 15 ----- gcc/testsuite/rust.test/compile/generics4.rs | 15 ----- gcc/testsuite/rust.test/compile/generics5.rs | 10 --- gcc/testsuite/rust.test/compile/generics6.rs | 15 ----- gcc/testsuite/rust.test/compile/generics7.rs | 13 ---- gcc/testsuite/rust.test/compile/generics8.rs | 18 ------ gcc/testsuite/rust.test/compile/generics9.rs | 25 -------- .../rust.test/compile/if_elif_else_expr1.rs | 14 ----- gcc/testsuite/rust.test/compile/impl_block1.rs | 23 ------- gcc/testsuite/rust.test/compile/impl_block2.rs | 28 --------- gcc/testsuite/rust.test/compile/impl_block3.rs | 32 ---------- .../rust.test/compile/implicit_returns1.rs | 73 ---------------------- gcc/testsuite/rust.test/compile/infer_type1.rs | 4 -- .../rust.test/compile/integer_inference_var1.rs | 6 -- .../rust.test/compile/integer_inference_var2.rs | 6 -- .../rust.test/compile/integer_inference_var3.rs | 11 ---- .../rust.test/compile/integer_inference_var4.rs | 4 -- .../rust.test/compile/integer_inference_var5.rs | 25 -------- gcc/testsuite/rust.test/compile/integer_types.rs | 27 -------- gcc/testsuite/rust.test/compile/lifetime1.rs | 7 --- gcc/testsuite/rust.test/compile/literals1.rs | 11 ---- gcc/testsuite/rust.test/compile/loop1.rs | 10 --- gcc/testsuite/rust.test/compile/loop2.rs | 14 ----- gcc/testsuite/rust.test/compile/loop3.rs | 14 ----- gcc/testsuite/rust.test/compile/loop4.rs | 7 --- gcc/testsuite/rust.test/compile/loop5.rs | 14 ----- gcc/testsuite/rust.test/compile/loop6.rs | 11 ---- gcc/testsuite/rust.test/compile/loop7.rs | 13 ---- gcc/testsuite/rust.test/compile/methods1.rs | 40 ------------ gcc/testsuite/rust.test/compile/methods2.rs | 42 ------------- gcc/testsuite/rust.test/compile/methods3.rs | 43 ------------- gcc/testsuite/rust.test/compile/name_resolve1.rs | 23 ------- gcc/testsuite/rust.test/compile/nested_struct1.rs | 18 ------ gcc/testsuite/rust.test/compile/never_type1.rs | 22 ------- .../rust.test/compile/parameter_usage1.rs | 8 --- gcc/testsuite/rust.test/compile/parens1.rs | 5 -- gcc/testsuite/rust.test/compile/raw_identifiers.rs | 3 - .../rust.test/compile/raw_identifiers_keywords.rs | 3 - gcc/testsuite/rust.test/compile/recursive_fn1.rs | 12 ---- gcc/testsuite/rust.test/compile/scoping1.rs | 11 ---- gcc/testsuite/rust.test/compile/self_type1.rs | 12 ---- gcc/testsuite/rust.test/compile/shadow1.rs | 6 -- gcc/testsuite/rust.test/compile/shadow2.rs | 5 -- gcc/testsuite/rust.test/compile/static_function.rs | 8 --- gcc/testsuite/rust.test/compile/static_var1.rs | 6 -- .../rust.test/compile/stmt_with_block1.rs | 13 ---- gcc/testsuite/rust.test/compile/str1.rs | 7 --- gcc/testsuite/rust.test/compile/struct_access1.rs | 12 ---- .../rust.test/compile/struct_base_init_1.rs | 12 ---- gcc/testsuite/rust.test/compile/struct_init.rs | 9 --- gcc/testsuite/rust.test/compile/struct_init_2.rs | 6 -- gcc/testsuite/rust.test/compile/struct_init_3.rs | 11 ---- gcc/testsuite/rust.test/compile/struct_init_4.rs | 10 --- gcc/testsuite/rust.test/compile/struct_init_5.rs | 10 --- gcc/testsuite/rust.test/compile/struct_init_6.rs | 10 --- gcc/testsuite/rust.test/compile/struct_init_7.rs | 10 --- gcc/testsuite/rust.test/compile/struct_init_8.rs | 7 --- gcc/testsuite/rust.test/compile/top_attr.rs | 5 -- gcc/testsuite/rust.test/compile/tuple1.rs | 6 -- gcc/testsuite/rust.test/compile/tuple2.rs | 5 -- gcc/testsuite/rust.test/compile/tuple3.rs | 9 --- .../rust.test/compile/tuple_field_access.rs | 6 -- gcc/testsuite/rust.test/compile/tuple_struct1.rs | 6 -- gcc/testsuite/rust.test/compile/tuple_struct2.rs | 11 ---- gcc/testsuite/rust.test/compile/type-alias1.rs | 6 -- gcc/testsuite/rust.test/compile/type-alias2.rs | 8 --- gcc/testsuite/rust.test/compile/type_infer1.rs | 22 ------- gcc/testsuite/rust.test/compile/type_infer2.rs | 9 --- gcc/testsuite/rust.test/compile/type_infer3.rs | 14 ----- gcc/testsuite/rust.test/compile/type_infer4.rs | 11 ---- gcc/testsuite/rust.test/compile/type_infer5.rs | 12 ---- gcc/testsuite/rust.test/compile/type_infer6.rs | 14 ----- gcc/testsuite/rust.test/compile/unary_operators.rs | 8 --- gcc/testsuite/rust.test/compile/underscore_id.rs | 4 -- gcc/testsuite/rust.test/compile/unit_type1.rs | 7 --- gcc/testsuite/rust.test/compile/unused.rs | 17 ----- gcc/testsuite/rust.test/compile/unused1.rs | 16 ----- gcc/testsuite/rust.test/compile/usize1.rs | 6 -- gcc/testsuite/rust.test/execute/block_expr1.rs | 8 --- gcc/testsuite/rust.test/execute/empty_main.rs | 3 - gcc/testsuite/rust.test/execute/execute.exp | 35 ----------- gcc/testsuite/rust.test/execute/exit_error.rs | 5 -- gcc/testsuite/rust.test/execute/func1.rs | 5 -- .../rust.test/unsupported/lifetime_param.rs | 11 ---- gcc/testsuite/rust.test/unsupported/slice1.rs | 3 - .../rust.test/unsupported/struct_field_vis.rs | 15 ----- .../rust.test/unsupported/unsupported.exp | 62 ------------------ .../rust.test/xfail_compile/array_empty_list.rs | 4 -- gcc/testsuite/rust.test/xfail_compile/arrays1.rs | 4 -- gcc/testsuite/rust.test/xfail_compile/arrays2.rs | 4 -- gcc/testsuite/rust.test/xfail_compile/bad_type1.rs | 3 - gcc/testsuite/rust.test/xfail_compile/bad_type2.rs | 14 ----- gcc/testsuite/rust.test/xfail_compile/break1.rs | 6 -- gcc/testsuite/rust.test/xfail_compile/break2.rs | 15 ----- gcc/testsuite/rust.test/xfail_compile/continue1.rs | 10 --- .../rust.test/xfail_compile/deadcode_err1.rs | 11 ---- .../rust.test/xfail_compile/deadcode_err2.rs | 16 ----- .../rust.test/xfail_compile/expected_type_args2.rs | 6 -- .../rust.test/xfail_compile/expected_type_args3.rs | 8 --- gcc/testsuite/rust.test/xfail_compile/func1.rs | 9 --- gcc/testsuite/rust.test/xfail_compile/func2.rs | 9 --- gcc/testsuite/rust.test/xfail_compile/func3.rs | 7 --- gcc/testsuite/rust.test/xfail_compile/func4.rs | 6 -- gcc/testsuite/rust.test/xfail_compile/func5.rs | 7 --- .../rust.test/xfail_compile/generic-default1.rs | 9 --- gcc/testsuite/rust.test/xfail_compile/generics1.rs | 11 ---- .../rust.test/xfail_compile/generics10.rs | 12 ---- .../rust.test/xfail_compile/generics11.rs | 12 ---- .../rust.test/xfail_compile/generics12.rs | 6 -- gcc/testsuite/rust.test/xfail_compile/generics2.rs | 11 ---- gcc/testsuite/rust.test/xfail_compile/generics3.rs | 10 --- gcc/testsuite/rust.test/xfail_compile/generics4.rs | 10 --- gcc/testsuite/rust.test/xfail_compile/generics5.rs | 13 ---- gcc/testsuite/rust.test/xfail_compile/generics6.rs | 29 --------- gcc/testsuite/rust.test/xfail_compile/generics7.rs | 26 -------- gcc/testsuite/rust.test/xfail_compile/generics8.rs | 15 ----- gcc/testsuite/rust.test/xfail_compile/generics9.rs | 11 ---- .../rust.test/xfail_compile/immutable1.rs | 5 -- .../rust.test/xfail_compile/immutable2.rs | 5 -- .../rust.test/xfail_compile/immutable3.rs | 4 -- .../rust.test/xfail_compile/immutable4.rs | 4 -- .../rust.test/xfail_compile/immutable5.rs | 6 -- .../xfail_compile/implicit_returns_err1.rs | 12 ---- .../xfail_compile/implicit_returns_err2.rs | 10 --- .../xfail_compile/implicit_returns_err3.rs | 9 --- .../xfail_compile/implicit_returns_err4.rs | 10 --- .../rust.test/xfail_compile/issue-407-2.rs | 13 ---- gcc/testsuite/rust.test/xfail_compile/issue-407.rs | 7 --- gcc/testsuite/rust.test/xfail_compile/method1.rs | 14 ----- gcc/testsuite/rust.test/xfail_compile/method2.rs | 17 ----- .../rust.test/xfail_compile/missing_return1.rs | 6 -- .../rust.test/xfail_compile/never_type_err1.rs | 14 ----- .../rust.test/xfail_compile/never_type_err2.rs | 4 -- .../xfail_compile/raw_identifiers_bad_keywords.rs | 3 - .../xfail_compile/raw_identifiers_underscore.rs | 3 - .../rust.test/xfail_compile/redef_error1.rs | 8 --- .../rust.test/xfail_compile/redef_error2.rs | 4 -- .../rust.test/xfail_compile/redef_error3.rs | 9 --- .../rust.test/xfail_compile/redef_error4.rs | 27 -------- .../rust.test/xfail_compile/redef_error5.rs | 8 --- .../rust.test/xfail_compile/redef_error6.rs | 13 ---- gcc/testsuite/rust.test/xfail_compile/shadow1.rs | 7 --- .../rust.test/xfail_compile/static_var1.rs | 5 -- .../xfail_compile/stmt_with_block_err1.rs | 17 ----- .../rust.test/xfail_compile/struct_init1.rs | 9 --- gcc/testsuite/rust.test/xfail_compile/tuple1.rs | 5 -- .../rust.test/xfail_compile/tuple_struct1.rs | 10 --- .../rust.test/xfail_compile/tuple_struct2.rs | 7 --- .../rust.test/xfail_compile/tuple_struct3.rs | 5 -- .../rust.test/xfail_compile/type-alias1.rs | 6 -- .../rust.test/xfail_compile/type-bindings1.rs | 8 --- .../rust.test/xfail_compile/unary_negation.rs | 10 --- gcc/testsuite/rust.test/xfail_compile/unary_not.rs | 9 --- .../xfail_compile/unconstrained_type_param.rs | 12 ---- gcc/testsuite/rust.test/xfail_compile/unsafe.rs | 5 -- .../xfail_compile/unterminated_c_comment.rs | 2 - gcc/testsuite/rust.test/xfail_compile/usize1.rs | 5 -- .../rust.test/xfail_compile/xfail_compile.exp | 36 ----------- gcc/testsuite/rust/compile/array_empty_list.rs | 4 ++ gcc/testsuite/rust/compile/arrays1.rs | 4 ++ gcc/testsuite/rust/compile/arrays2.rs | 4 ++ gcc/testsuite/rust/compile/bad_type1.rs | 3 + gcc/testsuite/rust/compile/bad_type2.rs | 14 +++++ gcc/testsuite/rust/compile/break1.rs | 6 ++ gcc/testsuite/rust/compile/break2.rs | 15 +++++ gcc/testsuite/rust/compile/compile.exp | 35 +++++++++++ gcc/testsuite/rust/compile/continue1.rs | 10 +++ gcc/testsuite/rust/compile/deadcode_err1.rs | 11 ++++ gcc/testsuite/rust/compile/deadcode_err2.rs | 16 +++++ gcc/testsuite/rust/compile/expected_type_args2.rs | 6 ++ gcc/testsuite/rust/compile/expected_type_args3.rs | 8 +++ gcc/testsuite/rust/compile/func1.rs | 9 +++ gcc/testsuite/rust/compile/func2.rs | 9 +++ gcc/testsuite/rust/compile/func3.rs | 7 +++ gcc/testsuite/rust/compile/func4.rs | 6 ++ gcc/testsuite/rust/compile/func5.rs | 7 +++ gcc/testsuite/rust/compile/generic-default1.rs | 9 +++ gcc/testsuite/rust/compile/generics1.rs | 11 ++++ gcc/testsuite/rust/compile/generics10.rs | 12 ++++ gcc/testsuite/rust/compile/generics11.rs | 12 ++++ gcc/testsuite/rust/compile/generics12.rs | 6 ++ gcc/testsuite/rust/compile/generics2.rs | 11 ++++ gcc/testsuite/rust/compile/generics3.rs | 10 +++ gcc/testsuite/rust/compile/generics4.rs | 10 +++ gcc/testsuite/rust/compile/generics5.rs | 13 ++++ gcc/testsuite/rust/compile/generics6.rs | 29 +++++++++ gcc/testsuite/rust/compile/generics7.rs | 26 ++++++++ gcc/testsuite/rust/compile/generics8.rs | 15 +++++ gcc/testsuite/rust/compile/generics9.rs | 11 ++++ gcc/testsuite/rust/compile/immutable1.rs | 5 ++ gcc/testsuite/rust/compile/immutable2.rs | 5 ++ gcc/testsuite/rust/compile/immutable3.rs | 4 ++ gcc/testsuite/rust/compile/immutable4.rs | 4 ++ gcc/testsuite/rust/compile/immutable5.rs | 6 ++ .../rust/compile/implicit_returns_err1.rs | 12 ++++ .../rust/compile/implicit_returns_err2.rs | 10 +++ .../rust/compile/implicit_returns_err3.rs | 9 +++ .../rust/compile/implicit_returns_err4.rs | 10 +++ gcc/testsuite/rust/compile/issue-407-2.rs | 13 ++++ gcc/testsuite/rust/compile/issue-407.rs | 7 +++ gcc/testsuite/rust/compile/method1.rs | 14 +++++ gcc/testsuite/rust/compile/method2.rs | 17 +++++ gcc/testsuite/rust/compile/missing_return1.rs | 6 ++ gcc/testsuite/rust/compile/never_type_err1.rs | 14 +++++ gcc/testsuite/rust/compile/never_type_err2.rs | 4 ++ .../rust/compile/raw_identifiers_bad_keywords.rs | 3 + .../rust/compile/raw_identifiers_underscore.rs | 3 + gcc/testsuite/rust/compile/redef_error1.rs | 8 +++ gcc/testsuite/rust/compile/redef_error2.rs | 4 ++ gcc/testsuite/rust/compile/redef_error3.rs | 9 +++ gcc/testsuite/rust/compile/redef_error4.rs | 27 ++++++++ gcc/testsuite/rust/compile/redef_error5.rs | 8 +++ gcc/testsuite/rust/compile/redef_error6.rs | 13 ++++ gcc/testsuite/rust/compile/shadow1.rs | 7 +++ gcc/testsuite/rust/compile/static_var1.rs | 5 ++ gcc/testsuite/rust/compile/stmt_with_block_err1.rs | 17 +++++ gcc/testsuite/rust/compile/struct_init1.rs | 9 +++ .../compile/torture/arithmetic_expressions1.rs | 30 +++++++++ .../rust/compile/torture/array_type_infer.rs | 4 ++ .../rust/compile/torture/array_zero_length.rs | 4 ++ gcc/testsuite/rust/compile/torture/arrays1.rs | 9 +++ gcc/testsuite/rust/compile/torture/arrays2.rs | 8 +++ gcc/testsuite/rust/compile/torture/arrays3.rs | 6 ++ gcc/testsuite/rust/compile/torture/arrays4.rs | 6 ++ .../rust/compile/torture/arrays_index1.rs | 9 +++ .../rust/compile/torture/arrays_index2.rs | 4 ++ gcc/testsuite/rust/compile/torture/block_expr1.rs | 29 +++++++++ gcc/testsuite/rust/compile/torture/block_expr2.rs | 15 +++++ gcc/testsuite/rust/compile/torture/block_expr3.rs | 14 +++++ gcc/testsuite/rust/compile/torture/block_expr4.rs | 8 +++ gcc/testsuite/rust/compile/torture/block_expr5.rs | 40 ++++++++++++ .../rust/compile/torture/block_expr_parser_bug.rs | 5 ++ gcc/testsuite/rust/compile/torture/borrow1.rs | 17 +++++ gcc/testsuite/rust/compile/torture/cfg_attr.rs | 8 +++ gcc/testsuite/rust/compile/torture/char1.rs | 4 ++ .../rust/compile/torture/comparison_expr1.rs | 38 +++++++++++ gcc/testsuite/rust/compile/torture/compile.exp | 33 ++++++++++ .../compile/torture/compound_assignment_expr1.rs | 23 +++++++ gcc/testsuite/rust/compile/torture/conditional.rs | 11 ++++ gcc/testsuite/rust/compile/torture/constant1.rs | 9 +++ gcc/testsuite/rust/compile/torture/deadcode1.rs | 22 +++++++ gcc/testsuite/rust/compile/torture/deadcode2.rs | 10 +++ gcc/testsuite/rust/compile/torture/deref1.rs | 6 ++ gcc/testsuite/rust/compile/torture/float1.rs | 9 +++ gcc/testsuite/rust/compile/torture/float_types.rs | 13 ++++ .../rust/compile/torture/forward_decl_1.rs | 11 ++++ .../rust/compile/torture/forward_decl_2.rs | 6 ++ .../rust/compile/torture/forward_decl_3.rs | 9 +++ .../rust/compile/torture/forward_decl_4.rs | 9 +++ gcc/testsuite/rust/compile/torture/func1.rs | 7 +++ gcc/testsuite/rust/compile/torture/func2.rs | 20 ++++++ .../rust/compile/torture/function_reference1.rs | 9 +++ .../rust/compile/torture/function_reference2.rs | 9 +++ .../rust/compile/torture/function_reference3.rs | 20 ++++++ .../rust/compile/torture/function_reference4.rs | 9 +++ gcc/testsuite/rust/compile/torture/generics1.rs | 51 +++++++++++++++ gcc/testsuite/rust/compile/torture/generics10.rs | 19 ++++++ gcc/testsuite/rust/compile/torture/generics11.rs | 8 +++ gcc/testsuite/rust/compile/torture/generics12.rs | 17 +++++ gcc/testsuite/rust/compile/torture/generics13.rs | 40 ++++++++++++ gcc/testsuite/rust/compile/torture/generics14.rs | 19 ++++++ gcc/testsuite/rust/compile/torture/generics15.rs | 23 +++++++ gcc/testsuite/rust/compile/torture/generics16.rs | 31 +++++++++ gcc/testsuite/rust/compile/torture/generics17.rs | 19 ++++++ gcc/testsuite/rust/compile/torture/generics18.rs | 20 ++++++ gcc/testsuite/rust/compile/torture/generics19.rs | 12 ++++ gcc/testsuite/rust/compile/torture/generics2.rs | 45 +++++++++++++ gcc/testsuite/rust/compile/torture/generics20.rs | 12 ++++ gcc/testsuite/rust/compile/torture/generics21.rs | 13 ++++ gcc/testsuite/rust/compile/torture/generics22.rs | 13 ++++ gcc/testsuite/rust/compile/torture/generics23.rs | 6 ++ gcc/testsuite/rust/compile/torture/generics24.rs | 34 ++++++++++ gcc/testsuite/rust/compile/torture/generics25.rs | 9 +++ gcc/testsuite/rust/compile/torture/generics26.rs | 21 +++++++ gcc/testsuite/rust/compile/torture/generics27.rs | 16 +++++ gcc/testsuite/rust/compile/torture/generics28.rs | 18 ++++++ gcc/testsuite/rust/compile/torture/generics29.rs | 16 +++++ gcc/testsuite/rust/compile/torture/generics3.rs | 15 +++++ gcc/testsuite/rust/compile/torture/generics30.rs | 16 +++++ gcc/testsuite/rust/compile/torture/generics31.rs | 15 +++++ gcc/testsuite/rust/compile/torture/generics32.rs | 15 +++++ gcc/testsuite/rust/compile/torture/generics4.rs | 15 +++++ gcc/testsuite/rust/compile/torture/generics5.rs | 10 +++ gcc/testsuite/rust/compile/torture/generics6.rs | 15 +++++ gcc/testsuite/rust/compile/torture/generics7.rs | 13 ++++ gcc/testsuite/rust/compile/torture/generics8.rs | 18 ++++++ gcc/testsuite/rust/compile/torture/generics9.rs | 25 ++++++++ .../rust/compile/torture/if_elif_else_expr1.rs | 14 +++++ gcc/testsuite/rust/compile/torture/impl_block1.rs | 23 +++++++ gcc/testsuite/rust/compile/torture/impl_block2.rs | 28 +++++++++ gcc/testsuite/rust/compile/torture/impl_block3.rs | 32 ++++++++++ .../rust/compile/torture/implicit_returns1.rs | 73 ++++++++++++++++++++++ gcc/testsuite/rust/compile/torture/infer_type1.rs | 4 ++ .../rust/compile/torture/integer_inference_var1.rs | 6 ++ .../rust/compile/torture/integer_inference_var2.rs | 6 ++ .../rust/compile/torture/integer_inference_var3.rs | 11 ++++ .../rust/compile/torture/integer_inference_var4.rs | 4 ++ .../rust/compile/torture/integer_inference_var5.rs | 25 ++++++++ .../rust/compile/torture/integer_types.rs | 27 ++++++++ gcc/testsuite/rust/compile/torture/lifetime1.rs | 7 +++ gcc/testsuite/rust/compile/torture/literals1.rs | 11 ++++ gcc/testsuite/rust/compile/torture/loop1.rs | 10 +++ gcc/testsuite/rust/compile/torture/loop2.rs | 14 +++++ gcc/testsuite/rust/compile/torture/loop3.rs | 14 +++++ gcc/testsuite/rust/compile/torture/loop4.rs | 7 +++ gcc/testsuite/rust/compile/torture/loop5.rs | 14 +++++ gcc/testsuite/rust/compile/torture/loop6.rs | 11 ++++ gcc/testsuite/rust/compile/torture/loop7.rs | 13 ++++ gcc/testsuite/rust/compile/torture/methods1.rs | 40 ++++++++++++ gcc/testsuite/rust/compile/torture/methods2.rs | 42 +++++++++++++ gcc/testsuite/rust/compile/torture/methods3.rs | 43 +++++++++++++ .../rust/compile/torture/name_resolve1.rs | 23 +++++++ .../rust/compile/torture/nested_struct1.rs | 18 ++++++ gcc/testsuite/rust/compile/torture/never_type1.rs | 22 +++++++ .../rust/compile/torture/parameter_usage1.rs | 8 +++ gcc/testsuite/rust/compile/torture/parens1.rs | 5 ++ .../rust/compile/torture/raw_identifiers.rs | 3 + .../compile/torture/raw_identifiers_keywords.rs | 3 + .../rust/compile/torture/recursive_fn1.rs | 12 ++++ gcc/testsuite/rust/compile/torture/scoping1.rs | 11 ++++ gcc/testsuite/rust/compile/torture/self_type1.rs | 12 ++++ gcc/testsuite/rust/compile/torture/shadow1.rs | 6 ++ gcc/testsuite/rust/compile/torture/shadow2.rs | 5 ++ .../rust/compile/torture/static_function.rs | 8 +++ gcc/testsuite/rust/compile/torture/static_var1.rs | 6 ++ .../rust/compile/torture/stmt_with_block1.rs | 13 ++++ gcc/testsuite/rust/compile/torture/str1.rs | 7 +++ .../rust/compile/torture/struct_access1.rs | 12 ++++ .../rust/compile/torture/struct_base_init_1.rs | 12 ++++ gcc/testsuite/rust/compile/torture/struct_init.rs | 9 +++ .../rust/compile/torture/struct_init_2.rs | 6 ++ .../rust/compile/torture/struct_init_3.rs | 11 ++++ .../rust/compile/torture/struct_init_4.rs | 10 +++ .../rust/compile/torture/struct_init_5.rs | 10 +++ .../rust/compile/torture/struct_init_6.rs | 10 +++ .../rust/compile/torture/struct_init_7.rs | 10 +++ .../rust/compile/torture/struct_init_8.rs | 7 +++ gcc/testsuite/rust/compile/torture/top_attr.rs | 5 ++ gcc/testsuite/rust/compile/torture/tuple1.rs | 6 ++ gcc/testsuite/rust/compile/torture/tuple2.rs | 5 ++ gcc/testsuite/rust/compile/torture/tuple3.rs | 9 +++ .../rust/compile/torture/tuple_field_access.rs | 6 ++ .../rust/compile/torture/tuple_struct1.rs | 6 ++ .../rust/compile/torture/tuple_struct2.rs | 11 ++++ gcc/testsuite/rust/compile/torture/type-alias1.rs | 6 ++ gcc/testsuite/rust/compile/torture/type-alias2.rs | 8 +++ gcc/testsuite/rust/compile/torture/type_infer1.rs | 22 +++++++ gcc/testsuite/rust/compile/torture/type_infer2.rs | 9 +++ gcc/testsuite/rust/compile/torture/type_infer3.rs | 14 +++++ gcc/testsuite/rust/compile/torture/type_infer4.rs | 11 ++++ gcc/testsuite/rust/compile/torture/type_infer5.rs | 12 ++++ gcc/testsuite/rust/compile/torture/type_infer6.rs | 14 +++++ .../rust/compile/torture/unary_operators.rs | 8 +++ .../rust/compile/torture/underscore_id.rs | 4 ++ gcc/testsuite/rust/compile/torture/unit_type1.rs | 7 +++ gcc/testsuite/rust/compile/torture/unused.rs | 17 +++++ gcc/testsuite/rust/compile/torture/unused1.rs | 16 +++++ gcc/testsuite/rust/compile/torture/usize1.rs | 6 ++ gcc/testsuite/rust/compile/tuple1.rs | 5 ++ gcc/testsuite/rust/compile/tuple_struct1.rs | 10 +++ gcc/testsuite/rust/compile/tuple_struct2.rs | 7 +++ gcc/testsuite/rust/compile/tuple_struct3.rs | 5 ++ gcc/testsuite/rust/compile/type-alias1.rs | 6 ++ gcc/testsuite/rust/compile/type-bindings1.rs | 8 +++ gcc/testsuite/rust/compile/unary_negation.rs | 10 +++ gcc/testsuite/rust/compile/unary_not.rs | 9 +++ .../rust/compile/unconstrained_type_param.rs | 12 ++++ gcc/testsuite/rust/compile/unsafe.rs | 5 ++ .../rust/compile/unterminated_c_comment.rs | 2 + gcc/testsuite/rust/compile/usize1.rs | 5 ++ gcc/testsuite/rust/compile/xfail/lifetime_param.rs | 11 ++++ gcc/testsuite/rust/compile/xfail/slice1.rs | 3 + .../rust/compile/xfail/struct_field_vis.rs | 15 +++++ gcc/testsuite/rust/compile/xfail/xfail.exp | 63 +++++++++++++++++++ gcc/testsuite/rust/execute/torture/block_expr1.rs | 8 +++ gcc/testsuite/rust/execute/torture/empty_main.rs | 3 + gcc/testsuite/rust/execute/torture/execute.exp | 33 ++++++++++ gcc/testsuite/rust/execute/torture/exit_error.rs | 5 ++ gcc/testsuite/rust/execute/torture/func1.rs | 5 ++ 442 files changed, 2894 insertions(+), 2898 deletions(-) delete mode 100644 gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs delete mode 100644 gcc/testsuite/rust.test/compile/array_type_infer.rs delete mode 100644 gcc/testsuite/rust.test/compile/array_zero_length.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays1.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays2.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays3.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays4.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays_index1.rs delete mode 100644 gcc/testsuite/rust.test/compile/arrays_index2.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr1.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr2.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr3.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr4.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr5.rs delete mode 100644 gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs delete mode 100644 gcc/testsuite/rust.test/compile/borrow1.rs delete mode 100644 gcc/testsuite/rust.test/compile/cfg_attr.rs delete mode 100644 gcc/testsuite/rust.test/compile/char1.rs delete mode 100644 gcc/testsuite/rust.test/compile/comparison_expr1.rs delete mode 100644 gcc/testsuite/rust.test/compile/compile.exp delete mode 100644 gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs delete mode 100644 gcc/testsuite/rust.test/compile/conditional.rs delete mode 100644 gcc/testsuite/rust.test/compile/constant1.rs delete mode 100644 gcc/testsuite/rust.test/compile/deadcode1.rs delete mode 100644 gcc/testsuite/rust.test/compile/deadcode2.rs delete mode 100644 gcc/testsuite/rust.test/compile/deref1.rs delete mode 100644 gcc/testsuite/rust.test/compile/float1.rs delete mode 100644 gcc/testsuite/rust.test/compile/float_types.rs delete mode 100644 gcc/testsuite/rust.test/compile/forward_decl_1.rs delete mode 100644 gcc/testsuite/rust.test/compile/forward_decl_2.rs delete mode 100644 gcc/testsuite/rust.test/compile/forward_decl_3.rs delete mode 100644 gcc/testsuite/rust.test/compile/forward_decl_4.rs delete mode 100644 gcc/testsuite/rust.test/compile/func1.rs delete mode 100644 gcc/testsuite/rust.test/compile/func2.rs delete mode 100644 gcc/testsuite/rust.test/compile/function_reference1.rs delete mode 100644 gcc/testsuite/rust.test/compile/function_reference2.rs delete mode 100644 gcc/testsuite/rust.test/compile/function_reference3.rs delete mode 100644 gcc/testsuite/rust.test/compile/function_reference4.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics1.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics10.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics11.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics12.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics13.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics14.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics15.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics16.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics17.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics18.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics19.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics2.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics20.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics21.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics22.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics23.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics24.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics25.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics26.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics27.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics28.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics29.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics3.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics30.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics31.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics32.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics4.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics5.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics6.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics7.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics8.rs delete mode 100644 gcc/testsuite/rust.test/compile/generics9.rs delete mode 100644 gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs delete mode 100644 gcc/testsuite/rust.test/compile/impl_block1.rs delete mode 100644 gcc/testsuite/rust.test/compile/impl_block2.rs delete mode 100644 gcc/testsuite/rust.test/compile/impl_block3.rs delete mode 100644 gcc/testsuite/rust.test/compile/implicit_returns1.rs delete mode 100644 gcc/testsuite/rust.test/compile/infer_type1.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_inference_var1.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_inference_var2.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_inference_var3.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_inference_var4.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_inference_var5.rs delete mode 100644 gcc/testsuite/rust.test/compile/integer_types.rs delete mode 100644 gcc/testsuite/rust.test/compile/lifetime1.rs delete mode 100644 gcc/testsuite/rust.test/compile/literals1.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop1.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop2.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop3.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop4.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop5.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop6.rs delete mode 100644 gcc/testsuite/rust.test/compile/loop7.rs delete mode 100644 gcc/testsuite/rust.test/compile/methods1.rs delete mode 100644 gcc/testsuite/rust.test/compile/methods2.rs delete mode 100644 gcc/testsuite/rust.test/compile/methods3.rs delete mode 100644 gcc/testsuite/rust.test/compile/name_resolve1.rs delete mode 100644 gcc/testsuite/rust.test/compile/nested_struct1.rs delete mode 100644 gcc/testsuite/rust.test/compile/never_type1.rs delete mode 100644 gcc/testsuite/rust.test/compile/parameter_usage1.rs delete mode 100644 gcc/testsuite/rust.test/compile/parens1.rs delete mode 100644 gcc/testsuite/rust.test/compile/raw_identifiers.rs delete mode 100644 gcc/testsuite/rust.test/compile/raw_identifiers_keywords.rs delete mode 100644 gcc/testsuite/rust.test/compile/recursive_fn1.rs delete mode 100644 gcc/testsuite/rust.test/compile/scoping1.rs delete mode 100644 gcc/testsuite/rust.test/compile/self_type1.rs delete mode 100644 gcc/testsuite/rust.test/compile/shadow1.rs delete mode 100644 gcc/testsuite/rust.test/compile/shadow2.rs delete mode 100644 gcc/testsuite/rust.test/compile/static_function.rs delete mode 100644 gcc/testsuite/rust.test/compile/static_var1.rs delete mode 100644 gcc/testsuite/rust.test/compile/stmt_with_block1.rs delete mode 100644 gcc/testsuite/rust.test/compile/str1.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_access1.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_base_init_1.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_2.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_3.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_4.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_5.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_6.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_7.rs delete mode 100644 gcc/testsuite/rust.test/compile/struct_init_8.rs delete mode 100644 gcc/testsuite/rust.test/compile/top_attr.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple1.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple2.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple3.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple_field_access.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple_struct1.rs delete mode 100644 gcc/testsuite/rust.test/compile/tuple_struct2.rs delete mode 100644 gcc/testsuite/rust.test/compile/type-alias1.rs delete mode 100644 gcc/testsuite/rust.test/compile/type-alias2.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer1.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer2.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer3.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer4.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer5.rs delete mode 100644 gcc/testsuite/rust.test/compile/type_infer6.rs delete mode 100644 gcc/testsuite/rust.test/compile/unary_operators.rs delete mode 100644 gcc/testsuite/rust.test/compile/underscore_id.rs delete mode 100644 gcc/testsuite/rust.test/compile/unit_type1.rs delete mode 100644 gcc/testsuite/rust.test/compile/unused.rs delete mode 100644 gcc/testsuite/rust.test/compile/unused1.rs delete mode 100644 gcc/testsuite/rust.test/compile/usize1.rs delete mode 100644 gcc/testsuite/rust.test/execute/block_expr1.rs delete mode 100644 gcc/testsuite/rust.test/execute/empty_main.rs delete mode 100644 gcc/testsuite/rust.test/execute/execute.exp delete mode 100644 gcc/testsuite/rust.test/execute/exit_error.rs delete mode 100644 gcc/testsuite/rust.test/execute/func1.rs delete mode 100644 gcc/testsuite/rust.test/unsupported/lifetime_param.rs delete mode 100644 gcc/testsuite/rust.test/unsupported/slice1.rs delete mode 100644 gcc/testsuite/rust.test/unsupported/struct_field_vis.rs delete mode 100644 gcc/testsuite/rust.test/unsupported/unsupported.exp delete mode 100644 gcc/testsuite/rust.test/xfail_compile/array_empty_list.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/arrays1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/arrays2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/bad_type1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/bad_type2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/break1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/break2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/continue1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/deadcode_err1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/deadcode_err2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/expected_type_args2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/expected_type_args3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/func1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/func2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/func3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/func4.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/func5.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generic-default1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics10.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics11.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics12.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics4.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics5.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics6.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics7.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics8.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/generics9.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/immutable1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/immutable2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/immutable3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/immutable4.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/immutable5.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/implicit_returns_err4.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/issue-407-2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/issue-407.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/method1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/method2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/missing_return1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/never_type_err1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/never_type_err2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/raw_identifiers_bad_keywords.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/raw_identifiers_underscore.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error4.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error5.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/redef_error6.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/shadow1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/static_var1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/stmt_with_block_err1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/struct_init1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/tuple1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/type-alias1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/type-bindings1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/unary_negation.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/unary_not.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/unconstrained_type_param.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/unsafe.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/unterminated_c_comment.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/usize1.rs delete mode 100644 gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp create mode 100644 gcc/testsuite/rust/compile/array_empty_list.rs create mode 100644 gcc/testsuite/rust/compile/arrays1.rs create mode 100644 gcc/testsuite/rust/compile/arrays2.rs create mode 100644 gcc/testsuite/rust/compile/bad_type1.rs create mode 100644 gcc/testsuite/rust/compile/bad_type2.rs create mode 100644 gcc/testsuite/rust/compile/break1.rs create mode 100644 gcc/testsuite/rust/compile/break2.rs create mode 100644 gcc/testsuite/rust/compile/compile.exp create mode 100644 gcc/testsuite/rust/compile/continue1.rs create mode 100644 gcc/testsuite/rust/compile/deadcode_err1.rs create mode 100644 gcc/testsuite/rust/compile/deadcode_err2.rs create mode 100644 gcc/testsuite/rust/compile/expected_type_args2.rs create mode 100644 gcc/testsuite/rust/compile/expected_type_args3.rs create mode 100644 gcc/testsuite/rust/compile/func1.rs create mode 100644 gcc/testsuite/rust/compile/func2.rs create mode 100644 gcc/testsuite/rust/compile/func3.rs create mode 100644 gcc/testsuite/rust/compile/func4.rs create mode 100644 gcc/testsuite/rust/compile/func5.rs create mode 100644 gcc/testsuite/rust/compile/generic-default1.rs create mode 100644 gcc/testsuite/rust/compile/generics1.rs create mode 100644 gcc/testsuite/rust/compile/generics10.rs create mode 100644 gcc/testsuite/rust/compile/generics11.rs create mode 100644 gcc/testsuite/rust/compile/generics12.rs create mode 100644 gcc/testsuite/rust/compile/generics2.rs create mode 100644 gcc/testsuite/rust/compile/generics3.rs create mode 100644 gcc/testsuite/rust/compile/generics4.rs create mode 100644 gcc/testsuite/rust/compile/generics5.rs create mode 100644 gcc/testsuite/rust/compile/generics6.rs create mode 100644 gcc/testsuite/rust/compile/generics7.rs create mode 100644 gcc/testsuite/rust/compile/generics8.rs create mode 100644 gcc/testsuite/rust/compile/generics9.rs create mode 100644 gcc/testsuite/rust/compile/immutable1.rs create mode 100644 gcc/testsuite/rust/compile/immutable2.rs create mode 100644 gcc/testsuite/rust/compile/immutable3.rs create mode 100644 gcc/testsuite/rust/compile/immutable4.rs create mode 100644 gcc/testsuite/rust/compile/immutable5.rs create mode 100644 gcc/testsuite/rust/compile/implicit_returns_err1.rs create mode 100644 gcc/testsuite/rust/compile/implicit_returns_err2.rs create mode 100644 gcc/testsuite/rust/compile/implicit_returns_err3.rs create mode 100644 gcc/testsuite/rust/compile/implicit_returns_err4.rs create mode 100644 gcc/testsuite/rust/compile/issue-407-2.rs create mode 100644 gcc/testsuite/rust/compile/issue-407.rs create mode 100644 gcc/testsuite/rust/compile/method1.rs create mode 100644 gcc/testsuite/rust/compile/method2.rs create mode 100644 gcc/testsuite/rust/compile/missing_return1.rs create mode 100644 gcc/testsuite/rust/compile/never_type_err1.rs create mode 100644 gcc/testsuite/rust/compile/never_type_err2.rs create mode 100644 gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs create mode 100644 gcc/testsuite/rust/compile/raw_identifiers_underscore.rs create mode 100644 gcc/testsuite/rust/compile/redef_error1.rs create mode 100644 gcc/testsuite/rust/compile/redef_error2.rs create mode 100644 gcc/testsuite/rust/compile/redef_error3.rs create mode 100644 gcc/testsuite/rust/compile/redef_error4.rs create mode 100644 gcc/testsuite/rust/compile/redef_error5.rs create mode 100644 gcc/testsuite/rust/compile/redef_error6.rs create mode 100644 gcc/testsuite/rust/compile/shadow1.rs create mode 100644 gcc/testsuite/rust/compile/static_var1.rs create mode 100644 gcc/testsuite/rust/compile/stmt_with_block_err1.rs create mode 100644 gcc/testsuite/rust/compile/struct_init1.rs create mode 100644 gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs create mode 100644 gcc/testsuite/rust/compile/torture/array_type_infer.rs create mode 100644 gcc/testsuite/rust/compile/torture/array_zero_length.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays1.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays2.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays3.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays4.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays_index1.rs create mode 100644 gcc/testsuite/rust/compile/torture/arrays_index2.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr1.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr2.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr3.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr4.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr5.rs create mode 100644 gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs create mode 100644 gcc/testsuite/rust/compile/torture/borrow1.rs create mode 100644 gcc/testsuite/rust/compile/torture/cfg_attr.rs create mode 100644 gcc/testsuite/rust/compile/torture/char1.rs create mode 100644 gcc/testsuite/rust/compile/torture/comparison_expr1.rs create mode 100644 gcc/testsuite/rust/compile/torture/compile.exp create mode 100644 gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs create mode 100644 gcc/testsuite/rust/compile/torture/conditional.rs create mode 100644 gcc/testsuite/rust/compile/torture/constant1.rs create mode 100644 gcc/testsuite/rust/compile/torture/deadcode1.rs create mode 100644 gcc/testsuite/rust/compile/torture/deadcode2.rs create mode 100644 gcc/testsuite/rust/compile/torture/deref1.rs create mode 100644 gcc/testsuite/rust/compile/torture/float1.rs create mode 100644 gcc/testsuite/rust/compile/torture/float_types.rs create mode 100644 gcc/testsuite/rust/compile/torture/forward_decl_1.rs create mode 100644 gcc/testsuite/rust/compile/torture/forward_decl_2.rs create mode 100644 gcc/testsuite/rust/compile/torture/forward_decl_3.rs create mode 100644 gcc/testsuite/rust/compile/torture/forward_decl_4.rs create mode 100644 gcc/testsuite/rust/compile/torture/func1.rs create mode 100644 gcc/testsuite/rust/compile/torture/func2.rs create mode 100644 gcc/testsuite/rust/compile/torture/function_reference1.rs create mode 100644 gcc/testsuite/rust/compile/torture/function_reference2.rs create mode 100644 gcc/testsuite/rust/compile/torture/function_reference3.rs create mode 100644 gcc/testsuite/rust/compile/torture/function_reference4.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics1.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics10.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics11.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics12.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics13.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics14.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics15.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics16.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics17.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics18.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics19.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics2.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics20.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics21.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics22.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics23.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics24.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics25.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics26.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics27.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics28.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics29.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics3.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics30.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics31.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics32.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics4.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics5.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics6.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics7.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics8.rs create mode 100644 gcc/testsuite/rust/compile/torture/generics9.rs create mode 100644 gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs create mode 100644 gcc/testsuite/rust/compile/torture/impl_block1.rs create mode 100644 gcc/testsuite/rust/compile/torture/impl_block2.rs create mode 100644 gcc/testsuite/rust/compile/torture/impl_block3.rs create mode 100644 gcc/testsuite/rust/compile/torture/implicit_returns1.rs create mode 100644 gcc/testsuite/rust/compile/torture/infer_type1.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_inference_var1.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_inference_var2.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_inference_var3.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_inference_var4.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_inference_var5.rs create mode 100644 gcc/testsuite/rust/compile/torture/integer_types.rs create mode 100644 gcc/testsuite/rust/compile/torture/lifetime1.rs create mode 100644 gcc/testsuite/rust/compile/torture/literals1.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop1.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop2.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop3.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop4.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop5.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop6.rs create mode 100644 gcc/testsuite/rust/compile/torture/loop7.rs create mode 100644 gcc/testsuite/rust/compile/torture/methods1.rs create mode 100644 gcc/testsuite/rust/compile/torture/methods2.rs create mode 100644 gcc/testsuite/rust/compile/torture/methods3.rs create mode 100644 gcc/testsuite/rust/compile/torture/name_resolve1.rs create mode 100644 gcc/testsuite/rust/compile/torture/nested_struct1.rs create mode 100644 gcc/testsuite/rust/compile/torture/never_type1.rs create mode 100644 gcc/testsuite/rust/compile/torture/parameter_usage1.rs create mode 100644 gcc/testsuite/rust/compile/torture/parens1.rs create mode 100644 gcc/testsuite/rust/compile/torture/raw_identifiers.rs create mode 100644 gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs create mode 100644 gcc/testsuite/rust/compile/torture/recursive_fn1.rs create mode 100644 gcc/testsuite/rust/compile/torture/scoping1.rs create mode 100644 gcc/testsuite/rust/compile/torture/self_type1.rs create mode 100644 gcc/testsuite/rust/compile/torture/shadow1.rs create mode 100644 gcc/testsuite/rust/compile/torture/shadow2.rs create mode 100644 gcc/testsuite/rust/compile/torture/static_function.rs create mode 100644 gcc/testsuite/rust/compile/torture/static_var1.rs create mode 100644 gcc/testsuite/rust/compile/torture/stmt_with_block1.rs create mode 100644 gcc/testsuite/rust/compile/torture/str1.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_access1.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_base_init_1.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_2.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_3.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_4.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_5.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_6.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_7.rs create mode 100644 gcc/testsuite/rust/compile/torture/struct_init_8.rs create mode 100644 gcc/testsuite/rust/compile/torture/top_attr.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple1.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple2.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple3.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple_field_access.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple_struct1.rs create mode 100644 gcc/testsuite/rust/compile/torture/tuple_struct2.rs create mode 100644 gcc/testsuite/rust/compile/torture/type-alias1.rs create mode 100644 gcc/testsuite/rust/compile/torture/type-alias2.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer1.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer2.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer3.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer4.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer5.rs create mode 100644 gcc/testsuite/rust/compile/torture/type_infer6.rs create mode 100644 gcc/testsuite/rust/compile/torture/unary_operators.rs create mode 100644 gcc/testsuite/rust/compile/torture/underscore_id.rs create mode 100644 gcc/testsuite/rust/compile/torture/unit_type1.rs create mode 100644 gcc/testsuite/rust/compile/torture/unused.rs create mode 100644 gcc/testsuite/rust/compile/torture/unused1.rs create mode 100644 gcc/testsuite/rust/compile/torture/usize1.rs create mode 100644 gcc/testsuite/rust/compile/tuple1.rs create mode 100644 gcc/testsuite/rust/compile/tuple_struct1.rs create mode 100644 gcc/testsuite/rust/compile/tuple_struct2.rs create mode 100644 gcc/testsuite/rust/compile/tuple_struct3.rs create mode 100644 gcc/testsuite/rust/compile/type-alias1.rs create mode 100644 gcc/testsuite/rust/compile/type-bindings1.rs create mode 100644 gcc/testsuite/rust/compile/unary_negation.rs create mode 100644 gcc/testsuite/rust/compile/unary_not.rs create mode 100644 gcc/testsuite/rust/compile/unconstrained_type_param.rs create mode 100644 gcc/testsuite/rust/compile/unsafe.rs create mode 100644 gcc/testsuite/rust/compile/unterminated_c_comment.rs create mode 100644 gcc/testsuite/rust/compile/usize1.rs create mode 100644 gcc/testsuite/rust/compile/xfail/lifetime_param.rs create mode 100644 gcc/testsuite/rust/compile/xfail/slice1.rs create mode 100644 gcc/testsuite/rust/compile/xfail/struct_field_vis.rs create mode 100644 gcc/testsuite/rust/compile/xfail/xfail.exp create mode 100644 gcc/testsuite/rust/execute/torture/block_expr1.rs create mode 100644 gcc/testsuite/rust/execute/torture/empty_main.rs create mode 100644 gcc/testsuite/rust/execute/torture/execute.exp create mode 100644 gcc/testsuite/rust/execute/torture/exit_error.rs create mode 100644 gcc/testsuite/rust/execute/torture/func1.rs (limited to 'gcc') diff --git a/gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs b/gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs deleted file mode 100644 index 4c3ee77..0000000 --- a/gcc/testsuite/rust.test/compile/arithmetic_expressions1.rs +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-prune-output "warning: unused name" } as there are many of these expected. - -fn main() { - let a: i32 = 1; - let b: f32 = 5f32; - let c: bool = true; - - let a1: i32 = a + 1; - let a2: i32 = a - 2; - let a3: i32 = a * 3; - let a4: i32 = a / 4; - let a5: i32 = a % 5; - - let b1: f32 = b + 1f32; - let b2: f32 = b - 2f32; - let b3: f32 = b * 3f32; - let b4: f32 = b / 4f32; - // let b5: f32 = b % 5f32; - - let aa1: i32 = a & 1; - let aa2: i32 = a | 2; - let aa2: i32 = a ^ 3; - - let c1: bool = c & true; - let c2: bool = c | false; - let c3: bool = c ^ true; - - let aaa1: i32 = a << 1; - let aaa2: i32 = a >> 2; -} diff --git a/gcc/testsuite/rust.test/compile/array_type_infer.rs b/gcc/testsuite/rust.test/compile/array_type_infer.rs deleted file mode 100644 index 6f21bf2..0000000 --- a/gcc/testsuite/rust.test/compile/array_type_infer.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let arr: [_; 5] = [1, 2, 3, 4, 5]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/array_zero_length.rs b/gcc/testsuite/rust.test/compile/array_zero_length.rs deleted file mode 100644 index 3155b1c..0000000 --- a/gcc/testsuite/rust.test/compile/array_zero_length.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let arr = ["Hello"; 0]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/arrays1.rs b/gcc/testsuite/rust.test/compile/arrays1.rs deleted file mode 100644 index 7250e0f..0000000 --- a/gcc/testsuite/rust.test/compile/arrays1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let xs: [i32; 5] = [1, 2, 3, 4, 5]; - let xy = [6, 7, 8]; - - let a = xs[0]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b = xy[2]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/arrays2.rs b/gcc/testsuite/rust.test/compile/arrays2.rs deleted file mode 100644 index 55491f3..0000000 --- a/gcc/testsuite/rust.test/compile/arrays2.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn main() { - let mut array: [i32; 3] = [0; 3]; - - let a = array[0]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let mut c; - c = array[2]; -} diff --git a/gcc/testsuite/rust.test/compile/arrays3.rs b/gcc/testsuite/rust.test/compile/arrays3.rs deleted file mode 100644 index 372d969..0000000 --- a/gcc/testsuite/rust.test/compile/arrays3.rs +++ /dev/null @@ -1,6 +0,0 @@ -const TEST: usize = 6; - -fn main() { - let a: [_; 12] = [123; TEST * 2]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/arrays4.rs b/gcc/testsuite/rust.test/compile/arrays4.rs deleted file mode 100644 index ac317fe..0000000 --- a/gcc/testsuite/rust.test/compile/arrays4.rs +++ /dev/null @@ -1,6 +0,0 @@ -const TEST: usize = 4; - -fn main() { - let a: [_; TEST + 1 + 2] = [123; 7]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/arrays_index1.rs b/gcc/testsuite/rust.test/compile/arrays_index1.rs deleted file mode 100644 index 1fe5de9..0000000 --- a/gcc/testsuite/rust.test/compile/arrays_index1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let mut array: [i32; 3] = [0; 3]; - - let a = array[0]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let x = 0; - let mut c; - c = array[x+1]; -} diff --git a/gcc/testsuite/rust.test/compile/arrays_index2.rs b/gcc/testsuite/rust.test/compile/arrays_index2.rs deleted file mode 100644 index f9bee77..0000000 --- a/gcc/testsuite/rust.test/compile/arrays_index2.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let mut array: [i32; 3] = [0; 3]; - array[0] = 1; -} diff --git a/gcc/testsuite/rust.test/compile/block_expr1.rs b/gcc/testsuite/rust.test/compile/block_expr1.rs deleted file mode 100644 index 011cc1f..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr1.rs +++ /dev/null @@ -1,29 +0,0 @@ -fn test3(x: i32) -> i32 { - if x > 1 { - 5 - } else { - 0 - } -} - -fn test5(x: i32) -> i32 { - if x > 1 { - if x == 5 { - 7 - } else { - 9 - } - } else { - 0 - } -} - -fn main() { - let call3: i32 = { test3(3) + 2 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call5 = { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let a = test5(5); - a + 1 - }; -} diff --git a/gcc/testsuite/rust.test/compile/block_expr2.rs b/gcc/testsuite/rust.test/compile/block_expr2.rs deleted file mode 100644 index 7c3ff69..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr2.rs +++ /dev/null @@ -1,15 +0,0 @@ -fn test() -> i32 { - 123 -} - -fn main() { - let a = { test() }; - let b = { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - if a > 10 { - a - 1 - } else { - a + 1 - } - }; -} diff --git a/gcc/testsuite/rust.test/compile/block_expr3.rs b/gcc/testsuite/rust.test/compile/block_expr3.rs deleted file mode 100644 index 6914b63..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr3.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let x = 111; - - let a = { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - if x == 10 { - 123 - } else if x < 10 { - 456 - } else { - 789 - } - }; -} diff --git a/gcc/testsuite/rust.test/compile/block_expr4.rs b/gcc/testsuite/rust.test/compile/block_expr4.rs deleted file mode 100644 index da033ef..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr4.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn foo() -> isize { - 0 -} - -fn main() { - let a = foo(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/block_expr5.rs b/gcc/testsuite/rust.test/compile/block_expr5.rs deleted file mode 100644 index 7e164a9..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr5.rs +++ /dev/null @@ -1,40 +0,0 @@ -fn foo() -> i32 { - 0 -} - -fn bar() -> i32 { - foo(); - foo() -} - -fn baz() -> i32 { - { - bar(); - bar(); - } - { - bar(); - bar() - }; - { - bar(); - bar() - } -} - -fn test(ok: i32) -> i32 { - if ok >= 1 { - foo() - } else if ok <= -1 { - bar() - } else { - baz() - } -} - -fn main() { - let a = foo(); - let b = bar(); - let c = baz(); - test(a + b + c); -} diff --git a/gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs b/gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs deleted file mode 100644 index 468aace..0000000 --- a/gcc/testsuite/rust.test/compile/block_expr_parser_bug.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a = 123; - let b = if a > 10 { a - 1 } else { a + 1 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/borrow1.rs b/gcc/testsuite/rust.test/compile/borrow1.rs deleted file mode 100644 index 8afa474..0000000 --- a/gcc/testsuite/rust.test/compile/borrow1.rs +++ /dev/null @@ -1,17 +0,0 @@ -fn main() { - let a: i32; - a = 123; - - let b: &i32; - b = &a; - - let aa; - aa = 456; - let bb: &_; - bb = &a; - - let aaa; - aaa = 123; - let bbb; - bbb = &aaa; -} diff --git a/gcc/testsuite/rust.test/compile/cfg_attr.rs b/gcc/testsuite/rust.test/compile/cfg_attr.rs deleted file mode 100644 index 1915f34..0000000 --- a/gcc/testsuite/rust.test/compile/cfg_attr.rs +++ /dev/null @@ -1,8 +0,0 @@ -use std::env; // Add one line so gccrs doesn't believe we're parsing a shebang - -#[cfg_attr(feature = "somefeature", attribute = "someattr")] -struct Feature; -// { dg-warning "unused name" "" { target *-*-* } .-1 } - -fn main() { -} diff --git a/gcc/testsuite/rust.test/compile/char1.rs b/gcc/testsuite/rust.test/compile/char1.rs deleted file mode 100644 index 73835c2..0000000 --- a/gcc/testsuite/rust.test/compile/char1.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let a; - a = 'c'; -} diff --git a/gcc/testsuite/rust.test/compile/comparison_expr1.rs b/gcc/testsuite/rust.test/compile/comparison_expr1.rs deleted file mode 100644 index ed71ec8..0000000 --- a/gcc/testsuite/rust.test/compile/comparison_expr1.rs +++ /dev/null @@ -1,38 +0,0 @@ -fn is_zero(x: i32) -> bool { - x == 0 -} - -fn is_not_zero(x: i32) -> bool { - x != 0 -} - -fn is_positive(x: i32) -> bool { - x > 0 -} - -fn is_negative(x: i32) -> bool { - x < 0 -} - -fn is_positive_or_zero(x: i32) -> bool { - x >= 0 -} - -fn is_negative_or_zero(x: i32) -> bool { - x <= 0 -} - -fn main() { - let a: bool = is_zero(1); - let b: bool = is_not_zero(2); - let c: bool = is_positive(3); - let d: bool = is_negative(4); - let e: bool = is_positive_or_zero(5); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let f: bool = is_negative_or_zero(6); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let g: bool = a || b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let h: bool = c && d; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/compile.exp b/gcc/testsuite/rust.test/compile/compile.exp deleted file mode 100644 index 7c92d7a..0000000 --- a/gcc/testsuite/rust.test/compile/compile.exp +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2021 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# -# Rust torture test suite. -# - -# Load support procs. -load_lib rust-dg.exp - -# Initialize `dg'. -dg-init - -# Main loop. -set saved-dg-do-what-default ${dg-do-what-default} - -set dg-do-what-default "compile" -gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" -set dg-do-what-default ${saved-dg-do-what-default} - -# All done. -dg-finish diff --git a/gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs b/gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs deleted file mode 100644 index 1ff0d24..0000000 --- a/gcc/testsuite/rust.test/compile/compound_assignment_expr1.rs +++ /dev/null @@ -1,23 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 2; - let mut c = 3; - let mut d = 4; - let mut e = 5; - let mut f = 6; - let mut g = 7; - let mut h = 8; - let mut i = 9; - let mut j = 10; - - a += 1; - b -= 2; - c *= 3; - d /= 4; - e %= 5; - f &= 6; - g |= 7; - h ^= 8; - i <<= 9; - j >>= 10; -} diff --git a/gcc/testsuite/rust.test/compile/conditional.rs b/gcc/testsuite/rust.test/compile/conditional.rs deleted file mode 100644 index 2bb3a95..0000000 --- a/gcc/testsuite/rust.test/compile/conditional.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let mut x = 5; - - if x == 5 { - x = 1; - } else if x == 3 { - x = 2; - } else { - x = 3; - } -} diff --git a/gcc/testsuite/rust.test/compile/constant1.rs b/gcc/testsuite/rust.test/compile/constant1.rs deleted file mode 100644 index 57bcb0b..0000000 --- a/gcc/testsuite/rust.test/compile/constant1.rs +++ /dev/null @@ -1,9 +0,0 @@ -const TEST_CONST:i32 = 10; - -fn main() { - let mut x = TEST_CONST; - x = x + 1; - - let mut y = x + TEST_CONST; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/deadcode1.rs b/gcc/testsuite/rust.test/compile/deadcode1.rs deleted file mode 100644 index 1ba646f..0000000 --- a/gcc/testsuite/rust.test/compile/deadcode1.rs +++ /dev/null @@ -1,22 +0,0 @@ -fn test1() -> i32 { - return 2; - // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } - 1 -} - -fn test2(x: i32) -> i32 { - if x > 1 { - return 5; - } else { - return 0; - } - // { dg-warning "unreachable statement" "" { target *-*-* } .+1 } - return 1; -} - -fn main() { - let call1 = test1(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call2 = test2(2); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/deadcode2.rs b/gcc/testsuite/rust.test/compile/deadcode2.rs deleted file mode 100644 index ba7d5f0..0000000 --- a/gcc/testsuite/rust.test/compile/deadcode2.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn foo() -> i32 { - return 1; - - let a = -1; // { dg-warning "unreachable statement" } - a // { dg-warning "unreachable expression" } -} - -fn main() { - foo(); -} diff --git a/gcc/testsuite/rust.test/compile/deref1.rs b/gcc/testsuite/rust.test/compile/deref1.rs deleted file mode 100644 index d715ce9..0000000 --- a/gcc/testsuite/rust.test/compile/deref1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a = 123; - let b = &a; - let c = *b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/float1.rs b/gcc/testsuite/rust.test/compile/float1.rs deleted file mode 100644 index fbe8938..0000000 --- a/gcc/testsuite/rust.test/compile/float1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(x: f32) -> f32 { - return x + 1.0; -} - -fn main() { - let a_float = 5.123; - let call_test = test(a_float + 1.0); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/float_types.rs b/gcc/testsuite/rust.test/compile/float_types.rs deleted file mode 100644 index 7d3d298..0000000 --- a/gcc/testsuite/rust.test/compile/float_types.rs +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-prune-output "warning: unused name" } as there are many of these expected. - -fn main() { - let a1: f32 = 1.0f32; - let a2: f64 = 2.0f64; - let a3: f32 = 3f32; - let a4: f64 = 4f64; - - let b1 = 1.0f32; - let b2 = 2.0f64; - let b3 = 3f32; - let b4 = 4f64; -} diff --git a/gcc/testsuite/rust.test/compile/forward_decl_1.rs b/gcc/testsuite/rust.test/compile/forward_decl_1.rs deleted file mode 100644 index b8403f9..0000000 --- a/gcc/testsuite/rust.test/compile/forward_decl_1.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let mut an_integer = 5; - an_integer = test(1) + 3; - - let call_test = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} - -fn test(x: i32) -> i32 { - return x + 1; -} diff --git a/gcc/testsuite/rust.test/compile/forward_decl_2.rs b/gcc/testsuite/rust.test/compile/forward_decl_2.rs deleted file mode 100644 index efc3b0d..0000000 --- a/gcc/testsuite/rust.test/compile/forward_decl_2.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let y = x + 1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} - -static x: i32 = 3; diff --git a/gcc/testsuite/rust.test/compile/forward_decl_3.rs b/gcc/testsuite/rust.test/compile/forward_decl_3.rs deleted file mode 100644 index 0028ca5..0000000 --- a/gcc/testsuite/rust.test/compile/forward_decl_3.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let struct_test = Foo { one: 1, two: 2 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} - -struct Foo { - one: i32, - two: i32, -} diff --git a/gcc/testsuite/rust.test/compile/forward_decl_4.rs b/gcc/testsuite/rust.test/compile/forward_decl_4.rs deleted file mode 100644 index e1fe51f..0000000 --- a/gcc/testsuite/rust.test/compile/forward_decl_4.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let mut x = TEST_CONST; - x = x + 1; - - let mut y = x + TEST_CONST; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} - -const TEST_CONST: i32 = 10; diff --git a/gcc/testsuite/rust.test/compile/func1.rs b/gcc/testsuite/rust.test/compile/func1.rs deleted file mode 100644 index df1789e..0000000 --- a/gcc/testsuite/rust.test/compile/func1.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn not_void() -> i32 { - 8 -} - -fn main() { - not_void(); -} diff --git a/gcc/testsuite/rust.test/compile/func2.rs b/gcc/testsuite/rust.test/compile/func2.rs deleted file mode 100644 index f7dd556..0000000 --- a/gcc/testsuite/rust.test/compile/func2.rs +++ /dev/null @@ -1,20 +0,0 @@ -fn foo() { - 8; - 8; -} - -fn bar() -> i32 { - 8; - 8 -} - -fn baz() -> i32 { - 8; - return 8; -} - -fn main() { - let a = foo(); // { dg-warning "unused name" } - let b = bar(); // { dg-warning "unused name" } - let c = baz(); // { dg-warning "unused name" } -} diff --git a/gcc/testsuite/rust.test/compile/function_reference1.rs b/gcc/testsuite/rust.test/compile/function_reference1.rs deleted file mode 100644 index dfbd01b..0000000 --- a/gcc/testsuite/rust.test/compile/function_reference1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(a: i32) -> i32 { - a + 1 -} - -fn main() { - let a = test; - let b = a(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/function_reference2.rs b/gcc/testsuite/rust.test/compile/function_reference2.rs deleted file mode 100644 index 3c3e7c1..0000000 --- a/gcc/testsuite/rust.test/compile/function_reference2.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(a: i32) -> i32 { - a + 1 -} - -fn main() { - let a: fn(i32) -> i32 = test; - let b = a(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/function_reference3.rs b/gcc/testsuite/rust.test/compile/function_reference3.rs deleted file mode 100644 index 0cb3181..0000000 --- a/gcc/testsuite/rust.test/compile/function_reference3.rs +++ /dev/null @@ -1,20 +0,0 @@ -struct Foo { - a: fn(i32) -> i32, - b: i32, -} - -fn test(a: i32) -> i32 { - a + 1 -} - -fn main() { - let a = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b: fn(i32) -> i32 = test; - let c = b(1); - - let d = Foo { a: test, b: c }; - let e = (d.a)(d.b); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/function_reference4.rs b/gcc/testsuite/rust.test/compile/function_reference4.rs deleted file mode 100644 index 977e4c9..0000000 --- a/gcc/testsuite/rust.test/compile/function_reference4.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(a: i32) -> i32 { - a + 1 -} - -fn main() { - let a: fn(_) -> _ = test; - let b = a(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics1.rs b/gcc/testsuite/rust.test/compile/generics1.rs deleted file mode 100644 index 87bcdc8..0000000 --- a/gcc/testsuite/rust.test/compile/generics1.rs +++ /dev/null @@ -1,51 +0,0 @@ -struct Foo { - a: f32, - b: bool, -} - -struct GenericStruct { - a: T, - b: usize, -} - -fn main() { - let a1; - a1 = Foo { a: 1.0, b: false }; - - let b1: f32 = a1.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c1: bool = a1.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a2: GenericStruct; - a2 = GenericStruct:: { a: 1, b: 456 }; - - let b2: i8 = a2.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c2: usize = a2.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a3; - a3 = GenericStruct:: { a: 123, b: 456 }; - - let b3: i32 = a3.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c3: usize = a3.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a4; - a4 = GenericStruct { a: 1.0, b: 456 }; - - let b4: f32 = a4.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c4: usize = a4.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a5; - a5 = GenericStruct::<_> { a: true, b: 456 }; - - let b5: bool = a5.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c5: usize = a5.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics10.rs b/gcc/testsuite/rust.test/compile/generics10.rs deleted file mode 100644 index 9526149..0000000 --- a/gcc/testsuite/rust.test/compile/generics10.rs +++ /dev/null @@ -1,19 +0,0 @@ -struct Foo(T); - -struct Bar { - a: Foo, - b: bool, -} - -fn test(a: Bar) -> Foo { - a.a -} - -fn main() { - let a: Bar = Bar:: { - a: Foo::(123), - b: true, - }; - let b: Foo = test(a); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics11.rs b/gcc/testsuite/rust.test/compile/generics11.rs deleted file mode 100644 index 3c8f5ba..0000000 --- a/gcc/testsuite/rust.test/compile/generics11.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo(T, u32); - -type TypeAlias = Foo; - -fn main() { - let a: Foo; - a = TypeAlias { 0: 123, 1: 456 }; -} diff --git a/gcc/testsuite/rust.test/compile/generics12.rs b/gcc/testsuite/rust.test/compile/generics12.rs deleted file mode 100644 index f31be58..0000000 --- a/gcc/testsuite/rust.test/compile/generics12.rs +++ /dev/null @@ -1,17 +0,0 @@ -struct GenericStruct(T, usize); - -impl GenericStruct { - fn new(a: i32, b: usize) -> Self { - GenericStruct(a, b) - } - - fn get(self) -> i32 { - self.0 - } -} - -fn main() { - let a: GenericStruct = GenericStruct::::new(123, 456); - let aa: i32 = a.get(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics13.rs b/gcc/testsuite/rust.test/compile/generics13.rs deleted file mode 100644 index 5c8795d..0000000 --- a/gcc/testsuite/rust.test/compile/generics13.rs +++ /dev/null @@ -1,40 +0,0 @@ -struct Foo { - a: A, -} - -struct GenericStruct { - a: T, - b: usize, -} - -impl Foo { - fn test() -> i32 { - 123 - } - - fn bar(self) -> isize { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - self.a - } -} - -fn main() { - let a: i32 = Foo::test(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a2: GenericStruct; - a2 = GenericStruct:: { a: 1, b: 456 }; - - let b2: i8 = a2.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c2: usize = a2.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a4; - a4 = GenericStruct { a: 1.0, b: 456 }; - - let b4: f32 = a4.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c4: usize = a4.b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics14.rs b/gcc/testsuite/rust.test/compile/generics14.rs deleted file mode 100644 index aa8fbf2..0000000 --- a/gcc/testsuite/rust.test/compile/generics14.rs +++ /dev/null @@ -1,19 +0,0 @@ -struct Foo { - a: A, -} - -impl Foo { - fn test() -> i32 { - 123 - } - - fn bar(self) -> isize { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - self.a - } -} - -fn main() { - let a: i32 = Foo::test(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics15.rs b/gcc/testsuite/rust.test/compile/generics15.rs deleted file mode 100644 index c16a67c..0000000 --- a/gcc/testsuite/rust.test/compile/generics15.rs +++ /dev/null @@ -1,23 +0,0 @@ -struct Foo(T, bool); - -impl Foo { - fn bar(self) -> i32 { - self.0 - } -} - -impl Foo { - fn bar(self) -> f32 { - self.0 - } -} - -fn main() { - let a = Foo(123, true); - let aa = a.bar(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b = Foo(456f32, true); - let bb = b.bar(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics16.rs b/gcc/testsuite/rust.test/compile/generics16.rs deleted file mode 100644 index 15b9d7b..0000000 --- a/gcc/testsuite/rust.test/compile/generics16.rs +++ /dev/null @@ -1,31 +0,0 @@ -struct Foo(T, bool); - -impl Foo { - fn new() -> Self { - Foo(123, true) - } - - fn bar(self) -> i32 { - self.0 - } -} - -impl Foo { - fn new() -> Self { - Foo(123f32, true) - } - - fn bar(self) -> f32 { - self.0 - } -} - -fn main() { - let a = Foo::::new(); - let aa: i32 = a.bar(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b = Foo::::new(); - let bb: f32 = b.bar(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics17.rs b/gcc/testsuite/rust.test/compile/generics17.rs deleted file mode 100644 index d523149..0000000 --- a/gcc/testsuite/rust.test/compile/generics17.rs +++ /dev/null @@ -1,19 +0,0 @@ -struct Foo(T); - -impl Foo { - fn new(a: X) -> Self { - Self(a) - } - - fn test(self) -> X { - self.0 - } -} - -fn main() { - let a; - a = Foo::new(123); - - let b = a.test(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics18.rs b/gcc/testsuite/rust.test/compile/generics18.rs deleted file mode 100644 index 904cb9a..0000000 --- a/gcc/testsuite/rust.test/compile/generics18.rs +++ /dev/null @@ -1,20 +0,0 @@ -struct Foo(T); - -impl Foo { - fn new(a: X) -> Self { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - Self(a) - } - - fn test(self) -> X { - self.0 - } -} - -fn main() { - let a; - a = Foo(123); - - let b = a.test(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics19.rs b/gcc/testsuite/rust.test/compile/generics19.rs deleted file mode 100644 index 9a5b4cb..0000000 --- a/gcc/testsuite/rust.test/compile/generics19.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(X, Y); - -impl Foo { - fn new(a: T) -> Self { - Self(123, a) - } -} - -fn main() { - let a; - a = Foo::new(false); -} diff --git a/gcc/testsuite/rust.test/compile/generics2.rs b/gcc/testsuite/rust.test/compile/generics2.rs deleted file mode 100644 index da0ab99..0000000 --- a/gcc/testsuite/rust.test/compile/generics2.rs +++ /dev/null @@ -1,45 +0,0 @@ -struct Foo(f32, bool); - -struct GenericStruct(T, usize); - -fn main() { - let a1; - a1 = Foo(1.0, false); - - let b1: f32 = a1.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c1: bool = a1.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a2: GenericStruct; - a2 = GenericStruct::(1, 456); - - let b2: i8 = a2.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c2: usize = a2.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a3; - a3 = GenericStruct::(123, 456); - - let b3: i32 = a3.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c3: usize = a3.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a4; - a4 = GenericStruct(1.0, 456); - - let b4: f32 = a4.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c4: usize = a4.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a5; - a5 = GenericStruct::<_>(true, 456); - - let b5: bool = a5.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let c5: usize = a5.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics20.rs b/gcc/testsuite/rust.test/compile/generics20.rs deleted file mode 100644 index 8fe1cff..0000000 --- a/gcc/testsuite/rust.test/compile/generics20.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn new(a: T, b: T) -> Self { - Self(a, b) - } -} - -fn main() { - let a; - a = Foo::new(123, 456); -} diff --git a/gcc/testsuite/rust.test/compile/generics21.rs b/gcc/testsuite/rust.test/compile/generics21.rs deleted file mode 100644 index dc4e935..0000000 --- a/gcc/testsuite/rust.test/compile/generics21.rs +++ /dev/null @@ -1,13 +0,0 @@ -fn callee(t: &T) -> i32 { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - 32 -} - -fn caller(t: i32) -> i32 { - callee(&t) -} - -fn main() { - let a; - a = caller(123); -} diff --git a/gcc/testsuite/rust.test/compile/generics22.rs b/gcc/testsuite/rust.test/compile/generics22.rs deleted file mode 100644 index 465ebb0..0000000 --- a/gcc/testsuite/rust.test/compile/generics22.rs +++ /dev/null @@ -1,13 +0,0 @@ -fn callee(t: (T, bool)) -> i32 { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - 32 -} - -fn caller(t: i32) -> i32 { - callee((t, false)) -} - -fn main() { - let a; - a = caller(123); -} diff --git a/gcc/testsuite/rust.test/compile/generics23.rs b/gcc/testsuite/rust.test/compile/generics23.rs deleted file mode 100644 index 2169e36..0000000 --- a/gcc/testsuite/rust.test/compile/generics23.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(A); - -fn main() { - let a: Foo; - a = Foo(123f32); -} diff --git a/gcc/testsuite/rust.test/compile/generics24.rs b/gcc/testsuite/rust.test/compile/generics24.rs deleted file mode 100644 index 9d24bce..0000000 --- a/gcc/testsuite/rust.test/compile/generics24.rs +++ /dev/null @@ -1,34 +0,0 @@ -struct Foo { - a: A, -} - -impl Foo { - fn bar(self) -> isize { - self.a - } -} - -impl Foo { - fn bar(self) -> char { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - self.a - } -} - -impl Foo { - fn bar(self) { - let a: (isize, char) = self.a; - let b = a.0; - let c = a.1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let aa: Foo = Foo { a: b }; - let bb: isize = aa.bar(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - } -} - -fn main() { - let a = Foo { a: (123, 'a') }; - a.bar(); -} diff --git a/gcc/testsuite/rust.test/compile/generics25.rs b/gcc/testsuite/rust.test/compile/generics25.rs deleted file mode 100644 index e7792e3..0000000 --- a/gcc/testsuite/rust.test/compile/generics25.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct Foo(A, B); - -fn main() { - let a: Foo; - a = Foo::(true, (false, true)); - - let b: (bool, bool); - b = a.1; -} diff --git a/gcc/testsuite/rust.test/compile/generics26.rs b/gcc/testsuite/rust.test/compile/generics26.rs deleted file mode 100644 index 522e16f..0000000 --- a/gcc/testsuite/rust.test/compile/generics26.rs +++ /dev/null @@ -1,21 +0,0 @@ -// github issue #415 -fn test(a: A, b: B) -> (A, B) { - (a, b) -} - -fn main() { - let a = test::(123, 456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b = test::(123f32, 456f32); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let c = test::<_, _>(123, 456f32); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let d = test(true, 1234); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let e = test((123, false), 123f32); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics27.rs b/gcc/testsuite/rust.test/compile/generics27.rs deleted file mode 100644 index 9871638..0000000 --- a/gcc/testsuite/rust.test/compile/generics27.rs +++ /dev/null @@ -1,16 +0,0 @@ -// github issue #415 -fn test(a: &A) -> &A { - a -} - -fn main() { - let a = 123; - let b = &a; - let c = test(b); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a = 123f32; - let b = &a; - let c = test(b); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics28.rs b/gcc/testsuite/rust.test/compile/generics28.rs deleted file mode 100644 index 8cee8b0..0000000 --- a/gcc/testsuite/rust.test/compile/generics28.rs +++ /dev/null @@ -1,18 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(a: X) -> X { - a - } -} - -fn main() { - let a; - a = Foo::test::<_>(123); - - let b; - b = Foo::test::(true); - - let c; - c = Foo::test(456f32); -} diff --git a/gcc/testsuite/rust.test/compile/generics29.rs b/gcc/testsuite/rust.test/compile/generics29.rs deleted file mode 100644 index e09a104..0000000 --- a/gcc/testsuite/rust.test/compile/generics29.rs +++ /dev/null @@ -1,16 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(self, a: X) -> X { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - a - } -} - -fn main() { - let a; - a = Foo(123, 456f32); - - let b; - b = a.test::(false); -} diff --git a/gcc/testsuite/rust.test/compile/generics3.rs b/gcc/testsuite/rust.test/compile/generics3.rs deleted file mode 100644 index ceec8f7..0000000 --- a/gcc/testsuite/rust.test/compile/generics3.rs +++ /dev/null @@ -1,15 +0,0 @@ -fn test(a: T) -> T { - a -} - -fn main() { - let a; - a = test(123); - let aa: i32 = a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b; - b = test::(456); - let bb: u32 = b; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics30.rs b/gcc/testsuite/rust.test/compile/generics30.rs deleted file mode 100644 index 229f6d1..0000000 --- a/gcc/testsuite/rust.test/compile/generics30.rs +++ /dev/null @@ -1,16 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(self, a: X) -> X { - // { dg-warning "unused name" "" { target *-*-* } .-1 } - a - } -} - -fn main() { - let a; - a = Foo(123, 456f32); - - let b; - b = a.test::(false); -} diff --git a/gcc/testsuite/rust.test/compile/generics31.rs b/gcc/testsuite/rust.test/compile/generics31.rs deleted file mode 100644 index 68ad4bf..0000000 --- a/gcc/testsuite/rust.test/compile/generics31.rs +++ /dev/null @@ -1,15 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(self, a: X) -> (T, X) { - (self.0, a) - } -} - -fn main() { - let a; - a = Foo(123, 456f32); - - let b; - b = a.test::(false); -} diff --git a/gcc/testsuite/rust.test/compile/generics32.rs b/gcc/testsuite/rust.test/compile/generics32.rs deleted file mode 100644 index 21b9cae..0000000 --- a/gcc/testsuite/rust.test/compile/generics32.rs +++ /dev/null @@ -1,15 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(self, a: X) -> (T, X) { - (self.0, a) - } -} - -fn main() { - let a; - a = Foo(123, 456f32); - - let b; - b = a.test(false); -} diff --git a/gcc/testsuite/rust.test/compile/generics4.rs b/gcc/testsuite/rust.test/compile/generics4.rs deleted file mode 100644 index 3ae3861..0000000 --- a/gcc/testsuite/rust.test/compile/generics4.rs +++ /dev/null @@ -1,15 +0,0 @@ -struct Foo { - a: T, - b: bool, -} - -fn test(a: T) -> Foo { - Foo { a: a, b: true } -} - -fn main() { - let a: Foo = test(123); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b: Foo = test(456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics5.rs b/gcc/testsuite/rust.test/compile/generics5.rs deleted file mode 100644 index b7f4302..0000000 --- a/gcc/testsuite/rust.test/compile/generics5.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn test(a: T) -> T { - a -} - -fn main() { - let a: i32 = test(123); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b: i32 = test(456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics6.rs b/gcc/testsuite/rust.test/compile/generics6.rs deleted file mode 100644 index 283a118..0000000 --- a/gcc/testsuite/rust.test/compile/generics6.rs +++ /dev/null @@ -1,15 +0,0 @@ -struct Foo(T); - -struct Bar { - a: Foo, - b: bool, -} - -fn main() { - let a: Bar = Bar:: { - a: Foo::(123), - b: true, - }; - let b: i32 = a.a.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics7.rs b/gcc/testsuite/rust.test/compile/generics7.rs deleted file mode 100644 index 2e89ce1..0000000 --- a/gcc/testsuite/rust.test/compile/generics7.rs +++ /dev/null @@ -1,13 +0,0 @@ -struct Foo(T); - -struct Bar { - a: Foo, - b: bool, -} - -fn main() { - let a = Foo::(123); - let b: Bar = Bar { a: a, b: true }; - let c: i32 = b.a.0; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics8.rs b/gcc/testsuite/rust.test/compile/generics8.rs deleted file mode 100644 index 036d855..0000000 --- a/gcc/testsuite/rust.test/compile/generics8.rs +++ /dev/null @@ -1,18 +0,0 @@ -struct GenericStruct(T, usize); - -impl GenericStruct { - fn new(a: T, b: usize) -> Self { - GenericStruct(a, b) - } -} - -fn main() { - let a: GenericStruct = GenericStruct::::new(123, 456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b: GenericStruct = GenericStruct::<_>::new(123, 456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let c: GenericStruct = GenericStruct::new(123f32, 456); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/generics9.rs b/gcc/testsuite/rust.test/compile/generics9.rs deleted file mode 100644 index 307c34f..0000000 --- a/gcc/testsuite/rust.test/compile/generics9.rs +++ /dev/null @@ -1,25 +0,0 @@ -struct GenericStruct(T, usize); - -impl GenericStruct { - fn new(a: T, b: usize) -> Self { - GenericStruct(a, b) - } - - fn get(self) -> T { - self.0 - } -} - -fn main() { - let a: GenericStruct = GenericStruct::::new(123, 456); - let aa: i32 = a.get(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b: GenericStruct = GenericStruct::<_>::new(123, 456); - let bb: u32 = b.get(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let c: GenericStruct = GenericStruct::new(123f32, 456); - let cc: f32 = c.get(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs b/gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs deleted file mode 100644 index 65ed7f7..0000000 --- a/gcc/testsuite/rust.test/compile/if_elif_else_expr1.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn test(x: i32) -> i32 { - if x == 10 { - 123 - } else if x < 10 { - 456 - } else { - 789 - } -} - -fn main() { - let a = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/impl_block1.rs b/gcc/testsuite/rust.test/compile/impl_block1.rs deleted file mode 100644 index d67afa1..0000000 --- a/gcc/testsuite/rust.test/compile/impl_block1.rs +++ /dev/null @@ -1,23 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - fn new(a: i32, b: bool) -> Foo { - Foo(a, b) - } - - fn test2() -> i32 { - test_forward_decl() - } -} - -fn test_forward_decl() -> i32 { - 123 -} - -fn main() { - let a; - a = Foo::new(1, true); - - let b; - b = Foo::test2(); -} diff --git a/gcc/testsuite/rust.test/compile/impl_block2.rs b/gcc/testsuite/rust.test/compile/impl_block2.rs deleted file mode 100644 index 0ed592d..0000000 --- a/gcc/testsuite/rust.test/compile/impl_block2.rs +++ /dev/null @@ -1,28 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - const number: i32 = 456; - - fn new(a: i32, b: bool) -> Foo { - Foo(a, b) - } - - fn test2() -> i32 { - test_forward_decl() - } -} - -fn test_forward_decl() -> i32 { - 123 -} - -fn main() { - let a; - a = Foo::new(1, true); - - let b; - b = Foo::test2(); - - let c; - c = Foo::new(Foo::number, true); -} diff --git a/gcc/testsuite/rust.test/compile/impl_block3.rs b/gcc/testsuite/rust.test/compile/impl_block3.rs deleted file mode 100644 index 78ec459..0000000 --- a/gcc/testsuite/rust.test/compile/impl_block3.rs +++ /dev/null @@ -1,32 +0,0 @@ -struct Point { - x: f64, - y: f64, -} - -impl Point { - fn origin() -> Point { - Point { x: 0.0, y: 0.0 } - } - - fn new(x: f64, y: f64) -> Point { - Point { x: x, y: y } - } -} - -struct Rectangle { - p1: Point, - p2: Point, -} - -impl Rectangle { - fn from(p1: Point, p2: Point) -> Self { - Self { p1, p2 } - } -} - -fn main() { - let p1 = Point::origin(); - let p2 = Point::new(3.0, 4.0); - let rect = Rectangle::from(p1, p2); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/implicit_returns1.rs b/gcc/testsuite/rust.test/compile/implicit_returns1.rs deleted file mode 100644 index 54cc8b3..0000000 --- a/gcc/testsuite/rust.test/compile/implicit_returns1.rs +++ /dev/null @@ -1,73 +0,0 @@ -fn test1() -> i32 { - 1 -} - -fn test2() -> i32 { - return 2; -} - -fn test3(x: i32) -> i32 { - if x > 1 { - 5 - } else { - 0 - } -} - -fn test4(x: i32) -> i32 { - if x > 1 { - return 1; - } - 0 -} - -fn test5(x: i32) -> i32 { - if x > 1 { - if x == 5 { - 7 - } else { - 9 - } - } else { - 0 - } -} - -fn test6(x: i32) -> i32 { - if x > 1 { - return 5; - } else { - return 0; - } -} - -fn test7(x: i32) -> i32 { - if x > 1 { - return 5; - } else { - return 0; - } -} - -fn test8() -> i32 { - return 1; -} - -fn main() { - let call1 = test1(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call2 = test2(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call3 = test3(3); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call4 = test4(4); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call5 = test5(5); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call6 = test6(6); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call7 = test7(7); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let call8 = test8(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/infer_type1.rs b/gcc/testsuite/rust.test/compile/infer_type1.rs deleted file mode 100644 index aabfcef..0000000 --- a/gcc/testsuite/rust.test/compile/infer_type1.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let array: [_; 2] = [111, 222]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/integer_inference_var1.rs b/gcc/testsuite/rust.test/compile/integer_inference_var1.rs deleted file mode 100644 index ccee06a..0000000 --- a/gcc/testsuite/rust.test/compile/integer_inference_var1.rs +++ /dev/null @@ -1,6 +0,0 @@ -const TEST_CONST: i32 = 10; - -fn main() { - let a; - a = TEST_CONST; -} diff --git a/gcc/testsuite/rust.test/compile/integer_inference_var2.rs b/gcc/testsuite/rust.test/compile/integer_inference_var2.rs deleted file mode 100644 index 2209e93..0000000 --- a/gcc/testsuite/rust.test/compile/integer_inference_var2.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a = 1u32; - - let b; - b = a; -} diff --git a/gcc/testsuite/rust.test/compile/integer_inference_var3.rs b/gcc/testsuite/rust.test/compile/integer_inference_var3.rs deleted file mode 100644 index 582ae77..0000000 --- a/gcc/testsuite/rust.test/compile/integer_inference_var3.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn test(a: u32) -> u32 { - a + 1 -} - -fn main() { - let param; - param = 123; - - let a = test(param); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/integer_inference_var4.rs b/gcc/testsuite/rust.test/compile/integer_inference_var4.rs deleted file mode 100644 index 136d818..0000000 --- a/gcc/testsuite/rust.test/compile/integer_inference_var4.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let a; - a = 1; -} diff --git a/gcc/testsuite/rust.test/compile/integer_inference_var5.rs b/gcc/testsuite/rust.test/compile/integer_inference_var5.rs deleted file mode 100644 index 051de1d..0000000 --- a/gcc/testsuite/rust.test/compile/integer_inference_var5.rs +++ /dev/null @@ -1,25 +0,0 @@ -const TEST_CONST: i32 = 10; - -fn test(x: u32) -> u32 { - x + 1 -} - -fn main() { - let x = TEST_CONST; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let a = 1u32; - let b = a; - - let c; - c = 1; - - let d; - d = b; - - let param; - param = 123; - - let test_call = test(param); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/integer_types.rs b/gcc/testsuite/rust.test/compile/integer_types.rs deleted file mode 100644 index 95a7378..0000000 --- a/gcc/testsuite/rust.test/compile/integer_types.rs +++ /dev/null @@ -1,27 +0,0 @@ -// { dg-prune-output "warning: unused name" } as there are many of these expected. - -fn main() { - let a1: i8 = 1i8; - let a2: i16 = 2i16; - let a3: i32 = 3i32; - let a4: i64 = 4i64; - let a5: i128 = 5i128; - - let b1 = 1i8; - let b2 = 2i16; - let b3 = 3i32; - let b4 = 4i64; - let b5 = 5i128; - - let c1: u8 = 1u8; - let c2: u16 = 2u16; - let c3: u32 = 3u32; - let c4: u64 = 4u64; - let c5: u128 = 5u128; - - let d1 = 1u8; - let d2 = 2u16; - let d3 = 3u32; - let d4 = 4u64; - let d5 = 5u128; -} diff --git a/gcc/testsuite/rust.test/compile/lifetime1.rs b/gcc/testsuite/rust.test/compile/lifetime1.rs deleted file mode 100644 index 151fd82..0000000 --- a/gcc/testsuite/rust.test/compile/lifetime1.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn foo<'a>(t: &'a str) -> &'a str { - t -} - -fn main() { - foo("hello world"); -} diff --git a/gcc/testsuite/rust.test/compile/literals1.rs b/gcc/testsuite/rust.test/compile/literals1.rs deleted file mode 100644 index cf021e2..0000000 --- a/gcc/testsuite/rust.test/compile/literals1.rs +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-prune-output "warning: unused name" } as there are many of these expected. - -fn main() { - let hex: i32 = 0xFF; - let binary: i32 = 0b11110000; - let oct: i32 = 0o70; - - let hex_u8: u8 = 0xFF_u8; - let bin_u16: u16 = 0b1111000011110000_u16; - let oct: u32 = 0o70_u32; -} diff --git a/gcc/testsuite/rust.test/compile/loop1.rs b/gcc/testsuite/rust.test/compile/loop1.rs deleted file mode 100644 index a8ee2f5..0000000 --- a/gcc/testsuite/rust.test/compile/loop1.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - loop { - let c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/compile/loop2.rs b/gcc/testsuite/rust.test/compile/loop2.rs deleted file mode 100644 index 3de3ea8..0000000 --- a/gcc/testsuite/rust.test/compile/loop2.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - // first number in Fibonacci sequence over 10: - loop { - if b > 10 { - break; - } - let c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/compile/loop3.rs b/gcc/testsuite/rust.test/compile/loop3.rs deleted file mode 100644 index 76fadfb..0000000 --- a/gcc/testsuite/rust.test/compile/loop3.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - // first number in Fibonacci sequence over 10: - loop { - if b > 10 { - return; - } - let c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/compile/loop4.rs b/gcc/testsuite/rust.test/compile/loop4.rs deleted file mode 100644 index f7b5935..0000000 --- a/gcc/testsuite/rust.test/compile/loop4.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - 'outer: loop { - 'inner: loop { - break 'outer; - } - } -} diff --git a/gcc/testsuite/rust.test/compile/loop5.rs b/gcc/testsuite/rust.test/compile/loop5.rs deleted file mode 100644 index 4004cd3..0000000 --- a/gcc/testsuite/rust.test/compile/loop5.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - // first number in Fibonacci sequence over 10: - let _fib = loop { - if b > 10 { - break b; - } - let c = a + b; - a = b; - b = c; - }; -} diff --git a/gcc/testsuite/rust.test/compile/loop6.rs b/gcc/testsuite/rust.test/compile/loop6.rs deleted file mode 100644 index ecd3ad4..0000000 --- a/gcc/testsuite/rust.test/compile/loop6.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let mut c; - while b > 10 { - c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/compile/loop7.rs b/gcc/testsuite/rust.test/compile/loop7.rs deleted file mode 100644 index 0cd8445..0000000 --- a/gcc/testsuite/rust.test/compile/loop7.rs +++ /dev/null @@ -1,13 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let _fib = loop { - if (a % 2 == 0) { - continue; - } - let c = a + b; - a = b; - b = c; - }; -} diff --git a/gcc/testsuite/rust.test/compile/methods1.rs b/gcc/testsuite/rust.test/compile/methods1.rs deleted file mode 100644 index df3663f..0000000 --- a/gcc/testsuite/rust.test/compile/methods1.rs +++ /dev/null @@ -1,40 +0,0 @@ -struct Point { - x: f64, - y: f64, -} - -impl Point { - fn origin() -> Point { - Point { x: 0.0, y: 0.0 } - } - - fn new(x: f64, y: f64) -> Point { - Point { x: x, y: y } - } -} - -struct Rectangle { - p1: Point, - p2: Point, -} - -impl Rectangle { - fn from(p1: Point, p2: Point) -> Self { - Self { p1, p2 } - } - - fn sum_x(self) -> f64 { - let p1 = self.p1; - let p2 = self.p2; - p1.x + p2.x - } -} - -fn main() { - let p1 = Point::origin(); - let p2 = Point::new(3.0, 4.0); - let rect = Rectangle::from(p1, p2); - - let sum = rect.sum_x(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/methods2.rs b/gcc/testsuite/rust.test/compile/methods2.rs deleted file mode 100644 index 72ba29c..0000000 --- a/gcc/testsuite/rust.test/compile/methods2.rs +++ /dev/null @@ -1,42 +0,0 @@ -struct Point { - x: f64, - y: f64, -} - -impl Point { - fn origin() -> Point { - Point { x: 0.0, y: 0.0 } - } - - fn new(x: f64, y: f64) -> Point { - Point { x: x, y: y } - } -} - -struct Rectangle { - p1: Point, - p2: Point, -} - -impl Rectangle { - fn from(p1: Point, p2: Point) -> Self { - Self { p1, p2 } - } -} - -fn main() { - let p1 = Point::origin(); - let p2 = Point::new(3.0, 4.0); - let rect = Rectangle::from(p1, p2); - - let sum = rect.sum_x(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} - -impl Rectangle { - fn sum_x(self) -> f64 { - let p1 = self.p1; - let p2 = self.p2; - p1.x + p2.x - } -} diff --git a/gcc/testsuite/rust.test/compile/methods3.rs b/gcc/testsuite/rust.test/compile/methods3.rs deleted file mode 100644 index b0cb78f..0000000 --- a/gcc/testsuite/rust.test/compile/methods3.rs +++ /dev/null @@ -1,43 +0,0 @@ -struct Point { - x: f64, - y: f64, -} - -impl Point { - fn origin() -> Point { - Point { x: 0.0, y: 0.0 } - } - - fn new(x: f64, y: f64) -> Point { - Point { x: x, y: y } - } -} - -struct Rectangle { - p1: Point, - p2: Point, -} - -impl Rectangle { - fn from(p1: Point, p2: Point) -> Self { - Self { p1, p2 } - } - - fn sum_x(self) -> f64 { - let p1 = self.p1; - let p2 = self.p2; - p1.x + p2.x - } -} - -fn main() { - let p1 = Point::origin(); - let p2 = Point::new(3.0, 4.0); - let rect = Rectangle::from(p1, p2); - - let sum = rect.sum_x(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - // multiple MethodCallExpr were causing issue #310 - let sum = rect.sum_x(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/name_resolve1.rs b/gcc/testsuite/rust.test/compile/name_resolve1.rs deleted file mode 100644 index 817f48b..0000000 --- a/gcc/testsuite/rust.test/compile/name_resolve1.rs +++ /dev/null @@ -1,23 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - fn new(a: i32, b: bool) -> Foo { - Foo(a, b) - } - - fn test() -> i32 { - test() - } -} - -fn test() -> i32 { - 123 -} - -fn main() { - let a; - a = Foo::new(1, true); - - let b; - b = Foo::test(); -} diff --git a/gcc/testsuite/rust.test/compile/nested_struct1.rs b/gcc/testsuite/rust.test/compile/nested_struct1.rs deleted file mode 100644 index 56ce053..0000000 --- a/gcc/testsuite/rust.test/compile/nested_struct1.rs +++ /dev/null @@ -1,18 +0,0 @@ -struct Point { - x: f64, - y: f64, -} - -struct Rectangle { - p1: Point, - p2: Point, -} - -fn main() { - let p1 = Point { x: 0.0, y: 0.0 }; - let p2 = Point { x: 2.0, y: 4.0 }; - let rect = Rectangle { p1, p2 }; - - let a = rect.p1.x; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/never_type1.rs b/gcc/testsuite/rust.test/compile/never_type1.rs deleted file mode 100644 index 0f15029..0000000 --- a/gcc/testsuite/rust.test/compile/never_type1.rs +++ /dev/null @@ -1,22 +0,0 @@ -fn foo() -> i32 { - let c; - let d; - - c = if false { - return 1; - } else { - 0.0 - }; - - d = if true { - 0.0 - } else { - return 1; - }; - - 0 -} - -fn main() { - foo(); -} diff --git a/gcc/testsuite/rust.test/compile/parameter_usage1.rs b/gcc/testsuite/rust.test/compile/parameter_usage1.rs deleted file mode 100644 index 448e960..0000000 --- a/gcc/testsuite/rust.test/compile/parameter_usage1.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn test(a: i32, b: i32) -> i32 { - a + b -} - -fn main() { - let a = test(1, 4); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/parens1.rs b/gcc/testsuite/rust.test/compile/parens1.rs deleted file mode 100644 index 795eb96..0000000 --- a/gcc/testsuite/rust.test/compile/parens1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a = 123; - let b = a + (a * 2); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/raw_identifiers.rs b/gcc/testsuite/rust.test/compile/raw_identifiers.rs deleted file mode 100644 index 8746f33..0000000 --- a/gcc/testsuite/rust.test/compile/raw_identifiers.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn square(num: i32) -> i32 { /* { dg-warning "used" } */ - r#num * num -} \ No newline at end of file diff --git a/gcc/testsuite/rust.test/compile/raw_identifiers_keywords.rs b/gcc/testsuite/rust.test/compile/raw_identifiers_keywords.rs deleted file mode 100644 index c9aa3cf..0000000 --- a/gcc/testsuite/rust.test/compile/raw_identifiers_keywords.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn plus(r#break: i32, r#unsafe: i32) -> i32 { /* { dg-warning "used" } */ - r#break + r#unsafe -} \ No newline at end of file diff --git a/gcc/testsuite/rust.test/compile/recursive_fn1.rs b/gcc/testsuite/rust.test/compile/recursive_fn1.rs deleted file mode 100644 index e13b41f..0000000 --- a/gcc/testsuite/rust.test/compile/recursive_fn1.rs +++ /dev/null @@ -1,12 +0,0 @@ -fn gcd(x: i32, y: i32) -> i32 { - if y == 0 { - x - } else { - gcd(y, x % y) - } -} - -fn main() { - let a = gcd(100, 5); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/scoping1.rs b/gcc/testsuite/rust.test/compile/scoping1.rs deleted file mode 100644 index 8bc8ede..0000000 --- a/gcc/testsuite/rust.test/compile/scoping1.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let x = 1; - { - let mut x = true; - { - x = false; - } - } - let x = x + 1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/self_type1.rs b/gcc/testsuite/rust.test/compile/self_type1.rs deleted file mode 100644 index 373d6dd..0000000 --- a/gcc/testsuite/rust.test/compile/self_type1.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - fn new(a: i32, b: bool) -> Self { - Self(a, b) - } -} - -fn main() { - let a; - a = Foo::new(1, true); -} diff --git a/gcc/testsuite/rust.test/compile/shadow1.rs b/gcc/testsuite/rust.test/compile/shadow1.rs deleted file mode 100644 index b60e793..0000000 --- a/gcc/testsuite/rust.test/compile/shadow1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let mut x = 5; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let mut x; - x = true; -} diff --git a/gcc/testsuite/rust.test/compile/shadow2.rs b/gcc/testsuite/rust.test/compile/shadow2.rs deleted file mode 100644 index 161dc38..0000000 --- a/gcc/testsuite/rust.test/compile/shadow2.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let x = 1; - let x = x + 1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/static_function.rs b/gcc/testsuite/rust.test/compile/static_function.rs deleted file mode 100644 index 8e3a379..0000000 --- a/gcc/testsuite/rust.test/compile/static_function.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn test(x: i32) -> i32 { - return x + 1; -} - -fn main() { - let call_test = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/static_var1.rs b/gcc/testsuite/rust.test/compile/static_var1.rs deleted file mode 100644 index 5be0e75..0000000 --- a/gcc/testsuite/rust.test/compile/static_var1.rs +++ /dev/null @@ -1,6 +0,0 @@ -static x:i32 = 3; - -fn main() { - let y = x +1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/stmt_with_block1.rs b/gcc/testsuite/rust.test/compile/stmt_with_block1.rs deleted file mode 100644 index b6aa56c..0000000 --- a/gcc/testsuite/rust.test/compile/stmt_with_block1.rs +++ /dev/null @@ -1,13 +0,0 @@ -fn test(x: i32) -> i32 { - if x > 1 { 1 } else { 2 }; - if x > 1 { 1; } else { 2; } - - { 3; } - { 3 }; - - { 3 } -} - -fn main() { - let a = test(0); // { dg-warning "unused name" } -} diff --git a/gcc/testsuite/rust.test/compile/str1.rs b/gcc/testsuite/rust.test/compile/str1.rs deleted file mode 100644 index 08882785..0000000 --- a/gcc/testsuite/rust.test/compile/str1.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - let a; - a = "hello world infer"; - - let b: &str; - b = "hello world specified"; -} diff --git a/gcc/testsuite/rust.test/compile/struct_access1.rs b/gcc/testsuite/rust.test/compile/struct_access1.rs deleted file mode 100644 index ec85d28..0000000 --- a/gcc/testsuite/rust.test/compile/struct_access1.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo { - one: i32, - two: i32, -} - -fn main() { - let struct_test = Foo { one: 1, two: 2 }; - let a = struct_test.one; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b = struct_test.two; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_base_init_1.rs b/gcc/testsuite/rust.test/compile/struct_base_init_1.rs deleted file mode 100644 index 3c0b24a..0000000 --- a/gcc/testsuite/rust.test/compile/struct_base_init_1.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn foo() -> Foo { - Foo { a: 42, b: 32 } -} - -fn main() { - let _f = Foo { a: 10, ..foo() }; -} diff --git a/gcc/testsuite/rust.test/compile/struct_init.rs b/gcc/testsuite/rust.test/compile/struct_init.rs deleted file mode 100644 index be0b963..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct Foo { - one: i32, - two: i32, -} - -fn main() { - let struct_test = Foo { one: 1, two: 2 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_2.rs b/gcc/testsuite/rust.test/compile/struct_init_2.rs deleted file mode 100644 index d7040d3..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_2.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(f32, f32); - -fn main() { - let a = Foo { 0: 10.0, 1: 20.0 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_3.rs b/gcc/testsuite/rust.test/compile/struct_init_3.rs deleted file mode 100644 index 5e52d09..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_3.rs +++ /dev/null @@ -1,11 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn main() { - let a = 1; - let b = 2; - let c = Foo { a, b }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_4.rs b/gcc/testsuite/rust.test/compile/struct_init_4.rs deleted file mode 100644 index 57b6bd4..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_4.rs +++ /dev/null @@ -1,10 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn main() { - let a = Foo { a: 1, b: 2 }; - let b = Foo { a: 3, b: 4, ..a }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_5.rs b/gcc/testsuite/rust.test/compile/struct_init_5.rs deleted file mode 100644 index 891f645..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_5.rs +++ /dev/null @@ -1,10 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn main() { - let a = Foo { a: 1, b: 2 }; - let b = Foo { ..a }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_6.rs b/gcc/testsuite/rust.test/compile/struct_init_6.rs deleted file mode 100644 index e7f8a12..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_6.rs +++ /dev/null @@ -1,10 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn main() { - let a = Foo { a: 1, b: 2 }; - let b = Foo { a: 1, ..a }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_7.rs b/gcc/testsuite/rust.test/compile/struct_init_7.rs deleted file mode 100644 index a8c8050..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_7.rs +++ /dev/null @@ -1,10 +0,0 @@ -struct Foo { - a: i32, - b: f32, -} - -fn main() { - let a = Foo { a: 1, b: 2f32 }; - let b = Foo { b: 4f32, ..a }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/struct_init_8.rs b/gcc/testsuite/rust.test/compile/struct_init_8.rs deleted file mode 100644 index 411ff7d..0000000 --- a/gcc/testsuite/rust.test/compile/struct_init_8.rs +++ /dev/null @@ -1,7 +0,0 @@ -struct Foo(f32, i32); - -fn main() { - let a = Foo { 1: 1, 0: 2f32 }; - let b = Foo { ..a }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/top_attr.rs b/gcc/testsuite/rust.test/compile/top_attr.rs deleted file mode 100644 index 0671369..0000000 --- a/gcc/testsuite/rust.test/compile/top_attr.rs +++ /dev/null @@ -1,5 +0,0 @@ -#![crate_name = "name"] - - -#[allow(dead_code)] -fn main() {} \ No newline at end of file diff --git a/gcc/testsuite/rust.test/compile/tuple1.rs b/gcc/testsuite/rust.test/compile/tuple1.rs deleted file mode 100644 index 9e6f613..0000000 --- a/gcc/testsuite/rust.test/compile/tuple1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a: (i32, bool) = (123, true); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b; - b = (456, 5f32); -} diff --git a/gcc/testsuite/rust.test/compile/tuple2.rs b/gcc/testsuite/rust.test/compile/tuple2.rs deleted file mode 100644 index ab3d0b8..0000000 --- a/gcc/testsuite/rust.test/compile/tuple2.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a = 123; - let b = (a,); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/tuple3.rs b/gcc/testsuite/rust.test/compile/tuple3.rs deleted file mode 100644 index d0fb6fc..0000000 --- a/gcc/testsuite/rust.test/compile/tuple3.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - let a = (1, true); - - let b; - let c; - - b = a.0; - c = a.1; -} diff --git a/gcc/testsuite/rust.test/compile/tuple_field_access.rs b/gcc/testsuite/rust.test/compile/tuple_field_access.rs deleted file mode 100644 index 8d1bbe9..0000000 --- a/gcc/testsuite/rust.test/compile/tuple_field_access.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(i32, i32); - -fn main() { - let mut a = Foo(1, 2); - a.0 = 22; -} diff --git a/gcc/testsuite/rust.test/compile/tuple_struct1.rs b/gcc/testsuite/rust.test/compile/tuple_struct1.rs deleted file mode 100644 index 0ac19b1..0000000 --- a/gcc/testsuite/rust.test/compile/tuple_struct1.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(i32, i32, bool); - -fn main() { - let a = Foo(1, 2, true); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/tuple_struct2.rs b/gcc/testsuite/rust.test/compile/tuple_struct2.rs deleted file mode 100644 index 5e0a76e..0000000 --- a/gcc/testsuite/rust.test/compile/tuple_struct2.rs +++ /dev/null @@ -1,11 +0,0 @@ -struct Foo(i32, bool); - -fn main() { - let a = Foo(1, true); - - let b; - let c; - - b = a.0; - c = a.1; -} diff --git a/gcc/testsuite/rust.test/compile/type-alias1.rs b/gcc/testsuite/rust.test/compile/type-alias1.rs deleted file mode 100644 index 78bf046..0000000 --- a/gcc/testsuite/rust.test/compile/type-alias1.rs +++ /dev/null @@ -1,6 +0,0 @@ -type TypeAlias = (i32, u32); - -fn main() { - let a: TypeAlias; - a = (123, 456); -} diff --git a/gcc/testsuite/rust.test/compile/type-alias2.rs b/gcc/testsuite/rust.test/compile/type-alias2.rs deleted file mode 100644 index a3e3f4e..0000000 --- a/gcc/testsuite/rust.test/compile/type-alias2.rs +++ /dev/null @@ -1,8 +0,0 @@ -type x = u32; - -fn main() { - let x: x = 1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let y: x = 2; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/type_infer1.rs b/gcc/testsuite/rust.test/compile/type_infer1.rs deleted file mode 100644 index b6502b5..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer1.rs +++ /dev/null @@ -1,22 +0,0 @@ -struct Foo { - one: i32, - two: i32, -} - -fn test(x: i32) -> i32 { - return x + 1; -} - -fn main() { - let logical: bool = true; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let an_integer = 5; - let mut default_integer = 7; - - default_integer = 1 + an_integer; - - let call_test = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let struct_test = Foo { one: 1, two: 2 }; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/type_infer2.rs b/gcc/testsuite/rust.test/compile/type_infer2.rs deleted file mode 100644 index dcddda4..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer2.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(x: i32) -> i32 { - return x + 1; -} - -fn main() { - let an_integer = 5; - let call_test = test(an_integer + 1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/type_infer3.rs b/gcc/testsuite/rust.test/compile/type_infer3.rs deleted file mode 100644 index 303dd3d..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer3.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn test(x: i32) -> i32 { - return x + 1; -} - -fn main() { - let mut an_integer = 5; - an_integer = test(1) + 3; - - let mut x; - x = 1; - - let call_test = test(1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/type_infer4.rs b/gcc/testsuite/rust.test/compile/type_infer4.rs deleted file mode 100644 index 77a919f..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer4.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - let xs: [i32; 5] = [1, 2, 3, 4, 5]; - let xy = [6, 7, 8]; - - let a = xs[0]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b = xy[2]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let mut c; - c = xs[0]; -} diff --git a/gcc/testsuite/rust.test/compile/type_infer5.rs b/gcc/testsuite/rust.test/compile/type_infer5.rs deleted file mode 100644 index 1bccb4c..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer5.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo { - a: i32, - b: i32, -} - -fn main() { - let a; - a = Foo { a: 1, b: 2 }; - - let b = a.a; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/type_infer6.rs b/gcc/testsuite/rust.test/compile/type_infer6.rs deleted file mode 100644 index 6f5863f..0000000 --- a/gcc/testsuite/rust.test/compile/type_infer6.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn test(x: u32) -> u32 { - return x + 1; -} - -fn main() { - let a; - a = 1; - let b = test(a); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let c = 1; - let d = test(c + 1); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/unary_operators.rs b/gcc/testsuite/rust.test/compile/unary_operators.rs deleted file mode 100644 index 9be729c..0000000 --- a/gcc/testsuite/rust.test/compile/unary_operators.rs +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-prune-output "warning: unused name" } as there are many of these expected. - -fn main() { - let a: i32 = -1; - let b: i32 = 3 - -1; - let c: bool = !false; - let d: i32 = !3; -} diff --git a/gcc/testsuite/rust.test/compile/underscore_id.rs b/gcc/testsuite/rust.test/compile/underscore_id.rs deleted file mode 100644 index 2c106c5..0000000 --- a/gcc/testsuite/rust.test/compile/underscore_id.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let _unused_but_fine = 12; - let unused = 12; // { dg-warning "unused name" } -} diff --git a/gcc/testsuite/rust.test/compile/unit_type1.rs b/gcc/testsuite/rust.test/compile/unit_type1.rs deleted file mode 100644 index d5f7357..0000000 --- a/gcc/testsuite/rust.test/compile/unit_type1.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - let a: () = (); - // { dg-warning "unused name" "" { target *-*-* } .-1 } - - let b; - b = (); -} diff --git a/gcc/testsuite/rust.test/compile/unused.rs b/gcc/testsuite/rust.test/compile/unused.rs deleted file mode 100644 index 0564aa1..0000000 --- a/gcc/testsuite/rust.test/compile/unused.rs +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-warning "function is never used: `bar`" "" { target *-*-* } .+1 } -fn bar() { - foo(); -} - -// { dg-warning "function is never used: `foo`" "" { target *-*-* } .+1 } -fn foo() { - bar(); -} - -fn f() { - -} - -fn main() { - f(); -} diff --git a/gcc/testsuite/rust.test/compile/unused1.rs b/gcc/testsuite/rust.test/compile/unused1.rs deleted file mode 100644 index 3b4873c..0000000 --- a/gcc/testsuite/rust.test/compile/unused1.rs +++ /dev/null @@ -1,16 +0,0 @@ -fn test() -> i32 { - 1 -} - -fn unused() -> i32 { - // { dg-warning "function is never used: `unused`" "" { target *-*-* } .-1 } - // { dg-warning "unused name" "" { target *-*-* } .-2 } - 2 -} - -fn main() { - let a = 1; - // { dg-warning "unused name" "" { target *-*-* } .-1 } - let b = test(); - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/compile/usize1.rs b/gcc/testsuite/rust.test/compile/usize1.rs deleted file mode 100644 index ba1d5c6..0000000 --- a/gcc/testsuite/rust.test/compile/usize1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a = [1, 2, 3]; - let b: usize = 1; - let c = a[b]; - // { dg-warning "unused name" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/execute/block_expr1.rs b/gcc/testsuite/rust.test/execute/block_expr1.rs deleted file mode 100644 index d561f8c..0000000 --- a/gcc/testsuite/rust.test/execute/block_expr1.rs +++ /dev/null @@ -1,8 +0,0 @@ -fn main() -> i32 { - let ret = { - 1; - 2; - 0 - }; - ret -} diff --git a/gcc/testsuite/rust.test/execute/empty_main.rs b/gcc/testsuite/rust.test/execute/empty_main.rs deleted file mode 100644 index 6442e1e..0000000 --- a/gcc/testsuite/rust.test/execute/empty_main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() -> i32 { - 0 -} diff --git a/gcc/testsuite/rust.test/execute/execute.exp b/gcc/testsuite/rust.test/execute/execute.exp deleted file mode 100644 index f4deaa1..0000000 --- a/gcc/testsuite/rust.test/execute/execute.exp +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2021 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# -# Rust torture test suite. -# - -# Load support procs. -load_lib rust-dg.exp - -# Initialize `dg'. -dg-init - -# Main loop. -set saved-dg-do-what-default ${dg-do-what-default} - -set dg-do-what-default "run" -gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" -set dg-do-what-default ${saved-dg-do-what-default} - -# All done. -dg-finish diff --git a/gcc/testsuite/rust.test/execute/exit_error.rs b/gcc/testsuite/rust.test/execute/exit_error.rs deleted file mode 100644 index c3d0d9f..0000000 --- a/gcc/testsuite/rust.test/execute/exit_error.rs +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-xfail-run-if "" { *-*-* } } - -fn main() -> i32 { - 1 -} diff --git a/gcc/testsuite/rust.test/execute/func1.rs b/gcc/testsuite/rust.test/execute/func1.rs deleted file mode 100644 index 0a093d8..0000000 --- a/gcc/testsuite/rust.test/execute/func1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() -> i32 { - 1; - 2; - 0 -} diff --git a/gcc/testsuite/rust.test/unsupported/lifetime_param.rs b/gcc/testsuite/rust.test/unsupported/lifetime_param.rs deleted file mode 100644 index 306fca0..0000000 --- a/gcc/testsuite/rust.test/unsupported/lifetime_param.rs +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-excess-errors "warnings" } - -// { dg-error "lifetime not defined" "#359" { xfail *-*-* } .+1 } -fn lifetime_undefined(t: &'a str) -> &'a str { - t -} - -// { dg-error "lifetime not defined" "#359" { xfail *-*-* } .+1 } -fn lifetime_undefined_bis<'a>(t: &'a str)-> &'b str { - t -} diff --git a/gcc/testsuite/rust.test/unsupported/slice1.rs b/gcc/testsuite/rust.test/unsupported/slice1.rs deleted file mode 100644 index 48abcbe..0000000 --- a/gcc/testsuite/rust.test/unsupported/slice1.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn foo (e: &str) -> &str { - &"" // { dg-bogus "cannot strip expression in this position - outer attributes not allowed" "#391" { xfail *-*-* } } -} diff --git a/gcc/testsuite/rust.test/unsupported/struct_field_vis.rs b/gcc/testsuite/rust.test/unsupported/struct_field_vis.rs deleted file mode 100644 index a28729e..0000000 --- a/gcc/testsuite/rust.test/unsupported/struct_field_vis.rs +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-xfail-if "pub visibility not supported #432" *-*-* } - -mod foomod { - pub struct Foo { - pub f: i32, - pub g: u32, - } -} - -fn test() -> foomod::Foo { - foomod::Foo{ - f:1, - g:3, - } -} diff --git a/gcc/testsuite/rust.test/unsupported/unsupported.exp b/gcc/testsuite/rust.test/unsupported/unsupported.exp deleted file mode 100644 index 82d19c6..0000000 --- a/gcc/testsuite/rust.test/unsupported/unsupported.exp +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (C) 2021 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - - -# These tests are used to keep track of known limitations : -# 1- tests that are incorrecly build instead of being rejected -# 2- tests that are build to an incorrect result -# 3- tests that are rejected instead of being correctly build -# -# Not currently supported here: -# - tests that are exhibiting incorrect behavior at runtime -# -# Here's how to annotate tests for each cases: -# -# 1- test is successfuly build instead of being rejected -# -# Expected behavior: a specific error rejecting the test -# Observed behavior: error not present -# Use dg-error and mark the test xfail and add reference to corresponding issue. -# { dg-error "lifetime not defined" "#359" { xfail *-*-* } } -# -# 2- test is successfuly build but result is incorrect -# -# Expected behavior: test is correctly build and has specific property -# Observed behavior: test is correctly build but is missing the specific property -# Depends on the property. For example, if the property can be checked in the assembly file, use dg-final + xfail. -# { dg-final { scan-assembler "given_string_missing_in_assembly_" "#1234" { xfail *-*-* } } } -# -# 3- test is rejected instead of being correctly build -# -# Expected behavior: test is successfully build -# Observed behavior: the test is rejected with an error -# Use dg-bogus + xfail to match the bogus error message, or use dg-xfail-if if it's harder to match a specific error. - -# Load support procs. -load_lib rust-dg.exp - -# Initialize `dg'. -dg-init - -# Main loop. -set saved-dg-do-what-default ${dg-do-what-default} - -set dg-do-what-default "compile" -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" -set dg-do-what-default ${saved-dg-do-what-default} - -# All done. -dg-finish diff --git a/gcc/testsuite/rust.test/xfail_compile/array_empty_list.rs b/gcc/testsuite/rust.test/xfail_compile/array_empty_list.rs deleted file mode 100644 index 76e082a..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/array_empty_list.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let arr = []; - // { dg-error "type annotations needed" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/arrays1.rs b/gcc/testsuite/rust.test/xfail_compile/arrays1.rs deleted file mode 100644 index 714a6be..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/arrays1.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let xs: [i32; 5] = [1, 2, 3, 4, 5]; - let a: bool = xs[0]; // { dg-error "expected .bool. got .i32." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/arrays2.rs b/gcc/testsuite/rust.test/xfail_compile/arrays2.rs deleted file mode 100644 index 9c788db..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/arrays2.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let array: [i32; 5] = [1, 2, 3]; - // { dg-error "expected ..i32:5.. got ..i32:3.." "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs b/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs deleted file mode 100644 index 93de439..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/bad_type1.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - let logical: bool = 123; // { dg-error "expected .bool. got .." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/bad_type2.rs b/gcc/testsuite/rust.test/xfail_compile/bad_type2.rs deleted file mode 100644 index e47b8aa..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/bad_type2.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn test(x: i32) -> i32 { - return x + 1; -} - -fn main() { - let mut an_integer = 5; - an_integer = test(1) + 3; - - let mut x; - x = 1; - x = true; // { dg-error "expected .. got .bool." } - - let call_test = test(1); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/break1.rs b/gcc/testsuite/rust.test/xfail_compile/break1.rs deleted file mode 100644 index 74f2809..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/break1.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a; - a = 1; - break a; // { dg-error "cannot `break` outside of a loop" } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/break2.rs b/gcc/testsuite/rust.test/xfail_compile/break2.rs deleted file mode 100644 index 4279e70..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/break2.rs +++ /dev/null @@ -1,15 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let mut c; - while b > 10 { - if (b == 2) { - break b; // { dg-error "can only break with a value inside `loop`" } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } - } - c = a + b; - a = b; - b = c; - } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/continue1.rs b/gcc/testsuite/rust.test/xfail_compile/continue1.rs deleted file mode 100644 index 7d8e083..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/continue1.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn main() { - let mut a = 1; - let mut b = 1; - - let _fib = { - continue; // { dg-error "cannot `continue` outside of a loop" } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } - 123 - }; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/deadcode_err1.rs b/gcc/testsuite/rust.test/xfail_compile/deadcode_err1.rs deleted file mode 100644 index 1dbe957..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/deadcode_err1.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn foo() -> i32 { - return 1; - - let mut a = 1; // { dg-warning "unreachable statement" } - a = 1.1; // { dg-warning "unreachable statement" } - // { dg-error "expected .. got .." "" { target *-*-* } .-1 } -} - -fn main() { - foo(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/deadcode_err2.rs b/gcc/testsuite/rust.test/xfail_compile/deadcode_err2.rs deleted file mode 100644 index 8c0eb46..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/deadcode_err2.rs +++ /dev/null @@ -1,16 +0,0 @@ -fn foo() -> i32 { - return 1; - return 1.5; // { dg-error "expected .i32. got .." } - // { dg-warning "unreachable statement" "" { target *-*-* } .-1 } -} - -fn bar() -> i32 { - return 1.5; // { dg-error "expected .i32. got .." } - return 1; - // { dg-warning "unreachable statement" "" { target *-*-* } .-1 } -} - -fn main() { - foo(); - bar(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/expected_type_args2.rs b/gcc/testsuite/rust.test/xfail_compile/expected_type_args2.rs deleted file mode 100644 index 7945420..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/expected_type_args2.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(A); - -fn main() { - let a: Foo = Foo::(123); - // { dg-error "generic item takes at least 1 type arguments but 0 were supplied" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/expected_type_args3.rs b/gcc/testsuite/rust.test/xfail_compile/expected_type_args3.rs deleted file mode 100644 index ba07239..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/expected_type_args3.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo(A); - -impl Foo { - // { dg-error "generic item takes at least 1 type arguments but 0 were supplied" "" { target *-*-* } .-1 } - fn test() -> i32 { - 123 - } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/func1.rs b/gcc/testsuite/rust.test/xfail_compile/func1.rs deleted file mode 100644 index 6758a38..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/func1.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(x: i32) -> bool { - return x + 1; // { dg-error "expected .bool. got .i32." } -} - -fn main() { - let an_integer = 5; - - let call_test = test(1); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/func2.rs b/gcc/testsuite/rust.test/xfail_compile/func2.rs deleted file mode 100644 index 219bbfe..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/func2.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(a: i32, b: i32) -> i32 { - a + b -} - -fn main() { - let a = test(1); // { dg-error "unexpected number of arguments 1 expected 2" } - // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/func3.rs b/gcc/testsuite/rust.test/xfail_compile/func3.rs deleted file mode 100644 index 6cedf8e..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/func3.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn test(a: i32, b: i32) -> i32 { - a + b -} - -fn main() { - let a = test(1, true); // { dg-error "expected .i32. got .bool." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/func4.rs b/gcc/testsuite/rust.test/xfail_compile/func4.rs deleted file mode 100644 index 3b2d2b0..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/func4.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn func() -> i32 { // { dg-error "expected .i32. got ...." } -} - -fn main() { - func(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/func5.rs b/gcc/testsuite/rust.test/xfail_compile/func5.rs deleted file mode 100644 index 05624f5..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/func5.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn func() -> i32 { - return; // { dg-error "expected .i32. got ...." } -} - -fn main() { - func(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generic-default1.rs b/gcc/testsuite/rust.test/xfail_compile/generic-default1.rs deleted file mode 100644 index 1b04f7d..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generic-default1.rs +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-error "unresolved type" "" { target *-*-* } 0 } - -struct Foo(A); -// { dg-error "failed to resolve TypePath: i321" "" { target *-*-* } .-1 } - -fn main() { - let a; - a = Foo(123); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics1.rs b/gcc/testsuite/rust.test/xfail_compile/generics1.rs deleted file mode 100644 index de1bbf5..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics1.rs +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } - -struct GenericStruct(T, usize); - -fn main() { - let a2: GenericStruct; - a2 = GenericStruct::<_>(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics10.rs b/gcc/testsuite/rust.test/xfail_compile/generics10.rs deleted file mode 100644 index a734fa8..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics10.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(A, B); - -impl Foo { // { dg-error "defaults for type parameters are not allowed here" } - fn new(a: X, b: f32) -> Self { - Self(a, b) - } -} - -fn main() { - let a; - a = Foo::new(123, 456f32); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics11.rs b/gcc/testsuite/rust.test/xfail_compile/generics11.rs deleted file mode 100644 index 4d3b9e1..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics11.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(T, bool); - -impl Foo { - fn test() -> i32 { - 123 - } -} - -fn main() { - let a = Foo::test(); - // { dg-error "type annotations needed" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics12.rs b/gcc/testsuite/rust.test/xfail_compile/generics12.rs deleted file mode 100644 index f1ac8b0..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics12.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - bar(); - // { dg-error "type annotations needed" "" { target *-*-* } .-1 } -} - -fn bar() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics2.rs b/gcc/testsuite/rust.test/xfail_compile/generics2.rs deleted file mode 100644 index 5812b13..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics2.rs +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } - -struct GenericStruct(T, usize); - -fn main() { - let a2: GenericStruct; - a2 = GenericStruct(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics3.rs b/gcc/testsuite/rust.test/xfail_compile/generics3.rs deleted file mode 100644 index 2d42105..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics3.rs +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } -struct GenericStruct(T, usize); - -fn main() { - let a2; - a2 = GenericStruct::(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics4.rs b/gcc/testsuite/rust.test/xfail_compile/generics4.rs deleted file mode 100644 index a831836..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics4.rs +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct GenericStruct(T, usize); - -fn main() { - let a2; - a2 = GenericStruct::(1, 456); // { dg-error "generic item takes at most 1 type arguments but 2 were supplied" } - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics5.rs b/gcc/testsuite/rust.test/xfail_compile/generics5.rs deleted file mode 100644 index e70afa8..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics5.rs +++ /dev/null @@ -1,13 +0,0 @@ -// Current errors are too noisy to match specific ones. -// { dg-error "failed to resolve TypePath: T" "" { target *-*-* } 0 } -// { dg-error "unresolved type" "" { target *-*-* } 0 } - -struct GenericStruct(T, usize); - -fn main() { - let a2; - a2 = GenericStruct::(1, 456); - - let b2: i32 = a2.0; - let c2: usize = a2.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics6.rs b/gcc/testsuite/rust.test/xfail_compile/generics6.rs deleted file mode 100644 index 4cf45fd..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics6.rs +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct Foo { - a: A, -} - -impl Foo { - fn test() -> i32 { // { dg-error "possible candidate" "TODO" { xfail *-*-* } } - 123 - } - - fn bar(self) -> isize { - self.a - } -} - -impl Foo { - fn test() -> i32 { // { dg-error "possible candidate" "TODO" { xfail *-*-* } } - 123 - } - - fn bar(self) -> f32 { - self.a - } -} - -fn main() { - let a: i32 = Foo::test(); // { dg-error "multiple applicable items in scope for: test" } -} - diff --git a/gcc/testsuite/rust.test/xfail_compile/generics7.rs b/gcc/testsuite/rust.test/xfail_compile/generics7.rs deleted file mode 100644 index 78b6149..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics7.rs +++ /dev/null @@ -1,26 +0,0 @@ -struct Foo { - a: A, -} - -impl Foo { - fn bar(self) -> isize { // { dg-error "duplicate definitions with name bar" } - self.a - } -} - -impl Foo { - fn bar(self) -> char { // { dg-error "duplicate definitions with name bar" } - self.a - } -} - -impl Foo { - fn bar(self) -> T { // { dg-error "duplicate definitions with name bar" } - self.a - } -} - -fn main() { - let a = Foo { a: 123 }; - a.bar(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics8.rs b/gcc/testsuite/rust.test/xfail_compile/generics8.rs deleted file mode 100644 index 70bad1a..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics8.rs +++ /dev/null @@ -1,15 +0,0 @@ -struct Foo(A, B); - -impl Foo { - fn test(a: T) -> T { // { dg-error "duplicate definitions with name test" } - a - } -} - -impl Foo { - fn test() -> f32 { // { dg-error "duplicate definitions with name test" } - 123f32 - } -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/generics9.rs b/gcc/testsuite/rust.test/xfail_compile/generics9.rs deleted file mode 100644 index 3c5a244..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/generics9.rs +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct Foo(A, B); -// { dg-error "failed to resolve TypePath: B" "" { target *-*-* } .-1 } - -fn main() { - let a: Foo; - a = Foo::(true, (false, true)); - - let b: (bool, bool); - b = a.1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable1.rs b/gcc/testsuite/rust.test/xfail_compile/immutable1.rs deleted file mode 100644 index d78c1b7..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/immutable1.rs +++ /dev/null @@ -1,5 +0,0 @@ -static x: i32 = 3; - -fn main() { - x = 1; /* { dg-error "cannot assign to immutable" } */ -} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable2.rs b/gcc/testsuite/rust.test/xfail_compile/immutable2.rs deleted file mode 100644 index 86e70fe..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/immutable2.rs +++ /dev/null @@ -1,5 +0,0 @@ -const TEST_CONST: i32 = 10; - -fn main() { - TEST_CONST = 1; // { dg-error "cannot assign to immutable" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable3.rs b/gcc/testsuite/rust.test/xfail_compile/immutable3.rs deleted file mode 100644 index fb60280..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/immutable3.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let a = 1; - a += 2; // { dg-error "cannot assign to immutable" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable4.rs b/gcc/testsuite/rust.test/xfail_compile/immutable4.rs deleted file mode 100644 index fb14554..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/immutable4.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - let array: [i32; 3] = [0; 3]; - array[0] = 1; // { dg-error "cannot assign to immutable" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/immutable5.rs b/gcc/testsuite/rust.test/xfail_compile/immutable5.rs deleted file mode 100644 index db23609..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/immutable5.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct Foo(f32, i32); - -fn main() { - let a = Foo(1, 2); - a.0 = 22; // { dg-error "cannot assign to immutable" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs deleted file mode 100644 index 973ba80..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err1.rs +++ /dev/null @@ -1,12 +0,0 @@ -fn test(x: i32) -> i32 { - if x > 1 { // { dg-error "expected .... got .." } - 1 - } else { - 2 - } - 3 -} - -fn main() { - let a = test(1); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs deleted file mode 100644 index fb90748..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err2.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn test(x: i32) -> i32 { - // { dg-error "expected .i32. got .bool." "" { target *-*-* } .-1 } - return 1; - // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } - true -} - -fn main() { - let a = test(1); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs deleted file mode 100644 index 37b1c62..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err3.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test(x: i32) -> i32 { // { dg-error "expected .i32. got ...." } - if x > 1 { - 1 - } -} - -fn main() { - let a = test(9); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err4.rs b/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err4.rs deleted file mode 100644 index 59c6a02..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/implicit_returns_err4.rs +++ /dev/null @@ -1,10 +0,0 @@ -fn test(x: bool) -> bool { - // { dg-error "expected .bool. got ...." "" { target *-*-*} .-1 } - return x; - // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } - () -} - -fn main() { - let a = test(true); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/issue-407-2.rs b/gcc/testsuite/rust.test/xfail_compile/issue-407-2.rs deleted file mode 100644 index e45fbde..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/issue-407-2.rs +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } - -// #407 -pub fn loopy() { - let mut a = 1; - loop { - if a < 40 { - a + = 1; // { dg-error "found unexpected token '=' in null denotation" } - } else { - break; - } - } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/issue-407.rs b/gcc/testsuite/rust.test/xfail_compile/issue-407.rs deleted file mode 100644 index f51f7f9b..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/issue-407.rs +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } - -// This already worked before the #409 code changes. -fn test() { - let mut a = 1; - a + = 1; // { dg-error "found unexpected token '=' in null denotation" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/method1.rs b/gcc/testsuite/rust.test/xfail_compile/method1.rs deleted file mode 100644 index 51bc821..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/method1.rs +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct Foo(i32); - -impl Foo { - fn test() {} -} - -pub fn main() { - let a; - a = Foo(123); - - a.test() - // { dg-error "associated function is not a method" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/method2.rs b/gcc/testsuite/rust.test/xfail_compile/method2.rs deleted file mode 100644 index be43b1a..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/method2.rs +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct Foo(A, B); - -impl Foo { - fn test(self, a: X) -> X { - a - } -} - -fn main() { - let a; - a = Foo(123, 456f32); - - let b; - b = a.test::(false); - // { dg-error "failed to resolve TypePath: asfasfr" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs b/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs deleted file mode 100644 index 00bf393..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/missing_return1.rs +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-error "expected .* got .*" "" { target *-*-* } 0 } -fn test1() -> i32 {} - -fn main() { - let call1 = test1(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/never_type_err1.rs b/gcc/testsuite/rust.test/xfail_compile/never_type_err1.rs deleted file mode 100644 index 52b1283..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/never_type_err1.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn test() { - let a; - - // FIXME: Unimplemented features - a = if true { // { dg-error "expected .T.. got .!." } - return; - } else { - return; - }; -} - -fn main() { - test(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/never_type_err2.rs b/gcc/testsuite/rust.test/xfail_compile/never_type_err2.rs deleted file mode 100644 index c94cb82..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/never_type_err2.rs +++ /dev/null @@ -1,4 +0,0 @@ -// FIXME: Unimplemented features -fn foo() -> ! { // { dg-error "unresolved type" } - let a: !; // { dg-error "unresolved type" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_bad_keywords.rs b/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_bad_keywords.rs deleted file mode 100644 index 854d7e6..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_bad_keywords.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn plus(n: i32, m: i32) -> i32 { - r#crate /* { dg-error "forbidden raw identifier" } */ -} diff --git a/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_underscore.rs b/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_underscore.rs deleted file mode 100644 index 86e9013..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/raw_identifiers_underscore.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn s(num: i32) -> i32 { - r#_ * num /* { dg-error "not a valid raw identifier" } */ -} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs deleted file mode 100644 index ae51e36..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error1.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct S1 { - x: f64, - y: f64, -} - -struct S1(i32, bool); // { dg-error "redefined multiple times" } - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs deleted file mode 100644 index 65793bc..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error2.rs +++ /dev/null @@ -1,4 +0,0 @@ -const TEST: i32 = 2; -const TEST: f32 = 3.0; // { dg-error "redefined multiple times" } - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs deleted file mode 100644 index a4bf1ed..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error3.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn test() -> bool { - true -} - -fn test() -> i32 { // { dg-error "redefined multiple times" } - 123 -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error4.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error4.rs deleted file mode 100644 index a250c0a..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error4.rs +++ /dev/null @@ -1,27 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - fn new(a: i32, b: bool) -> Foo { - Foo(a, b) - } - - fn test() -> i32 { - test() - } - - fn test() -> bool { // { dg-error "redefined multiple times" } - true - } -} - -fn test() -> i32 { - 123 -} - -fn main() { - let a; - a = Foo::new(1, true); - - let b; - b = Foo::test(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs deleted file mode 100644 index dc6ad50..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error5.rs +++ /dev/null @@ -1,8 +0,0 @@ -struct Foo(i32, bool); - -impl Foo { - const TEST: i32 = 123; - const TEST: bool = false; // { dg-error "redefined multiple times" } -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/redef_error6.rs b/gcc/testsuite/rust.test/xfail_compile/redef_error6.rs deleted file mode 100644 index 664c6ae..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/redef_error6.rs +++ /dev/null @@ -1,13 +0,0 @@ -struct Foo(T, usize); - -impl Foo { - fn test() -> i32 { - 123 - } - - fn test(self) -> i32 { // { dg-error "redefined multiple times" } - self.0 - } -} - -fn main() {} diff --git a/gcc/testsuite/rust.test/xfail_compile/shadow1.rs b/gcc/testsuite/rust.test/xfail_compile/shadow1.rs deleted file mode 100644 index 35779bb..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/shadow1.rs +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -fn main() { - let mut x = 5; - let mut x; - x = true; - x = x + 2; // { dg-error "cannot apply this operator to types bool and " } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/static_var1.rs b/gcc/testsuite/rust.test/xfail_compile/static_var1.rs deleted file mode 100644 index b3b5751..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/static_var1.rs +++ /dev/null @@ -1,5 +0,0 @@ -static x = 3; // { dg-error "expecting ':' but '=' found" } - -fn main() {// { dg-error "failed to parse item in crate" } - let y = x +1; -} diff --git a/gcc/testsuite/rust.test/xfail_compile/stmt_with_block_err1.rs b/gcc/testsuite/rust.test/xfail_compile/stmt_with_block_err1.rs deleted file mode 100644 index 8780d0f..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/stmt_with_block_err1.rs +++ /dev/null @@ -1,17 +0,0 @@ -fn test(x: i32) -> i32 { - if x > 1 { // { dg-error "expected .... got .." } - 1 - } else { - 2 - } - - { // { dg-error "expected .... got .." } - 3 - } - - 3 -} - -fn main() { - let a = test(0); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs b/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs deleted file mode 100644 index 0554f29..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/struct_init1.rs +++ /dev/null @@ -1,9 +0,0 @@ -struct Foo { - a: f32, - b: f32, -} - -fn main() { - let a = Foo { 0: 10.0, 1: 20.0 }; // { dg-error "failed to resolve type for field" } - // { dg-error "unknown field" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple1.rs b/gcc/testsuite/rust.test/xfail_compile/tuple1.rs deleted file mode 100644 index 84179b1..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/tuple1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a: (i32, bool) = (123, 123); // { dg-error "expected .bool. got .." } - let b; - b = (456, 5f32); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs deleted file mode 100644 index 87e4c3b..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/tuple_struct1.rs +++ /dev/null @@ -1,10 +0,0 @@ -struct Foo { - one: i32, - two: i32, -} - -fn main() { - let a = Foo(1, 2); // { dg-error "expected function, tuple struct or tuple variant, found struct `Foo`" } - // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs deleted file mode 100644 index dba0511..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/tuple_struct2.rs +++ /dev/null @@ -1,7 +0,0 @@ -struct Bar(i32, i32, bool); - -fn main() { - let a = Bar(1, 2); // { dg-error "unexpected number of arguments 2 expected 3" } - // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } - // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs b/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs deleted file mode 100644 index c52a610..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/tuple_struct3.rs +++ /dev/null @@ -1,5 +0,0 @@ -struct Foo(i32, i32, bool); - -fn main() { - let c = Foo(1, 2f32, true); // { dg-error "expected .i32. got .f32." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/type-alias1.rs b/gcc/testsuite/rust.test/xfail_compile/type-alias1.rs deleted file mode 100644 index c7d7048..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/type-alias1.rs +++ /dev/null @@ -1,6 +0,0 @@ -type TypeAlias = (i32, u32); - -fn main() { - let a: TypeAlias; - a = (123, 456f32); // { dg-error "expected .u32. got .f32." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/type-bindings1.rs b/gcc/testsuite/rust.test/xfail_compile/type-bindings1.rs deleted file mode 100644 index 4cd045c..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/type-bindings1.rs +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -struct Foo(A, B); - -fn main() { - let a; - a = Foo::(123f32); - // { dg-error "associated type bindings are not allowed here" "" { target *-*-* } .-1 } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs b/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs deleted file mode 100644 index 1acb853..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/unary_negation.rs +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } - -fn main() { - let a: i32 = -1; - let b: i32 = 3 - -1; - let c: bool = !false; - let d: i32 = !3; - - let e: f32 = -true; // // { dg-error "cannot apply unary - to bool" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/unary_not.rs b/gcc/testsuite/rust.test/xfail_compile/unary_not.rs deleted file mode 100644 index 1620b40..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/unary_not.rs +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-excess-errors "Noisy error and debug" } -fn main() { - let a: i32 = -1; - let b: i32 = 3 - -1; - let c: bool = !false; - let d: i32 = !3; - - let e: f32 = !5f32; // { dg-error "cannot apply unary ! to f32" } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/unconstrained_type_param.rs b/gcc/testsuite/rust.test/xfail_compile/unconstrained_type_param.rs deleted file mode 100644 index c4aaa10..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/unconstrained_type_param.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo(T, bool); - -impl Foo { - // { dg-error "unconstrained type parameter" "" { target *-*-* } .-1 } - fn test() -> Y { - 123 - } -} - -fn main() { - let a = Foo::test(); -} diff --git a/gcc/testsuite/rust.test/xfail_compile/unsafe.rs b/gcc/testsuite/rust.test/xfail_compile/unsafe.rs deleted file mode 100644 index d0cb87d..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/unsafe.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { // { dg-ice "#382" } - unsafe { - } - () -} diff --git a/gcc/testsuite/rust.test/xfail_compile/unterminated_c_comment.rs b/gcc/testsuite/rust.test/xfail_compile/unterminated_c_comment.rs deleted file mode 100644 index 619b7b7..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/unterminated_c_comment.rs +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-error "unexpected EOF while looking for end of comment" "" { target *-*-* } .+1 } -/* This comment needs closure :) ! diff --git a/gcc/testsuite/rust.test/xfail_compile/usize1.rs b/gcc/testsuite/rust.test/xfail_compile/usize1.rs deleted file mode 100644 index 8c12789..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/usize1.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let a = [1, 2, 3]; - let b: u32 = 1; - let c = a[b]; // { dg-error "expected .usize. got .u32." } -} diff --git a/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp b/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp deleted file mode 100644 index 1936587..0000000 --- a/gcc/testsuite/rust.test/xfail_compile/xfail_compile.exp +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2021 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GCC; see the file COPYING3. If not see -# . - -# -# Rust test suite. -# These tests are expected to raise an error in the frontend -# - -# Load support procs. -load_lib rust-dg.exp - -# Initialize `dg'. -dg-init - -# Main loop. -set saved-dg-do-what-default ${dg-do-what-default} - -set dg-do-what-default "compile" -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" -set dg-do-what-default ${saved-dg-do-what-default} - -# All done. -dg-finish diff --git a/gcc/testsuite/rust/compile/array_empty_list.rs b/gcc/testsuite/rust/compile/array_empty_list.rs new file mode 100644 index 0000000..76e082a --- /dev/null +++ b/gcc/testsuite/rust/compile/array_empty_list.rs @@ -0,0 +1,4 @@ +fn main() { + let arr = []; + // { dg-error "type annotations needed" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/arrays1.rs b/gcc/testsuite/rust/compile/arrays1.rs new file mode 100644 index 0000000..714a6be --- /dev/null +++ b/gcc/testsuite/rust/compile/arrays1.rs @@ -0,0 +1,4 @@ +fn main() { + let xs: [i32; 5] = [1, 2, 3, 4, 5]; + let a: bool = xs[0]; // { dg-error "expected .bool. got .i32." } +} diff --git a/gcc/testsuite/rust/compile/arrays2.rs b/gcc/testsuite/rust/compile/arrays2.rs new file mode 100644 index 0000000..9c788db --- /dev/null +++ b/gcc/testsuite/rust/compile/arrays2.rs @@ -0,0 +1,4 @@ +fn main() { + let array: [i32; 5] = [1, 2, 3]; + // { dg-error "expected ..i32:5.. got ..i32:3.." "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/bad_type1.rs b/gcc/testsuite/rust/compile/bad_type1.rs new file mode 100644 index 0000000..93de439 --- /dev/null +++ b/gcc/testsuite/rust/compile/bad_type1.rs @@ -0,0 +1,3 @@ +fn main() { + let logical: bool = 123; // { dg-error "expected .bool. got .." } +} diff --git a/gcc/testsuite/rust/compile/bad_type2.rs b/gcc/testsuite/rust/compile/bad_type2.rs new file mode 100644 index 0000000..e47b8aa --- /dev/null +++ b/gcc/testsuite/rust/compile/bad_type2.rs @@ -0,0 +1,14 @@ +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let mut an_integer = 5; + an_integer = test(1) + 3; + + let mut x; + x = 1; + x = true; // { dg-error "expected .. got .bool." } + + let call_test = test(1); +} diff --git a/gcc/testsuite/rust/compile/break1.rs b/gcc/testsuite/rust/compile/break1.rs new file mode 100644 index 0000000..74f2809 --- /dev/null +++ b/gcc/testsuite/rust/compile/break1.rs @@ -0,0 +1,6 @@ +fn main() { + let a; + a = 1; + break a; // { dg-error "cannot `break` outside of a loop" } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/break2.rs b/gcc/testsuite/rust/compile/break2.rs new file mode 100644 index 0000000..4279e70 --- /dev/null +++ b/gcc/testsuite/rust/compile/break2.rs @@ -0,0 +1,15 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + let mut c; + while b > 10 { + if (b == 2) { + break b; // { dg-error "can only break with a value inside `loop`" } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } + } + c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust/compile/compile.exp b/gcc/testsuite/rust/compile/compile.exp new file mode 100644 index 0000000..8162a73 --- /dev/null +++ b/gcc/testsuite/rust/compile/compile.exp @@ -0,0 +1,35 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Compile tests, no torture testing. +# +# These tests raise errors in the front end; torture testing doesn't apply. + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "compile" +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust/compile/continue1.rs b/gcc/testsuite/rust/compile/continue1.rs new file mode 100644 index 0000000..7d8e083 --- /dev/null +++ b/gcc/testsuite/rust/compile/continue1.rs @@ -0,0 +1,10 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + let _fib = { + continue; // { dg-error "cannot `continue` outside of a loop" } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-1 } + 123 + }; +} diff --git a/gcc/testsuite/rust/compile/deadcode_err1.rs b/gcc/testsuite/rust/compile/deadcode_err1.rs new file mode 100644 index 0000000..1dbe957 --- /dev/null +++ b/gcc/testsuite/rust/compile/deadcode_err1.rs @@ -0,0 +1,11 @@ +fn foo() -> i32 { + return 1; + + let mut a = 1; // { dg-warning "unreachable statement" } + a = 1.1; // { dg-warning "unreachable statement" } + // { dg-error "expected .. got .." "" { target *-*-* } .-1 } +} + +fn main() { + foo(); +} diff --git a/gcc/testsuite/rust/compile/deadcode_err2.rs b/gcc/testsuite/rust/compile/deadcode_err2.rs new file mode 100644 index 0000000..8c0eb46 --- /dev/null +++ b/gcc/testsuite/rust/compile/deadcode_err2.rs @@ -0,0 +1,16 @@ +fn foo() -> i32 { + return 1; + return 1.5; // { dg-error "expected .i32. got .." } + // { dg-warning "unreachable statement" "" { target *-*-* } .-1 } +} + +fn bar() -> i32 { + return 1.5; // { dg-error "expected .i32. got .." } + return 1; + // { dg-warning "unreachable statement" "" { target *-*-* } .-1 } +} + +fn main() { + foo(); + bar(); +} diff --git a/gcc/testsuite/rust/compile/expected_type_args2.rs b/gcc/testsuite/rust/compile/expected_type_args2.rs new file mode 100644 index 0000000..7945420 --- /dev/null +++ b/gcc/testsuite/rust/compile/expected_type_args2.rs @@ -0,0 +1,6 @@ +struct Foo(A); + +fn main() { + let a: Foo = Foo::(123); + // { dg-error "generic item takes at least 1 type arguments but 0 were supplied" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/expected_type_args3.rs b/gcc/testsuite/rust/compile/expected_type_args3.rs new file mode 100644 index 0000000..ba07239 --- /dev/null +++ b/gcc/testsuite/rust/compile/expected_type_args3.rs @@ -0,0 +1,8 @@ +struct Foo(A); + +impl Foo { + // { dg-error "generic item takes at least 1 type arguments but 0 were supplied" "" { target *-*-* } .-1 } + fn test() -> i32 { + 123 + } +} diff --git a/gcc/testsuite/rust/compile/func1.rs b/gcc/testsuite/rust/compile/func1.rs new file mode 100644 index 0000000..6758a38 --- /dev/null +++ b/gcc/testsuite/rust/compile/func1.rs @@ -0,0 +1,9 @@ +fn test(x: i32) -> bool { + return x + 1; // { dg-error "expected .bool. got .i32." } +} + +fn main() { + let an_integer = 5; + + let call_test = test(1); +} diff --git a/gcc/testsuite/rust/compile/func2.rs b/gcc/testsuite/rust/compile/func2.rs new file mode 100644 index 0000000..219bbfe --- /dev/null +++ b/gcc/testsuite/rust/compile/func2.rs @@ -0,0 +1,9 @@ +fn test(a: i32, b: i32) -> i32 { + a + b +} + +fn main() { + let a = test(1); // { dg-error "unexpected number of arguments 1 expected 2" } + // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } +} diff --git a/gcc/testsuite/rust/compile/func3.rs b/gcc/testsuite/rust/compile/func3.rs new file mode 100644 index 0000000..6cedf8e --- /dev/null +++ b/gcc/testsuite/rust/compile/func3.rs @@ -0,0 +1,7 @@ +fn test(a: i32, b: i32) -> i32 { + a + b +} + +fn main() { + let a = test(1, true); // { dg-error "expected .i32. got .bool." } +} diff --git a/gcc/testsuite/rust/compile/func4.rs b/gcc/testsuite/rust/compile/func4.rs new file mode 100644 index 0000000..3b2d2b0 --- /dev/null +++ b/gcc/testsuite/rust/compile/func4.rs @@ -0,0 +1,6 @@ +fn func() -> i32 { // { dg-error "expected .i32. got ...." } +} + +fn main() { + func(); +} diff --git a/gcc/testsuite/rust/compile/func5.rs b/gcc/testsuite/rust/compile/func5.rs new file mode 100644 index 0000000..05624f5 --- /dev/null +++ b/gcc/testsuite/rust/compile/func5.rs @@ -0,0 +1,7 @@ +fn func() -> i32 { + return; // { dg-error "expected .i32. got ...." } +} + +fn main() { + func(); +} diff --git a/gcc/testsuite/rust/compile/generic-default1.rs b/gcc/testsuite/rust/compile/generic-default1.rs new file mode 100644 index 0000000..1b04f7d --- /dev/null +++ b/gcc/testsuite/rust/compile/generic-default1.rs @@ -0,0 +1,9 @@ +// { dg-error "unresolved type" "" { target *-*-* } 0 } + +struct Foo(A); +// { dg-error "failed to resolve TypePath: i321" "" { target *-*-* } .-1 } + +fn main() { + let a; + a = Foo(123); +} diff --git a/gcc/testsuite/rust/compile/generics1.rs b/gcc/testsuite/rust/compile/generics1.rs new file mode 100644 index 0000000..de1bbf5 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics1.rs @@ -0,0 +1,11 @@ +// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } + +struct GenericStruct(T, usize); + +fn main() { + let a2: GenericStruct; + a2 = GenericStruct::<_>(1, 456); + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust/compile/generics10.rs b/gcc/testsuite/rust/compile/generics10.rs new file mode 100644 index 0000000..a734fa8 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics10.rs @@ -0,0 +1,12 @@ +struct Foo(A, B); + +impl Foo { // { dg-error "defaults for type parameters are not allowed here" } + fn new(a: X, b: f32) -> Self { + Self(a, b) + } +} + +fn main() { + let a; + a = Foo::new(123, 456f32); +} diff --git a/gcc/testsuite/rust/compile/generics11.rs b/gcc/testsuite/rust/compile/generics11.rs new file mode 100644 index 0000000..4d3b9e1 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics11.rs @@ -0,0 +1,12 @@ +struct Foo(T, bool); + +impl Foo { + fn test() -> i32 { + 123 + } +} + +fn main() { + let a = Foo::test(); + // { dg-error "type annotations needed" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/generics12.rs b/gcc/testsuite/rust/compile/generics12.rs new file mode 100644 index 0000000..f1ac8b0 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics12.rs @@ -0,0 +1,6 @@ +fn main() { + bar(); + // { dg-error "type annotations needed" "" { target *-*-* } .-1 } +} + +fn bar() {} diff --git a/gcc/testsuite/rust/compile/generics2.rs b/gcc/testsuite/rust/compile/generics2.rs new file mode 100644 index 0000000..5812b13 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics2.rs @@ -0,0 +1,11 @@ +// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } + +struct GenericStruct(T, usize); + +fn main() { + let a2: GenericStruct; + a2 = GenericStruct(1, 456); + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust/compile/generics3.rs b/gcc/testsuite/rust/compile/generics3.rs new file mode 100644 index 0000000..2d42105 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics3.rs @@ -0,0 +1,10 @@ +// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 } +struct GenericStruct(T, usize); + +fn main() { + let a2; + a2 = GenericStruct::(1, 456); + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust/compile/generics4.rs b/gcc/testsuite/rust/compile/generics4.rs new file mode 100644 index 0000000..a831836 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics4.rs @@ -0,0 +1,10 @@ +// { dg-excess-errors "Noisy error and debug" } +struct GenericStruct(T, usize); + +fn main() { + let a2; + a2 = GenericStruct::(1, 456); // { dg-error "generic item takes at most 1 type arguments but 2 were supplied" } + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust/compile/generics5.rs b/gcc/testsuite/rust/compile/generics5.rs new file mode 100644 index 0000000..e70afa8 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics5.rs @@ -0,0 +1,13 @@ +// Current errors are too noisy to match specific ones. +// { dg-error "failed to resolve TypePath: T" "" { target *-*-* } 0 } +// { dg-error "unresolved type" "" { target *-*-* } 0 } + +struct GenericStruct(T, usize); + +fn main() { + let a2; + a2 = GenericStruct::(1, 456); + + let b2: i32 = a2.0; + let c2: usize = a2.1; +} diff --git a/gcc/testsuite/rust/compile/generics6.rs b/gcc/testsuite/rust/compile/generics6.rs new file mode 100644 index 0000000..4cf45fd --- /dev/null +++ b/gcc/testsuite/rust/compile/generics6.rs @@ -0,0 +1,29 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo { + a: A, +} + +impl Foo { + fn test() -> i32 { // { dg-error "possible candidate" "TODO" { xfail *-*-* } } + 123 + } + + fn bar(self) -> isize { + self.a + } +} + +impl Foo { + fn test() -> i32 { // { dg-error "possible candidate" "TODO" { xfail *-*-* } } + 123 + } + + fn bar(self) -> f32 { + self.a + } +} + +fn main() { + let a: i32 = Foo::test(); // { dg-error "multiple applicable items in scope for: test" } +} + diff --git a/gcc/testsuite/rust/compile/generics7.rs b/gcc/testsuite/rust/compile/generics7.rs new file mode 100644 index 0000000..78b6149 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics7.rs @@ -0,0 +1,26 @@ +struct Foo { + a: A, +} + +impl Foo { + fn bar(self) -> isize { // { dg-error "duplicate definitions with name bar" } + self.a + } +} + +impl Foo { + fn bar(self) -> char { // { dg-error "duplicate definitions with name bar" } + self.a + } +} + +impl Foo { + fn bar(self) -> T { // { dg-error "duplicate definitions with name bar" } + self.a + } +} + +fn main() { + let a = Foo { a: 123 }; + a.bar(); +} diff --git a/gcc/testsuite/rust/compile/generics8.rs b/gcc/testsuite/rust/compile/generics8.rs new file mode 100644 index 0000000..70bad1a --- /dev/null +++ b/gcc/testsuite/rust/compile/generics8.rs @@ -0,0 +1,15 @@ +struct Foo(A, B); + +impl Foo { + fn test(a: T) -> T { // { dg-error "duplicate definitions with name test" } + a + } +} + +impl Foo { + fn test() -> f32 { // { dg-error "duplicate definitions with name test" } + 123f32 + } +} + +fn main() {} diff --git a/gcc/testsuite/rust/compile/generics9.rs b/gcc/testsuite/rust/compile/generics9.rs new file mode 100644 index 0000000..3c5a244 --- /dev/null +++ b/gcc/testsuite/rust/compile/generics9.rs @@ -0,0 +1,11 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo(A, B); +// { dg-error "failed to resolve TypePath: B" "" { target *-*-* } .-1 } + +fn main() { + let a: Foo; + a = Foo::(true, (false, true)); + + let b: (bool, bool); + b = a.1; +} diff --git a/gcc/testsuite/rust/compile/immutable1.rs b/gcc/testsuite/rust/compile/immutable1.rs new file mode 100644 index 0000000..d78c1b7 --- /dev/null +++ b/gcc/testsuite/rust/compile/immutable1.rs @@ -0,0 +1,5 @@ +static x: i32 = 3; + +fn main() { + x = 1; /* { dg-error "cannot assign to immutable" } */ +} diff --git a/gcc/testsuite/rust/compile/immutable2.rs b/gcc/testsuite/rust/compile/immutable2.rs new file mode 100644 index 0000000..86e70fe --- /dev/null +++ b/gcc/testsuite/rust/compile/immutable2.rs @@ -0,0 +1,5 @@ +const TEST_CONST: i32 = 10; + +fn main() { + TEST_CONST = 1; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust/compile/immutable3.rs b/gcc/testsuite/rust/compile/immutable3.rs new file mode 100644 index 0000000..fb60280 --- /dev/null +++ b/gcc/testsuite/rust/compile/immutable3.rs @@ -0,0 +1,4 @@ +fn main() { + let a = 1; + a += 2; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust/compile/immutable4.rs b/gcc/testsuite/rust/compile/immutable4.rs new file mode 100644 index 0000000..fb14554 --- /dev/null +++ b/gcc/testsuite/rust/compile/immutable4.rs @@ -0,0 +1,4 @@ +fn main() { + let array: [i32; 3] = [0; 3]; + array[0] = 1; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust/compile/immutable5.rs b/gcc/testsuite/rust/compile/immutable5.rs new file mode 100644 index 0000000..db23609 --- /dev/null +++ b/gcc/testsuite/rust/compile/immutable5.rs @@ -0,0 +1,6 @@ +struct Foo(f32, i32); + +fn main() { + let a = Foo(1, 2); + a.0 = 22; // { dg-error "cannot assign to immutable" } +} diff --git a/gcc/testsuite/rust/compile/implicit_returns_err1.rs b/gcc/testsuite/rust/compile/implicit_returns_err1.rs new file mode 100644 index 0000000..973ba80 --- /dev/null +++ b/gcc/testsuite/rust/compile/implicit_returns_err1.rs @@ -0,0 +1,12 @@ +fn test(x: i32) -> i32 { + if x > 1 { // { dg-error "expected .... got .." } + 1 + } else { + 2 + } + 3 +} + +fn main() { + let a = test(1); +} diff --git a/gcc/testsuite/rust/compile/implicit_returns_err2.rs b/gcc/testsuite/rust/compile/implicit_returns_err2.rs new file mode 100644 index 0000000..fb90748 --- /dev/null +++ b/gcc/testsuite/rust/compile/implicit_returns_err2.rs @@ -0,0 +1,10 @@ +fn test(x: i32) -> i32 { + // { dg-error "expected .i32. got .bool." "" { target *-*-* } .-1 } + return 1; + // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } + true +} + +fn main() { + let a = test(1); +} diff --git a/gcc/testsuite/rust/compile/implicit_returns_err3.rs b/gcc/testsuite/rust/compile/implicit_returns_err3.rs new file mode 100644 index 0000000..37b1c62 --- /dev/null +++ b/gcc/testsuite/rust/compile/implicit_returns_err3.rs @@ -0,0 +1,9 @@ +fn test(x: i32) -> i32 { // { dg-error "expected .i32. got ...." } + if x > 1 { + 1 + } +} + +fn main() { + let a = test(9); +} diff --git a/gcc/testsuite/rust/compile/implicit_returns_err4.rs b/gcc/testsuite/rust/compile/implicit_returns_err4.rs new file mode 100644 index 0000000..59c6a02 --- /dev/null +++ b/gcc/testsuite/rust/compile/implicit_returns_err4.rs @@ -0,0 +1,10 @@ +fn test(x: bool) -> bool { + // { dg-error "expected .bool. got ...." "" { target *-*-*} .-1 } + return x; + // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } + () +} + +fn main() { + let a = test(true); +} diff --git a/gcc/testsuite/rust/compile/issue-407-2.rs b/gcc/testsuite/rust/compile/issue-407-2.rs new file mode 100644 index 0000000..e45fbde --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-407-2.rs @@ -0,0 +1,13 @@ +// { dg-excess-errors "Noisy error and debug" } + +// #407 +pub fn loopy() { + let mut a = 1; + loop { + if a < 40 { + a + = 1; // { dg-error "found unexpected token '=' in null denotation" } + } else { + break; + } + } +} diff --git a/gcc/testsuite/rust/compile/issue-407.rs b/gcc/testsuite/rust/compile/issue-407.rs new file mode 100644 index 0000000..f51f7f9b --- /dev/null +++ b/gcc/testsuite/rust/compile/issue-407.rs @@ -0,0 +1,7 @@ +// { dg-excess-errors "Noisy error and debug" } + +// This already worked before the #409 code changes. +fn test() { + let mut a = 1; + a + = 1; // { dg-error "found unexpected token '=' in null denotation" } +} diff --git a/gcc/testsuite/rust/compile/method1.rs b/gcc/testsuite/rust/compile/method1.rs new file mode 100644 index 0000000..51bc821 --- /dev/null +++ b/gcc/testsuite/rust/compile/method1.rs @@ -0,0 +1,14 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo(i32); + +impl Foo { + fn test() {} +} + +pub fn main() { + let a; + a = Foo(123); + + a.test() + // { dg-error "associated function is not a method" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/method2.rs b/gcc/testsuite/rust/compile/method2.rs new file mode 100644 index 0000000..be43b1a --- /dev/null +++ b/gcc/testsuite/rust/compile/method2.rs @@ -0,0 +1,17 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo(A, B); + +impl Foo { + fn test(self, a: X) -> X { + a + } +} + +fn main() { + let a; + a = Foo(123, 456f32); + + let b; + b = a.test::(false); + // { dg-error "failed to resolve TypePath: asfasfr" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/missing_return1.rs b/gcc/testsuite/rust/compile/missing_return1.rs new file mode 100644 index 0000000..00bf393 --- /dev/null +++ b/gcc/testsuite/rust/compile/missing_return1.rs @@ -0,0 +1,6 @@ +// { dg-error "expected .* got .*" "" { target *-*-* } 0 } +fn test1() -> i32 {} + +fn main() { + let call1 = test1(); +} diff --git a/gcc/testsuite/rust/compile/never_type_err1.rs b/gcc/testsuite/rust/compile/never_type_err1.rs new file mode 100644 index 0000000..52b1283 --- /dev/null +++ b/gcc/testsuite/rust/compile/never_type_err1.rs @@ -0,0 +1,14 @@ +fn test() { + let a; + + // FIXME: Unimplemented features + a = if true { // { dg-error "expected .T.. got .!." } + return; + } else { + return; + }; +} + +fn main() { + test(); +} diff --git a/gcc/testsuite/rust/compile/never_type_err2.rs b/gcc/testsuite/rust/compile/never_type_err2.rs new file mode 100644 index 0000000..c94cb82 --- /dev/null +++ b/gcc/testsuite/rust/compile/never_type_err2.rs @@ -0,0 +1,4 @@ +// FIXME: Unimplemented features +fn foo() -> ! { // { dg-error "unresolved type" } + let a: !; // { dg-error "unresolved type" } +} diff --git a/gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs b/gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs new file mode 100644 index 0000000..854d7e6 --- /dev/null +++ b/gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs @@ -0,0 +1,3 @@ +pub fn plus(n: i32, m: i32) -> i32 { + r#crate /* { dg-error "forbidden raw identifier" } */ +} diff --git a/gcc/testsuite/rust/compile/raw_identifiers_underscore.rs b/gcc/testsuite/rust/compile/raw_identifiers_underscore.rs new file mode 100644 index 0000000..86e9013 --- /dev/null +++ b/gcc/testsuite/rust/compile/raw_identifiers_underscore.rs @@ -0,0 +1,3 @@ +pub fn s(num: i32) -> i32 { + r#_ * num /* { dg-error "not a valid raw identifier" } */ +} diff --git a/gcc/testsuite/rust/compile/redef_error1.rs b/gcc/testsuite/rust/compile/redef_error1.rs new file mode 100644 index 0000000..ae51e36 --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error1.rs @@ -0,0 +1,8 @@ +struct S1 { + x: f64, + y: f64, +} + +struct S1(i32, bool); // { dg-error "redefined multiple times" } + +fn main() {} diff --git a/gcc/testsuite/rust/compile/redef_error2.rs b/gcc/testsuite/rust/compile/redef_error2.rs new file mode 100644 index 0000000..65793bc --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error2.rs @@ -0,0 +1,4 @@ +const TEST: i32 = 2; +const TEST: f32 = 3.0; // { dg-error "redefined multiple times" } + +fn main() {} diff --git a/gcc/testsuite/rust/compile/redef_error3.rs b/gcc/testsuite/rust/compile/redef_error3.rs new file mode 100644 index 0000000..a4bf1ed --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error3.rs @@ -0,0 +1,9 @@ +fn test() -> bool { + true +} + +fn test() -> i32 { // { dg-error "redefined multiple times" } + 123 +} + +fn main() {} diff --git a/gcc/testsuite/rust/compile/redef_error4.rs b/gcc/testsuite/rust/compile/redef_error4.rs new file mode 100644 index 0000000..a250c0a --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error4.rs @@ -0,0 +1,27 @@ +struct Foo(i32, bool); + +impl Foo { + fn new(a: i32, b: bool) -> Foo { + Foo(a, b) + } + + fn test() -> i32 { + test() + } + + fn test() -> bool { // { dg-error "redefined multiple times" } + true + } +} + +fn test() -> i32 { + 123 +} + +fn main() { + let a; + a = Foo::new(1, true); + + let b; + b = Foo::test(); +} diff --git a/gcc/testsuite/rust/compile/redef_error5.rs b/gcc/testsuite/rust/compile/redef_error5.rs new file mode 100644 index 0000000..dc6ad50 --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error5.rs @@ -0,0 +1,8 @@ +struct Foo(i32, bool); + +impl Foo { + const TEST: i32 = 123; + const TEST: bool = false; // { dg-error "redefined multiple times" } +} + +fn main() {} diff --git a/gcc/testsuite/rust/compile/redef_error6.rs b/gcc/testsuite/rust/compile/redef_error6.rs new file mode 100644 index 0000000..664c6ae --- /dev/null +++ b/gcc/testsuite/rust/compile/redef_error6.rs @@ -0,0 +1,13 @@ +struct Foo(T, usize); + +impl Foo { + fn test() -> i32 { + 123 + } + + fn test(self) -> i32 { // { dg-error "redefined multiple times" } + self.0 + } +} + +fn main() {} diff --git a/gcc/testsuite/rust/compile/shadow1.rs b/gcc/testsuite/rust/compile/shadow1.rs new file mode 100644 index 0000000..35779bb --- /dev/null +++ b/gcc/testsuite/rust/compile/shadow1.rs @@ -0,0 +1,7 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let mut x = 5; + let mut x; + x = true; + x = x + 2; // { dg-error "cannot apply this operator to types bool and " } +} diff --git a/gcc/testsuite/rust/compile/static_var1.rs b/gcc/testsuite/rust/compile/static_var1.rs new file mode 100644 index 0000000..b3b5751 --- /dev/null +++ b/gcc/testsuite/rust/compile/static_var1.rs @@ -0,0 +1,5 @@ +static x = 3; // { dg-error "expecting ':' but '=' found" } + +fn main() {// { dg-error "failed to parse item in crate" } + let y = x +1; +} diff --git a/gcc/testsuite/rust/compile/stmt_with_block_err1.rs b/gcc/testsuite/rust/compile/stmt_with_block_err1.rs new file mode 100644 index 0000000..8780d0f --- /dev/null +++ b/gcc/testsuite/rust/compile/stmt_with_block_err1.rs @@ -0,0 +1,17 @@ +fn test(x: i32) -> i32 { + if x > 1 { // { dg-error "expected .... got .." } + 1 + } else { + 2 + } + + { // { dg-error "expected .... got .." } + 3 + } + + 3 +} + +fn main() { + let a = test(0); +} diff --git a/gcc/testsuite/rust/compile/struct_init1.rs b/gcc/testsuite/rust/compile/struct_init1.rs new file mode 100644 index 0000000..0554f29 --- /dev/null +++ b/gcc/testsuite/rust/compile/struct_init1.rs @@ -0,0 +1,9 @@ +struct Foo { + a: f32, + b: f32, +} + +fn main() { + let a = Foo { 0: 10.0, 1: 20.0 }; // { dg-error "failed to resolve type for field" } + // { dg-error "unknown field" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs b/gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs new file mode 100644 index 0000000..4c3ee77 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs @@ -0,0 +1,30 @@ +// { dg-prune-output "warning: unused name" } as there are many of these expected. + +fn main() { + let a: i32 = 1; + let b: f32 = 5f32; + let c: bool = true; + + let a1: i32 = a + 1; + let a2: i32 = a - 2; + let a3: i32 = a * 3; + let a4: i32 = a / 4; + let a5: i32 = a % 5; + + let b1: f32 = b + 1f32; + let b2: f32 = b - 2f32; + let b3: f32 = b * 3f32; + let b4: f32 = b / 4f32; + // let b5: f32 = b % 5f32; + + let aa1: i32 = a & 1; + let aa2: i32 = a | 2; + let aa2: i32 = a ^ 3; + + let c1: bool = c & true; + let c2: bool = c | false; + let c3: bool = c ^ true; + + let aaa1: i32 = a << 1; + let aaa2: i32 = a >> 2; +} diff --git a/gcc/testsuite/rust/compile/torture/array_type_infer.rs b/gcc/testsuite/rust/compile/torture/array_type_infer.rs new file mode 100644 index 0000000..6f21bf2 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/array_type_infer.rs @@ -0,0 +1,4 @@ +fn main() { + let arr: [_; 5] = [1, 2, 3, 4, 5]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/array_zero_length.rs b/gcc/testsuite/rust/compile/torture/array_zero_length.rs new file mode 100644 index 0000000..3155b1c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/array_zero_length.rs @@ -0,0 +1,4 @@ +fn main() { + let arr = ["Hello"; 0]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/arrays1.rs b/gcc/testsuite/rust/compile/torture/arrays1.rs new file mode 100644 index 0000000..7250e0f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays1.rs @@ -0,0 +1,9 @@ +fn main() { + let xs: [i32; 5] = [1, 2, 3, 4, 5]; + let xy = [6, 7, 8]; + + let a = xs[0]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b = xy[2]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/arrays2.rs b/gcc/testsuite/rust/compile/torture/arrays2.rs new file mode 100644 index 0000000..55491f3 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays2.rs @@ -0,0 +1,8 @@ +fn main() { + let mut array: [i32; 3] = [0; 3]; + + let a = array[0]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let mut c; + c = array[2]; +} diff --git a/gcc/testsuite/rust/compile/torture/arrays3.rs b/gcc/testsuite/rust/compile/torture/arrays3.rs new file mode 100644 index 0000000..372d969 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays3.rs @@ -0,0 +1,6 @@ +const TEST: usize = 6; + +fn main() { + let a: [_; 12] = [123; TEST * 2]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/arrays4.rs b/gcc/testsuite/rust/compile/torture/arrays4.rs new file mode 100644 index 0000000..ac317fe --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays4.rs @@ -0,0 +1,6 @@ +const TEST: usize = 4; + +fn main() { + let a: [_; TEST + 1 + 2] = [123; 7]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/arrays_index1.rs b/gcc/testsuite/rust/compile/torture/arrays_index1.rs new file mode 100644 index 0000000..1fe5de9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays_index1.rs @@ -0,0 +1,9 @@ +fn main() { + let mut array: [i32; 3] = [0; 3]; + + let a = array[0]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let x = 0; + let mut c; + c = array[x+1]; +} diff --git a/gcc/testsuite/rust/compile/torture/arrays_index2.rs b/gcc/testsuite/rust/compile/torture/arrays_index2.rs new file mode 100644 index 0000000..f9bee77 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/arrays_index2.rs @@ -0,0 +1,4 @@ +fn main() { + let mut array: [i32; 3] = [0; 3]; + array[0] = 1; +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr1.rs b/gcc/testsuite/rust/compile/torture/block_expr1.rs new file mode 100644 index 0000000..011cc1f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr1.rs @@ -0,0 +1,29 @@ +fn test3(x: i32) -> i32 { + if x > 1 { + 5 + } else { + 0 + } +} + +fn test5(x: i32) -> i32 { + if x > 1 { + if x == 5 { + 7 + } else { + 9 + } + } else { + 0 + } +} + +fn main() { + let call3: i32 = { test3(3) + 2 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call5 = { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let a = test5(5); + a + 1 + }; +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr2.rs b/gcc/testsuite/rust/compile/torture/block_expr2.rs new file mode 100644 index 0000000..7c3ff69 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr2.rs @@ -0,0 +1,15 @@ +fn test() -> i32 { + 123 +} + +fn main() { + let a = { test() }; + let b = { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + if a > 10 { + a - 1 + } else { + a + 1 + } + }; +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr3.rs b/gcc/testsuite/rust/compile/torture/block_expr3.rs new file mode 100644 index 0000000..6914b63 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr3.rs @@ -0,0 +1,14 @@ +fn main() { + let x = 111; + + let a = { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + if x == 10 { + 123 + } else if x < 10 { + 456 + } else { + 789 + } + }; +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr4.rs b/gcc/testsuite/rust/compile/torture/block_expr4.rs new file mode 100644 index 0000000..da033ef --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr4.rs @@ -0,0 +1,8 @@ +fn foo() -> isize { + 0 +} + +fn main() { + let a = foo(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr5.rs b/gcc/testsuite/rust/compile/torture/block_expr5.rs new file mode 100644 index 0000000..7e164a9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr5.rs @@ -0,0 +1,40 @@ +fn foo() -> i32 { + 0 +} + +fn bar() -> i32 { + foo(); + foo() +} + +fn baz() -> i32 { + { + bar(); + bar(); + } + { + bar(); + bar() + }; + { + bar(); + bar() + } +} + +fn test(ok: i32) -> i32 { + if ok >= 1 { + foo() + } else if ok <= -1 { + bar() + } else { + baz() + } +} + +fn main() { + let a = foo(); + let b = bar(); + let c = baz(); + test(a + b + c); +} diff --git a/gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs b/gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs new file mode 100644 index 0000000..468aace --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs @@ -0,0 +1,5 @@ +fn main() { + let a = 123; + let b = if a > 10 { a - 1 } else { a + 1 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/borrow1.rs b/gcc/testsuite/rust/compile/torture/borrow1.rs new file mode 100644 index 0000000..8afa474 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/borrow1.rs @@ -0,0 +1,17 @@ +fn main() { + let a: i32; + a = 123; + + let b: &i32; + b = &a; + + let aa; + aa = 456; + let bb: &_; + bb = &a; + + let aaa; + aaa = 123; + let bbb; + bbb = &aaa; +} diff --git a/gcc/testsuite/rust/compile/torture/cfg_attr.rs b/gcc/testsuite/rust/compile/torture/cfg_attr.rs new file mode 100644 index 0000000..1915f34 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/cfg_attr.rs @@ -0,0 +1,8 @@ +use std::env; // Add one line so gccrs doesn't believe we're parsing a shebang + +#[cfg_attr(feature = "somefeature", attribute = "someattr")] +struct Feature; +// { dg-warning "unused name" "" { target *-*-* } .-1 } + +fn main() { +} diff --git a/gcc/testsuite/rust/compile/torture/char1.rs b/gcc/testsuite/rust/compile/torture/char1.rs new file mode 100644 index 0000000..73835c2 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/char1.rs @@ -0,0 +1,4 @@ +fn main() { + let a; + a = 'c'; +} diff --git a/gcc/testsuite/rust/compile/torture/comparison_expr1.rs b/gcc/testsuite/rust/compile/torture/comparison_expr1.rs new file mode 100644 index 0000000..ed71ec8 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/comparison_expr1.rs @@ -0,0 +1,38 @@ +fn is_zero(x: i32) -> bool { + x == 0 +} + +fn is_not_zero(x: i32) -> bool { + x != 0 +} + +fn is_positive(x: i32) -> bool { + x > 0 +} + +fn is_negative(x: i32) -> bool { + x < 0 +} + +fn is_positive_or_zero(x: i32) -> bool { + x >= 0 +} + +fn is_negative_or_zero(x: i32) -> bool { + x <= 0 +} + +fn main() { + let a: bool = is_zero(1); + let b: bool = is_not_zero(2); + let c: bool = is_positive(3); + let d: bool = is_negative(4); + let e: bool = is_positive_or_zero(5); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let f: bool = is_negative_or_zero(6); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let g: bool = a || b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let h: bool = c && d; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/compile.exp b/gcc/testsuite/rust/compile/torture/compile.exp new file mode 100644 index 0000000..9daa7fc --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/compile.exp @@ -0,0 +1,33 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Compile tests, torture testing. + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "compile" +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs b/gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs new file mode 100644 index 0000000..1ff0d24 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs @@ -0,0 +1,23 @@ +fn main() { + let mut a = 1; + let mut b = 2; + let mut c = 3; + let mut d = 4; + let mut e = 5; + let mut f = 6; + let mut g = 7; + let mut h = 8; + let mut i = 9; + let mut j = 10; + + a += 1; + b -= 2; + c *= 3; + d /= 4; + e %= 5; + f &= 6; + g |= 7; + h ^= 8; + i <<= 9; + j >>= 10; +} diff --git a/gcc/testsuite/rust/compile/torture/conditional.rs b/gcc/testsuite/rust/compile/torture/conditional.rs new file mode 100644 index 0000000..2bb3a95 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/conditional.rs @@ -0,0 +1,11 @@ +fn main() { + let mut x = 5; + + if x == 5 { + x = 1; + } else if x == 3 { + x = 2; + } else { + x = 3; + } +} diff --git a/gcc/testsuite/rust/compile/torture/constant1.rs b/gcc/testsuite/rust/compile/torture/constant1.rs new file mode 100644 index 0000000..57bcb0b --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/constant1.rs @@ -0,0 +1,9 @@ +const TEST_CONST:i32 = 10; + +fn main() { + let mut x = TEST_CONST; + x = x + 1; + + let mut y = x + TEST_CONST; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/deadcode1.rs b/gcc/testsuite/rust/compile/torture/deadcode1.rs new file mode 100644 index 0000000..1ba646f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/deadcode1.rs @@ -0,0 +1,22 @@ +fn test1() -> i32 { + return 2; + // { dg-warning "unreachable expression" "" { target *-*-* } .+1 } + 1 +} + +fn test2(x: i32) -> i32 { + if x > 1 { + return 5; + } else { + return 0; + } + // { dg-warning "unreachable statement" "" { target *-*-* } .+1 } + return 1; +} + +fn main() { + let call1 = test1(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call2 = test2(2); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/deadcode2.rs b/gcc/testsuite/rust/compile/torture/deadcode2.rs new file mode 100644 index 0000000..ba7d5f0 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/deadcode2.rs @@ -0,0 +1,10 @@ +fn foo() -> i32 { + return 1; + + let a = -1; // { dg-warning "unreachable statement" } + a // { dg-warning "unreachable expression" } +} + +fn main() { + foo(); +} diff --git a/gcc/testsuite/rust/compile/torture/deref1.rs b/gcc/testsuite/rust/compile/torture/deref1.rs new file mode 100644 index 0000000..d715ce9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/deref1.rs @@ -0,0 +1,6 @@ +fn main() { + let a = 123; + let b = &a; + let c = *b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/float1.rs b/gcc/testsuite/rust/compile/torture/float1.rs new file mode 100644 index 0000000..fbe8938 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/float1.rs @@ -0,0 +1,9 @@ +fn test(x: f32) -> f32 { + return x + 1.0; +} + +fn main() { + let a_float = 5.123; + let call_test = test(a_float + 1.0); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/float_types.rs b/gcc/testsuite/rust/compile/torture/float_types.rs new file mode 100644 index 0000000..7d3d298 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/float_types.rs @@ -0,0 +1,13 @@ +// { dg-prune-output "warning: unused name" } as there are many of these expected. + +fn main() { + let a1: f32 = 1.0f32; + let a2: f64 = 2.0f64; + let a3: f32 = 3f32; + let a4: f64 = 4f64; + + let b1 = 1.0f32; + let b2 = 2.0f64; + let b3 = 3f32; + let b4 = 4f64; +} diff --git a/gcc/testsuite/rust/compile/torture/forward_decl_1.rs b/gcc/testsuite/rust/compile/torture/forward_decl_1.rs new file mode 100644 index 0000000..b8403f9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/forward_decl_1.rs @@ -0,0 +1,11 @@ +fn main() { + let mut an_integer = 5; + an_integer = test(1) + 3; + + let call_test = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} + +fn test(x: i32) -> i32 { + return x + 1; +} diff --git a/gcc/testsuite/rust/compile/torture/forward_decl_2.rs b/gcc/testsuite/rust/compile/torture/forward_decl_2.rs new file mode 100644 index 0000000..efc3b0d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/forward_decl_2.rs @@ -0,0 +1,6 @@ +fn main() { + let y = x + 1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} + +static x: i32 = 3; diff --git a/gcc/testsuite/rust/compile/torture/forward_decl_3.rs b/gcc/testsuite/rust/compile/torture/forward_decl_3.rs new file mode 100644 index 0000000..0028ca5 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/forward_decl_3.rs @@ -0,0 +1,9 @@ +fn main() { + let struct_test = Foo { one: 1, two: 2 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} + +struct Foo { + one: i32, + two: i32, +} diff --git a/gcc/testsuite/rust/compile/torture/forward_decl_4.rs b/gcc/testsuite/rust/compile/torture/forward_decl_4.rs new file mode 100644 index 0000000..e1fe51f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/forward_decl_4.rs @@ -0,0 +1,9 @@ +fn main() { + let mut x = TEST_CONST; + x = x + 1; + + let mut y = x + TEST_CONST; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} + +const TEST_CONST: i32 = 10; diff --git a/gcc/testsuite/rust/compile/torture/func1.rs b/gcc/testsuite/rust/compile/torture/func1.rs new file mode 100644 index 0000000..df1789e --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/func1.rs @@ -0,0 +1,7 @@ +fn not_void() -> i32 { + 8 +} + +fn main() { + not_void(); +} diff --git a/gcc/testsuite/rust/compile/torture/func2.rs b/gcc/testsuite/rust/compile/torture/func2.rs new file mode 100644 index 0000000..f7dd556 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/func2.rs @@ -0,0 +1,20 @@ +fn foo() { + 8; + 8; +} + +fn bar() -> i32 { + 8; + 8 +} + +fn baz() -> i32 { + 8; + return 8; +} + +fn main() { + let a = foo(); // { dg-warning "unused name" } + let b = bar(); // { dg-warning "unused name" } + let c = baz(); // { dg-warning "unused name" } +} diff --git a/gcc/testsuite/rust/compile/torture/function_reference1.rs b/gcc/testsuite/rust/compile/torture/function_reference1.rs new file mode 100644 index 0000000..dfbd01b --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/function_reference1.rs @@ -0,0 +1,9 @@ +fn test(a: i32) -> i32 { + a + 1 +} + +fn main() { + let a = test; + let b = a(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/function_reference2.rs b/gcc/testsuite/rust/compile/torture/function_reference2.rs new file mode 100644 index 0000000..3c3e7c1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/function_reference2.rs @@ -0,0 +1,9 @@ +fn test(a: i32) -> i32 { + a + 1 +} + +fn main() { + let a: fn(i32) -> i32 = test; + let b = a(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/function_reference3.rs b/gcc/testsuite/rust/compile/torture/function_reference3.rs new file mode 100644 index 0000000..0cb3181 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/function_reference3.rs @@ -0,0 +1,20 @@ +struct Foo { + a: fn(i32) -> i32, + b: i32, +} + +fn test(a: i32) -> i32 { + a + 1 +} + +fn main() { + let a = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b: fn(i32) -> i32 = test; + let c = b(1); + + let d = Foo { a: test, b: c }; + let e = (d.a)(d.b); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/function_reference4.rs b/gcc/testsuite/rust/compile/torture/function_reference4.rs new file mode 100644 index 0000000..977e4c9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/function_reference4.rs @@ -0,0 +1,9 @@ +fn test(a: i32) -> i32 { + a + 1 +} + +fn main() { + let a: fn(_) -> _ = test; + let b = a(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics1.rs b/gcc/testsuite/rust/compile/torture/generics1.rs new file mode 100644 index 0000000..87bcdc8 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics1.rs @@ -0,0 +1,51 @@ +struct Foo { + a: f32, + b: bool, +} + +struct GenericStruct { + a: T, + b: usize, +} + +fn main() { + let a1; + a1 = Foo { a: 1.0, b: false }; + + let b1: f32 = a1.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c1: bool = a1.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a2: GenericStruct; + a2 = GenericStruct:: { a: 1, b: 456 }; + + let b2: i8 = a2.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c2: usize = a2.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a3; + a3 = GenericStruct:: { a: 123, b: 456 }; + + let b3: i32 = a3.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c3: usize = a3.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a4; + a4 = GenericStruct { a: 1.0, b: 456 }; + + let b4: f32 = a4.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c4: usize = a4.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a5; + a5 = GenericStruct::<_> { a: true, b: 456 }; + + let b5: bool = a5.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c5: usize = a5.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics10.rs b/gcc/testsuite/rust/compile/torture/generics10.rs new file mode 100644 index 0000000..9526149 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics10.rs @@ -0,0 +1,19 @@ +struct Foo(T); + +struct Bar { + a: Foo, + b: bool, +} + +fn test(a: Bar) -> Foo { + a.a +} + +fn main() { + let a: Bar = Bar:: { + a: Foo::(123), + b: true, + }; + let b: Foo = test(a); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics11.rs b/gcc/testsuite/rust/compile/torture/generics11.rs new file mode 100644 index 0000000..3c8f5ba --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics11.rs @@ -0,0 +1,8 @@ +struct Foo(T, u32); + +type TypeAlias = Foo; + +fn main() { + let a: Foo; + a = TypeAlias { 0: 123, 1: 456 }; +} diff --git a/gcc/testsuite/rust/compile/torture/generics12.rs b/gcc/testsuite/rust/compile/torture/generics12.rs new file mode 100644 index 0000000..f31be58 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics12.rs @@ -0,0 +1,17 @@ +struct GenericStruct(T, usize); + +impl GenericStruct { + fn new(a: i32, b: usize) -> Self { + GenericStruct(a, b) + } + + fn get(self) -> i32 { + self.0 + } +} + +fn main() { + let a: GenericStruct = GenericStruct::::new(123, 456); + let aa: i32 = a.get(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics13.rs b/gcc/testsuite/rust/compile/torture/generics13.rs new file mode 100644 index 0000000..5c8795d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics13.rs @@ -0,0 +1,40 @@ +struct Foo { + a: A, +} + +struct GenericStruct { + a: T, + b: usize, +} + +impl Foo { + fn test() -> i32 { + 123 + } + + fn bar(self) -> isize { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + self.a + } +} + +fn main() { + let a: i32 = Foo::test(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a2: GenericStruct; + a2 = GenericStruct:: { a: 1, b: 456 }; + + let b2: i8 = a2.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c2: usize = a2.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a4; + a4 = GenericStruct { a: 1.0, b: 456 }; + + let b4: f32 = a4.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c4: usize = a4.b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics14.rs b/gcc/testsuite/rust/compile/torture/generics14.rs new file mode 100644 index 0000000..aa8fbf2 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics14.rs @@ -0,0 +1,19 @@ +struct Foo { + a: A, +} + +impl Foo { + fn test() -> i32 { + 123 + } + + fn bar(self) -> isize { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + self.a + } +} + +fn main() { + let a: i32 = Foo::test(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics15.rs b/gcc/testsuite/rust/compile/torture/generics15.rs new file mode 100644 index 0000000..c16a67c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics15.rs @@ -0,0 +1,23 @@ +struct Foo(T, bool); + +impl Foo { + fn bar(self) -> i32 { + self.0 + } +} + +impl Foo { + fn bar(self) -> f32 { + self.0 + } +} + +fn main() { + let a = Foo(123, true); + let aa = a.bar(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b = Foo(456f32, true); + let bb = b.bar(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics16.rs b/gcc/testsuite/rust/compile/torture/generics16.rs new file mode 100644 index 0000000..15b9d7b --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics16.rs @@ -0,0 +1,31 @@ +struct Foo(T, bool); + +impl Foo { + fn new() -> Self { + Foo(123, true) + } + + fn bar(self) -> i32 { + self.0 + } +} + +impl Foo { + fn new() -> Self { + Foo(123f32, true) + } + + fn bar(self) -> f32 { + self.0 + } +} + +fn main() { + let a = Foo::::new(); + let aa: i32 = a.bar(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b = Foo::::new(); + let bb: f32 = b.bar(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics17.rs b/gcc/testsuite/rust/compile/torture/generics17.rs new file mode 100644 index 0000000..d523149 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics17.rs @@ -0,0 +1,19 @@ +struct Foo(T); + +impl Foo { + fn new(a: X) -> Self { + Self(a) + } + + fn test(self) -> X { + self.0 + } +} + +fn main() { + let a; + a = Foo::new(123); + + let b = a.test(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics18.rs b/gcc/testsuite/rust/compile/torture/generics18.rs new file mode 100644 index 0000000..904cb9a --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics18.rs @@ -0,0 +1,20 @@ +struct Foo(T); + +impl Foo { + fn new(a: X) -> Self { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + Self(a) + } + + fn test(self) -> X { + self.0 + } +} + +fn main() { + let a; + a = Foo(123); + + let b = a.test(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics19.rs b/gcc/testsuite/rust/compile/torture/generics19.rs new file mode 100644 index 0000000..9a5b4cb --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics19.rs @@ -0,0 +1,12 @@ +struct Foo(X, Y); + +impl Foo { + fn new(a: T) -> Self { + Self(123, a) + } +} + +fn main() { + let a; + a = Foo::new(false); +} diff --git a/gcc/testsuite/rust/compile/torture/generics2.rs b/gcc/testsuite/rust/compile/torture/generics2.rs new file mode 100644 index 0000000..da0ab99 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics2.rs @@ -0,0 +1,45 @@ +struct Foo(f32, bool); + +struct GenericStruct(T, usize); + +fn main() { + let a1; + a1 = Foo(1.0, false); + + let b1: f32 = a1.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c1: bool = a1.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a2: GenericStruct; + a2 = GenericStruct::(1, 456); + + let b2: i8 = a2.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c2: usize = a2.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a3; + a3 = GenericStruct::(123, 456); + + let b3: i32 = a3.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c3: usize = a3.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a4; + a4 = GenericStruct(1.0, 456); + + let b4: f32 = a4.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c4: usize = a4.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a5; + a5 = GenericStruct::<_>(true, 456); + + let b5: bool = a5.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let c5: usize = a5.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics20.rs b/gcc/testsuite/rust/compile/torture/generics20.rs new file mode 100644 index 0000000..8fe1cff --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics20.rs @@ -0,0 +1,12 @@ +struct Foo(A, B); + +impl Foo { + fn new(a: T, b: T) -> Self { + Self(a, b) + } +} + +fn main() { + let a; + a = Foo::new(123, 456); +} diff --git a/gcc/testsuite/rust/compile/torture/generics21.rs b/gcc/testsuite/rust/compile/torture/generics21.rs new file mode 100644 index 0000000..dc4e935 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics21.rs @@ -0,0 +1,13 @@ +fn callee(t: &T) -> i32 { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + 32 +} + +fn caller(t: i32) -> i32 { + callee(&t) +} + +fn main() { + let a; + a = caller(123); +} diff --git a/gcc/testsuite/rust/compile/torture/generics22.rs b/gcc/testsuite/rust/compile/torture/generics22.rs new file mode 100644 index 0000000..465ebb0 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics22.rs @@ -0,0 +1,13 @@ +fn callee(t: (T, bool)) -> i32 { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + 32 +} + +fn caller(t: i32) -> i32 { + callee((t, false)) +} + +fn main() { + let a; + a = caller(123); +} diff --git a/gcc/testsuite/rust/compile/torture/generics23.rs b/gcc/testsuite/rust/compile/torture/generics23.rs new file mode 100644 index 0000000..2169e36 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics23.rs @@ -0,0 +1,6 @@ +struct Foo(A); + +fn main() { + let a: Foo; + a = Foo(123f32); +} diff --git a/gcc/testsuite/rust/compile/torture/generics24.rs b/gcc/testsuite/rust/compile/torture/generics24.rs new file mode 100644 index 0000000..9d24bce --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics24.rs @@ -0,0 +1,34 @@ +struct Foo { + a: A, +} + +impl Foo { + fn bar(self) -> isize { + self.a + } +} + +impl Foo { + fn bar(self) -> char { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + self.a + } +} + +impl Foo { + fn bar(self) { + let a: (isize, char) = self.a; + let b = a.0; + let c = a.1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let aa: Foo = Foo { a: b }; + let bb: isize = aa.bar(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + } +} + +fn main() { + let a = Foo { a: (123, 'a') }; + a.bar(); +} diff --git a/gcc/testsuite/rust/compile/torture/generics25.rs b/gcc/testsuite/rust/compile/torture/generics25.rs new file mode 100644 index 0000000..e7792e3 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics25.rs @@ -0,0 +1,9 @@ +struct Foo(A, B); + +fn main() { + let a: Foo; + a = Foo::(true, (false, true)); + + let b: (bool, bool); + b = a.1; +} diff --git a/gcc/testsuite/rust/compile/torture/generics26.rs b/gcc/testsuite/rust/compile/torture/generics26.rs new file mode 100644 index 0000000..522e16f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics26.rs @@ -0,0 +1,21 @@ +// github issue #415 +fn test(a: A, b: B) -> (A, B) { + (a, b) +} + +fn main() { + let a = test::(123, 456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b = test::(123f32, 456f32); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let c = test::<_, _>(123, 456f32); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let d = test(true, 1234); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let e = test((123, false), 123f32); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics27.rs b/gcc/testsuite/rust/compile/torture/generics27.rs new file mode 100644 index 0000000..9871638 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics27.rs @@ -0,0 +1,16 @@ +// github issue #415 +fn test(a: &A) -> &A { + a +} + +fn main() { + let a = 123; + let b = &a; + let c = test(b); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a = 123f32; + let b = &a; + let c = test(b); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics28.rs b/gcc/testsuite/rust/compile/torture/generics28.rs new file mode 100644 index 0000000..8cee8b0 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics28.rs @@ -0,0 +1,18 @@ +struct Foo(A, B); + +impl Foo { + fn test(a: X) -> X { + a + } +} + +fn main() { + let a; + a = Foo::test::<_>(123); + + let b; + b = Foo::test::(true); + + let c; + c = Foo::test(456f32); +} diff --git a/gcc/testsuite/rust/compile/torture/generics29.rs b/gcc/testsuite/rust/compile/torture/generics29.rs new file mode 100644 index 0000000..e09a104 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics29.rs @@ -0,0 +1,16 @@ +struct Foo(A, B); + +impl Foo { + fn test(self, a: X) -> X { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + a + } +} + +fn main() { + let a; + a = Foo(123, 456f32); + + let b; + b = a.test::(false); +} diff --git a/gcc/testsuite/rust/compile/torture/generics3.rs b/gcc/testsuite/rust/compile/torture/generics3.rs new file mode 100644 index 0000000..ceec8f7 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics3.rs @@ -0,0 +1,15 @@ +fn test(a: T) -> T { + a +} + +fn main() { + let a; + a = test(123); + let aa: i32 = a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b; + b = test::(456); + let bb: u32 = b; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics30.rs b/gcc/testsuite/rust/compile/torture/generics30.rs new file mode 100644 index 0000000..229f6d1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics30.rs @@ -0,0 +1,16 @@ +struct Foo(A, B); + +impl Foo { + fn test(self, a: X) -> X { + // { dg-warning "unused name" "" { target *-*-* } .-1 } + a + } +} + +fn main() { + let a; + a = Foo(123, 456f32); + + let b; + b = a.test::(false); +} diff --git a/gcc/testsuite/rust/compile/torture/generics31.rs b/gcc/testsuite/rust/compile/torture/generics31.rs new file mode 100644 index 0000000..68ad4bf --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics31.rs @@ -0,0 +1,15 @@ +struct Foo(A, B); + +impl Foo { + fn test(self, a: X) -> (T, X) { + (self.0, a) + } +} + +fn main() { + let a; + a = Foo(123, 456f32); + + let b; + b = a.test::(false); +} diff --git a/gcc/testsuite/rust/compile/torture/generics32.rs b/gcc/testsuite/rust/compile/torture/generics32.rs new file mode 100644 index 0000000..21b9cae --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics32.rs @@ -0,0 +1,15 @@ +struct Foo(A, B); + +impl Foo { + fn test(self, a: X) -> (T, X) { + (self.0, a) + } +} + +fn main() { + let a; + a = Foo(123, 456f32); + + let b; + b = a.test(false); +} diff --git a/gcc/testsuite/rust/compile/torture/generics4.rs b/gcc/testsuite/rust/compile/torture/generics4.rs new file mode 100644 index 0000000..3ae3861 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics4.rs @@ -0,0 +1,15 @@ +struct Foo { + a: T, + b: bool, +} + +fn test(a: T) -> Foo { + Foo { a: a, b: true } +} + +fn main() { + let a: Foo = test(123); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b: Foo = test(456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics5.rs b/gcc/testsuite/rust/compile/torture/generics5.rs new file mode 100644 index 0000000..b7f4302 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics5.rs @@ -0,0 +1,10 @@ +fn test(a: T) -> T { + a +} + +fn main() { + let a: i32 = test(123); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b: i32 = test(456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics6.rs b/gcc/testsuite/rust/compile/torture/generics6.rs new file mode 100644 index 0000000..283a118 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics6.rs @@ -0,0 +1,15 @@ +struct Foo(T); + +struct Bar { + a: Foo, + b: bool, +} + +fn main() { + let a: Bar = Bar:: { + a: Foo::(123), + b: true, + }; + let b: i32 = a.a.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics7.rs b/gcc/testsuite/rust/compile/torture/generics7.rs new file mode 100644 index 0000000..2e89ce1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics7.rs @@ -0,0 +1,13 @@ +struct Foo(T); + +struct Bar { + a: Foo, + b: bool, +} + +fn main() { + let a = Foo::(123); + let b: Bar = Bar { a: a, b: true }; + let c: i32 = b.a.0; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics8.rs b/gcc/testsuite/rust/compile/torture/generics8.rs new file mode 100644 index 0000000..036d855 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics8.rs @@ -0,0 +1,18 @@ +struct GenericStruct(T, usize); + +impl GenericStruct { + fn new(a: T, b: usize) -> Self { + GenericStruct(a, b) + } +} + +fn main() { + let a: GenericStruct = GenericStruct::::new(123, 456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b: GenericStruct = GenericStruct::<_>::new(123, 456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let c: GenericStruct = GenericStruct::new(123f32, 456); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/generics9.rs b/gcc/testsuite/rust/compile/torture/generics9.rs new file mode 100644 index 0000000..307c34f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/generics9.rs @@ -0,0 +1,25 @@ +struct GenericStruct(T, usize); + +impl GenericStruct { + fn new(a: T, b: usize) -> Self { + GenericStruct(a, b) + } + + fn get(self) -> T { + self.0 + } +} + +fn main() { + let a: GenericStruct = GenericStruct::::new(123, 456); + let aa: i32 = a.get(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b: GenericStruct = GenericStruct::<_>::new(123, 456); + let bb: u32 = b.get(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let c: GenericStruct = GenericStruct::new(123f32, 456); + let cc: f32 = c.get(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs b/gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs new file mode 100644 index 0000000..65ed7f7 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs @@ -0,0 +1,14 @@ +fn test(x: i32) -> i32 { + if x == 10 { + 123 + } else if x < 10 { + 456 + } else { + 789 + } +} + +fn main() { + let a = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/impl_block1.rs b/gcc/testsuite/rust/compile/torture/impl_block1.rs new file mode 100644 index 0000000..d67afa1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/impl_block1.rs @@ -0,0 +1,23 @@ +struct Foo(i32, bool); + +impl Foo { + fn new(a: i32, b: bool) -> Foo { + Foo(a, b) + } + + fn test2() -> i32 { + test_forward_decl() + } +} + +fn test_forward_decl() -> i32 { + 123 +} + +fn main() { + let a; + a = Foo::new(1, true); + + let b; + b = Foo::test2(); +} diff --git a/gcc/testsuite/rust/compile/torture/impl_block2.rs b/gcc/testsuite/rust/compile/torture/impl_block2.rs new file mode 100644 index 0000000..0ed592d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/impl_block2.rs @@ -0,0 +1,28 @@ +struct Foo(i32, bool); + +impl Foo { + const number: i32 = 456; + + fn new(a: i32, b: bool) -> Foo { + Foo(a, b) + } + + fn test2() -> i32 { + test_forward_decl() + } +} + +fn test_forward_decl() -> i32 { + 123 +} + +fn main() { + let a; + a = Foo::new(1, true); + + let b; + b = Foo::test2(); + + let c; + c = Foo::new(Foo::number, true); +} diff --git a/gcc/testsuite/rust/compile/torture/impl_block3.rs b/gcc/testsuite/rust/compile/torture/impl_block3.rs new file mode 100644 index 0000000..78ec459 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/impl_block3.rs @@ -0,0 +1,32 @@ +struct Point { + x: f64, + y: f64, +} + +impl Point { + fn origin() -> Point { + Point { x: 0.0, y: 0.0 } + } + + fn new(x: f64, y: f64) -> Point { + Point { x: x, y: y } + } +} + +struct Rectangle { + p1: Point, + p2: Point, +} + +impl Rectangle { + fn from(p1: Point, p2: Point) -> Self { + Self { p1, p2 } + } +} + +fn main() { + let p1 = Point::origin(); + let p2 = Point::new(3.0, 4.0); + let rect = Rectangle::from(p1, p2); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/implicit_returns1.rs b/gcc/testsuite/rust/compile/torture/implicit_returns1.rs new file mode 100644 index 0000000..54cc8b3 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/implicit_returns1.rs @@ -0,0 +1,73 @@ +fn test1() -> i32 { + 1 +} + +fn test2() -> i32 { + return 2; +} + +fn test3(x: i32) -> i32 { + if x > 1 { + 5 + } else { + 0 + } +} + +fn test4(x: i32) -> i32 { + if x > 1 { + return 1; + } + 0 +} + +fn test5(x: i32) -> i32 { + if x > 1 { + if x == 5 { + 7 + } else { + 9 + } + } else { + 0 + } +} + +fn test6(x: i32) -> i32 { + if x > 1 { + return 5; + } else { + return 0; + } +} + +fn test7(x: i32) -> i32 { + if x > 1 { + return 5; + } else { + return 0; + } +} + +fn test8() -> i32 { + return 1; +} + +fn main() { + let call1 = test1(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call2 = test2(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call3 = test3(3); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call4 = test4(4); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call5 = test5(5); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call6 = test6(6); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call7 = test7(7); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let call8 = test8(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/infer_type1.rs b/gcc/testsuite/rust/compile/torture/infer_type1.rs new file mode 100644 index 0000000..aabfcef --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/infer_type1.rs @@ -0,0 +1,4 @@ +fn main() { + let array: [_; 2] = [111, 222]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/integer_inference_var1.rs b/gcc/testsuite/rust/compile/torture/integer_inference_var1.rs new file mode 100644 index 0000000..ccee06a --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_inference_var1.rs @@ -0,0 +1,6 @@ +const TEST_CONST: i32 = 10; + +fn main() { + let a; + a = TEST_CONST; +} diff --git a/gcc/testsuite/rust/compile/torture/integer_inference_var2.rs b/gcc/testsuite/rust/compile/torture/integer_inference_var2.rs new file mode 100644 index 0000000..2209e93 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_inference_var2.rs @@ -0,0 +1,6 @@ +fn main() { + let a = 1u32; + + let b; + b = a; +} diff --git a/gcc/testsuite/rust/compile/torture/integer_inference_var3.rs b/gcc/testsuite/rust/compile/torture/integer_inference_var3.rs new file mode 100644 index 0000000..582ae77 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_inference_var3.rs @@ -0,0 +1,11 @@ +fn test(a: u32) -> u32 { + a + 1 +} + +fn main() { + let param; + param = 123; + + let a = test(param); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/integer_inference_var4.rs b/gcc/testsuite/rust/compile/torture/integer_inference_var4.rs new file mode 100644 index 0000000..136d818 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_inference_var4.rs @@ -0,0 +1,4 @@ +fn main() { + let a; + a = 1; +} diff --git a/gcc/testsuite/rust/compile/torture/integer_inference_var5.rs b/gcc/testsuite/rust/compile/torture/integer_inference_var5.rs new file mode 100644 index 0000000..051de1d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_inference_var5.rs @@ -0,0 +1,25 @@ +const TEST_CONST: i32 = 10; + +fn test(x: u32) -> u32 { + x + 1 +} + +fn main() { + let x = TEST_CONST; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let a = 1u32; + let b = a; + + let c; + c = 1; + + let d; + d = b; + + let param; + param = 123; + + let test_call = test(param); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/integer_types.rs b/gcc/testsuite/rust/compile/torture/integer_types.rs new file mode 100644 index 0000000..95a7378 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/integer_types.rs @@ -0,0 +1,27 @@ +// { dg-prune-output "warning: unused name" } as there are many of these expected. + +fn main() { + let a1: i8 = 1i8; + let a2: i16 = 2i16; + let a3: i32 = 3i32; + let a4: i64 = 4i64; + let a5: i128 = 5i128; + + let b1 = 1i8; + let b2 = 2i16; + let b3 = 3i32; + let b4 = 4i64; + let b5 = 5i128; + + let c1: u8 = 1u8; + let c2: u16 = 2u16; + let c3: u32 = 3u32; + let c4: u64 = 4u64; + let c5: u128 = 5u128; + + let d1 = 1u8; + let d2 = 2u16; + let d3 = 3u32; + let d4 = 4u64; + let d5 = 5u128; +} diff --git a/gcc/testsuite/rust/compile/torture/lifetime1.rs b/gcc/testsuite/rust/compile/torture/lifetime1.rs new file mode 100644 index 0000000..151fd82 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/lifetime1.rs @@ -0,0 +1,7 @@ +fn foo<'a>(t: &'a str) -> &'a str { + t +} + +fn main() { + foo("hello world"); +} diff --git a/gcc/testsuite/rust/compile/torture/literals1.rs b/gcc/testsuite/rust/compile/torture/literals1.rs new file mode 100644 index 0000000..cf021e2 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/literals1.rs @@ -0,0 +1,11 @@ +// { dg-prune-output "warning: unused name" } as there are many of these expected. + +fn main() { + let hex: i32 = 0xFF; + let binary: i32 = 0b11110000; + let oct: i32 = 0o70; + + let hex_u8: u8 = 0xFF_u8; + let bin_u16: u16 = 0b1111000011110000_u16; + let oct: u32 = 0o70_u32; +} diff --git a/gcc/testsuite/rust/compile/torture/loop1.rs b/gcc/testsuite/rust/compile/torture/loop1.rs new file mode 100644 index 0000000..a8ee2f5 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop1.rs @@ -0,0 +1,10 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + loop { + let c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust/compile/torture/loop2.rs b/gcc/testsuite/rust/compile/torture/loop2.rs new file mode 100644 index 0000000..3de3ea8 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop2.rs @@ -0,0 +1,14 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + // first number in Fibonacci sequence over 10: + loop { + if b > 10 { + break; + } + let c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust/compile/torture/loop3.rs b/gcc/testsuite/rust/compile/torture/loop3.rs new file mode 100644 index 0000000..76fadfb --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop3.rs @@ -0,0 +1,14 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + // first number in Fibonacci sequence over 10: + loop { + if b > 10 { + return; + } + let c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust/compile/torture/loop4.rs b/gcc/testsuite/rust/compile/torture/loop4.rs new file mode 100644 index 0000000..f7b5935 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop4.rs @@ -0,0 +1,7 @@ +fn main() { + 'outer: loop { + 'inner: loop { + break 'outer; + } + } +} diff --git a/gcc/testsuite/rust/compile/torture/loop5.rs b/gcc/testsuite/rust/compile/torture/loop5.rs new file mode 100644 index 0000000..4004cd3 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop5.rs @@ -0,0 +1,14 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + // first number in Fibonacci sequence over 10: + let _fib = loop { + if b > 10 { + break b; + } + let c = a + b; + a = b; + b = c; + }; +} diff --git a/gcc/testsuite/rust/compile/torture/loop6.rs b/gcc/testsuite/rust/compile/torture/loop6.rs new file mode 100644 index 0000000..ecd3ad4 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop6.rs @@ -0,0 +1,11 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + let mut c; + while b > 10 { + c = a + b; + a = b; + b = c; + } +} diff --git a/gcc/testsuite/rust/compile/torture/loop7.rs b/gcc/testsuite/rust/compile/torture/loop7.rs new file mode 100644 index 0000000..0cd8445 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/loop7.rs @@ -0,0 +1,13 @@ +fn main() { + let mut a = 1; + let mut b = 1; + + let _fib = loop { + if (a % 2 == 0) { + continue; + } + let c = a + b; + a = b; + b = c; + }; +} diff --git a/gcc/testsuite/rust/compile/torture/methods1.rs b/gcc/testsuite/rust/compile/torture/methods1.rs new file mode 100644 index 0000000..df3663f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/methods1.rs @@ -0,0 +1,40 @@ +struct Point { + x: f64, + y: f64, +} + +impl Point { + fn origin() -> Point { + Point { x: 0.0, y: 0.0 } + } + + fn new(x: f64, y: f64) -> Point { + Point { x: x, y: y } + } +} + +struct Rectangle { + p1: Point, + p2: Point, +} + +impl Rectangle { + fn from(p1: Point, p2: Point) -> Self { + Self { p1, p2 } + } + + fn sum_x(self) -> f64 { + let p1 = self.p1; + let p2 = self.p2; + p1.x + p2.x + } +} + +fn main() { + let p1 = Point::origin(); + let p2 = Point::new(3.0, 4.0); + let rect = Rectangle::from(p1, p2); + + let sum = rect.sum_x(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/methods2.rs b/gcc/testsuite/rust/compile/torture/methods2.rs new file mode 100644 index 0000000..72ba29c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/methods2.rs @@ -0,0 +1,42 @@ +struct Point { + x: f64, + y: f64, +} + +impl Point { + fn origin() -> Point { + Point { x: 0.0, y: 0.0 } + } + + fn new(x: f64, y: f64) -> Point { + Point { x: x, y: y } + } +} + +struct Rectangle { + p1: Point, + p2: Point, +} + +impl Rectangle { + fn from(p1: Point, p2: Point) -> Self { + Self { p1, p2 } + } +} + +fn main() { + let p1 = Point::origin(); + let p2 = Point::new(3.0, 4.0); + let rect = Rectangle::from(p1, p2); + + let sum = rect.sum_x(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} + +impl Rectangle { + fn sum_x(self) -> f64 { + let p1 = self.p1; + let p2 = self.p2; + p1.x + p2.x + } +} diff --git a/gcc/testsuite/rust/compile/torture/methods3.rs b/gcc/testsuite/rust/compile/torture/methods3.rs new file mode 100644 index 0000000..b0cb78f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/methods3.rs @@ -0,0 +1,43 @@ +struct Point { + x: f64, + y: f64, +} + +impl Point { + fn origin() -> Point { + Point { x: 0.0, y: 0.0 } + } + + fn new(x: f64, y: f64) -> Point { + Point { x: x, y: y } + } +} + +struct Rectangle { + p1: Point, + p2: Point, +} + +impl Rectangle { + fn from(p1: Point, p2: Point) -> Self { + Self { p1, p2 } + } + + fn sum_x(self) -> f64 { + let p1 = self.p1; + let p2 = self.p2; + p1.x + p2.x + } +} + +fn main() { + let p1 = Point::origin(); + let p2 = Point::new(3.0, 4.0); + let rect = Rectangle::from(p1, p2); + + let sum = rect.sum_x(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + // multiple MethodCallExpr were causing issue #310 + let sum = rect.sum_x(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/name_resolve1.rs b/gcc/testsuite/rust/compile/torture/name_resolve1.rs new file mode 100644 index 0000000..817f48b --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/name_resolve1.rs @@ -0,0 +1,23 @@ +struct Foo(i32, bool); + +impl Foo { + fn new(a: i32, b: bool) -> Foo { + Foo(a, b) + } + + fn test() -> i32 { + test() + } +} + +fn test() -> i32 { + 123 +} + +fn main() { + let a; + a = Foo::new(1, true); + + let b; + b = Foo::test(); +} diff --git a/gcc/testsuite/rust/compile/torture/nested_struct1.rs b/gcc/testsuite/rust/compile/torture/nested_struct1.rs new file mode 100644 index 0000000..56ce053 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/nested_struct1.rs @@ -0,0 +1,18 @@ +struct Point { + x: f64, + y: f64, +} + +struct Rectangle { + p1: Point, + p2: Point, +} + +fn main() { + let p1 = Point { x: 0.0, y: 0.0 }; + let p2 = Point { x: 2.0, y: 4.0 }; + let rect = Rectangle { p1, p2 }; + + let a = rect.p1.x; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/never_type1.rs b/gcc/testsuite/rust/compile/torture/never_type1.rs new file mode 100644 index 0000000..0f15029 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/never_type1.rs @@ -0,0 +1,22 @@ +fn foo() -> i32 { + let c; + let d; + + c = if false { + return 1; + } else { + 0.0 + }; + + d = if true { + 0.0 + } else { + return 1; + }; + + 0 +} + +fn main() { + foo(); +} diff --git a/gcc/testsuite/rust/compile/torture/parameter_usage1.rs b/gcc/testsuite/rust/compile/torture/parameter_usage1.rs new file mode 100644 index 0000000..448e960 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/parameter_usage1.rs @@ -0,0 +1,8 @@ +fn test(a: i32, b: i32) -> i32 { + a + b +} + +fn main() { + let a = test(1, 4); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/parens1.rs b/gcc/testsuite/rust/compile/torture/parens1.rs new file mode 100644 index 0000000..795eb96 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/parens1.rs @@ -0,0 +1,5 @@ +fn main() { + let a = 123; + let b = a + (a * 2); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/raw_identifiers.rs b/gcc/testsuite/rust/compile/torture/raw_identifiers.rs new file mode 100644 index 0000000..8746f33 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/raw_identifiers.rs @@ -0,0 +1,3 @@ +pub fn square(num: i32) -> i32 { /* { dg-warning "used" } */ + r#num * num +} \ No newline at end of file diff --git a/gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs b/gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs new file mode 100644 index 0000000..c9aa3cf --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs @@ -0,0 +1,3 @@ +pub fn plus(r#break: i32, r#unsafe: i32) -> i32 { /* { dg-warning "used" } */ + r#break + r#unsafe +} \ No newline at end of file diff --git a/gcc/testsuite/rust/compile/torture/recursive_fn1.rs b/gcc/testsuite/rust/compile/torture/recursive_fn1.rs new file mode 100644 index 0000000..e13b41f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/recursive_fn1.rs @@ -0,0 +1,12 @@ +fn gcd(x: i32, y: i32) -> i32 { + if y == 0 { + x + } else { + gcd(y, x % y) + } +} + +fn main() { + let a = gcd(100, 5); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/scoping1.rs b/gcc/testsuite/rust/compile/torture/scoping1.rs new file mode 100644 index 0000000..8bc8ede --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/scoping1.rs @@ -0,0 +1,11 @@ +fn main() { + let x = 1; + { + let mut x = true; + { + x = false; + } + } + let x = x + 1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/self_type1.rs b/gcc/testsuite/rust/compile/torture/self_type1.rs new file mode 100644 index 0000000..373d6dd --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/self_type1.rs @@ -0,0 +1,12 @@ +struct Foo(i32, bool); + +impl Foo { + fn new(a: i32, b: bool) -> Self { + Self(a, b) + } +} + +fn main() { + let a; + a = Foo::new(1, true); +} diff --git a/gcc/testsuite/rust/compile/torture/shadow1.rs b/gcc/testsuite/rust/compile/torture/shadow1.rs new file mode 100644 index 0000000..b60e793 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/shadow1.rs @@ -0,0 +1,6 @@ +fn main() { + let mut x = 5; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let mut x; + x = true; +} diff --git a/gcc/testsuite/rust/compile/torture/shadow2.rs b/gcc/testsuite/rust/compile/torture/shadow2.rs new file mode 100644 index 0000000..161dc38 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/shadow2.rs @@ -0,0 +1,5 @@ +fn main() { + let x = 1; + let x = x + 1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/static_function.rs b/gcc/testsuite/rust/compile/torture/static_function.rs new file mode 100644 index 0000000..8e3a379 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/static_function.rs @@ -0,0 +1,8 @@ +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let call_test = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/static_var1.rs b/gcc/testsuite/rust/compile/torture/static_var1.rs new file mode 100644 index 0000000..5be0e75 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/static_var1.rs @@ -0,0 +1,6 @@ +static x:i32 = 3; + +fn main() { + let y = x +1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/stmt_with_block1.rs b/gcc/testsuite/rust/compile/torture/stmt_with_block1.rs new file mode 100644 index 0000000..b6aa56c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/stmt_with_block1.rs @@ -0,0 +1,13 @@ +fn test(x: i32) -> i32 { + if x > 1 { 1 } else { 2 }; + if x > 1 { 1; } else { 2; } + + { 3; } + { 3 }; + + { 3 } +} + +fn main() { + let a = test(0); // { dg-warning "unused name" } +} diff --git a/gcc/testsuite/rust/compile/torture/str1.rs b/gcc/testsuite/rust/compile/torture/str1.rs new file mode 100644 index 0000000..08882785 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/str1.rs @@ -0,0 +1,7 @@ +fn main() { + let a; + a = "hello world infer"; + + let b: &str; + b = "hello world specified"; +} diff --git a/gcc/testsuite/rust/compile/torture/struct_access1.rs b/gcc/testsuite/rust/compile/torture/struct_access1.rs new file mode 100644 index 0000000..ec85d28 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_access1.rs @@ -0,0 +1,12 @@ +struct Foo { + one: i32, + two: i32, +} + +fn main() { + let struct_test = Foo { one: 1, two: 2 }; + let a = struct_test.one; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b = struct_test.two; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_base_init_1.rs b/gcc/testsuite/rust/compile/torture/struct_base_init_1.rs new file mode 100644 index 0000000..3c0b24a --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_base_init_1.rs @@ -0,0 +1,12 @@ +struct Foo { + a: i32, + b: i32, +} + +fn foo() -> Foo { + Foo { a: 42, b: 32 } +} + +fn main() { + let _f = Foo { a: 10, ..foo() }; +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init.rs b/gcc/testsuite/rust/compile/torture/struct_init.rs new file mode 100644 index 0000000..be0b963 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init.rs @@ -0,0 +1,9 @@ +struct Foo { + one: i32, + two: i32, +} + +fn main() { + let struct_test = Foo { one: 1, two: 2 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_2.rs b/gcc/testsuite/rust/compile/torture/struct_init_2.rs new file mode 100644 index 0000000..d7040d3 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_2.rs @@ -0,0 +1,6 @@ +struct Foo(f32, f32); + +fn main() { + let a = Foo { 0: 10.0, 1: 20.0 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_3.rs b/gcc/testsuite/rust/compile/torture/struct_init_3.rs new file mode 100644 index 0000000..5e52d09 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_3.rs @@ -0,0 +1,11 @@ +struct Foo { + a: i32, + b: i32, +} + +fn main() { + let a = 1; + let b = 2; + let c = Foo { a, b }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_4.rs b/gcc/testsuite/rust/compile/torture/struct_init_4.rs new file mode 100644 index 0000000..57b6bd4 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_4.rs @@ -0,0 +1,10 @@ +struct Foo { + a: i32, + b: i32, +} + +fn main() { + let a = Foo { a: 1, b: 2 }; + let b = Foo { a: 3, b: 4, ..a }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_5.rs b/gcc/testsuite/rust/compile/torture/struct_init_5.rs new file mode 100644 index 0000000..891f645 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_5.rs @@ -0,0 +1,10 @@ +struct Foo { + a: i32, + b: i32, +} + +fn main() { + let a = Foo { a: 1, b: 2 }; + let b = Foo { ..a }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_6.rs b/gcc/testsuite/rust/compile/torture/struct_init_6.rs new file mode 100644 index 0000000..e7f8a12 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_6.rs @@ -0,0 +1,10 @@ +struct Foo { + a: i32, + b: i32, +} + +fn main() { + let a = Foo { a: 1, b: 2 }; + let b = Foo { a: 1, ..a }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_7.rs b/gcc/testsuite/rust/compile/torture/struct_init_7.rs new file mode 100644 index 0000000..a8c8050 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_7.rs @@ -0,0 +1,10 @@ +struct Foo { + a: i32, + b: f32, +} + +fn main() { + let a = Foo { a: 1, b: 2f32 }; + let b = Foo { b: 4f32, ..a }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/struct_init_8.rs b/gcc/testsuite/rust/compile/torture/struct_init_8.rs new file mode 100644 index 0000000..411ff7d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/struct_init_8.rs @@ -0,0 +1,7 @@ +struct Foo(f32, i32); + +fn main() { + let a = Foo { 1: 1, 0: 2f32 }; + let b = Foo { ..a }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/top_attr.rs b/gcc/testsuite/rust/compile/torture/top_attr.rs new file mode 100644 index 0000000..0671369 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/top_attr.rs @@ -0,0 +1,5 @@ +#![crate_name = "name"] + + +#[allow(dead_code)] +fn main() {} \ No newline at end of file diff --git a/gcc/testsuite/rust/compile/torture/tuple1.rs b/gcc/testsuite/rust/compile/torture/tuple1.rs new file mode 100644 index 0000000..9e6f613 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple1.rs @@ -0,0 +1,6 @@ +fn main() { + let a: (i32, bool) = (123, true); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b; + b = (456, 5f32); +} diff --git a/gcc/testsuite/rust/compile/torture/tuple2.rs b/gcc/testsuite/rust/compile/torture/tuple2.rs new file mode 100644 index 0000000..ab3d0b8 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple2.rs @@ -0,0 +1,5 @@ +fn main() { + let a = 123; + let b = (a,); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/tuple3.rs b/gcc/testsuite/rust/compile/torture/tuple3.rs new file mode 100644 index 0000000..d0fb6fc --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple3.rs @@ -0,0 +1,9 @@ +fn main() { + let a = (1, true); + + let b; + let c; + + b = a.0; + c = a.1; +} diff --git a/gcc/testsuite/rust/compile/torture/tuple_field_access.rs b/gcc/testsuite/rust/compile/torture/tuple_field_access.rs new file mode 100644 index 0000000..8d1bbe9 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple_field_access.rs @@ -0,0 +1,6 @@ +struct Foo(i32, i32); + +fn main() { + let mut a = Foo(1, 2); + a.0 = 22; +} diff --git a/gcc/testsuite/rust/compile/torture/tuple_struct1.rs b/gcc/testsuite/rust/compile/torture/tuple_struct1.rs new file mode 100644 index 0000000..0ac19b1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple_struct1.rs @@ -0,0 +1,6 @@ +struct Foo(i32, i32, bool); + +fn main() { + let a = Foo(1, 2, true); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/tuple_struct2.rs b/gcc/testsuite/rust/compile/torture/tuple_struct2.rs new file mode 100644 index 0000000..5e0a76e --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/tuple_struct2.rs @@ -0,0 +1,11 @@ +struct Foo(i32, bool); + +fn main() { + let a = Foo(1, true); + + let b; + let c; + + b = a.0; + c = a.1; +} diff --git a/gcc/testsuite/rust/compile/torture/type-alias1.rs b/gcc/testsuite/rust/compile/torture/type-alias1.rs new file mode 100644 index 0000000..78bf046 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type-alias1.rs @@ -0,0 +1,6 @@ +type TypeAlias = (i32, u32); + +fn main() { + let a: TypeAlias; + a = (123, 456); +} diff --git a/gcc/testsuite/rust/compile/torture/type-alias2.rs b/gcc/testsuite/rust/compile/torture/type-alias2.rs new file mode 100644 index 0000000..a3e3f4e --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type-alias2.rs @@ -0,0 +1,8 @@ +type x = u32; + +fn main() { + let x: x = 1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let y: x = 2; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer1.rs b/gcc/testsuite/rust/compile/torture/type_infer1.rs new file mode 100644 index 0000000..b6502b5 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer1.rs @@ -0,0 +1,22 @@ +struct Foo { + one: i32, + two: i32, +} + +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let logical: bool = true; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let an_integer = 5; + let mut default_integer = 7; + + default_integer = 1 + an_integer; + + let call_test = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let struct_test = Foo { one: 1, two: 2 }; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer2.rs b/gcc/testsuite/rust/compile/torture/type_infer2.rs new file mode 100644 index 0000000..dcddda4 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer2.rs @@ -0,0 +1,9 @@ +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let an_integer = 5; + let call_test = test(an_integer + 1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer3.rs b/gcc/testsuite/rust/compile/torture/type_infer3.rs new file mode 100644 index 0000000..303dd3d --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer3.rs @@ -0,0 +1,14 @@ +fn test(x: i32) -> i32 { + return x + 1; +} + +fn main() { + let mut an_integer = 5; + an_integer = test(1) + 3; + + let mut x; + x = 1; + + let call_test = test(1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer4.rs b/gcc/testsuite/rust/compile/torture/type_infer4.rs new file mode 100644 index 0000000..77a919f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer4.rs @@ -0,0 +1,11 @@ +fn main() { + let xs: [i32; 5] = [1, 2, 3, 4, 5]; + let xy = [6, 7, 8]; + + let a = xs[0]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b = xy[2]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let mut c; + c = xs[0]; +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer5.rs b/gcc/testsuite/rust/compile/torture/type_infer5.rs new file mode 100644 index 0000000..1bccb4c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer5.rs @@ -0,0 +1,12 @@ +struct Foo { + a: i32, + b: i32, +} + +fn main() { + let a; + a = Foo { a: 1, b: 2 }; + + let b = a.a; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/type_infer6.rs b/gcc/testsuite/rust/compile/torture/type_infer6.rs new file mode 100644 index 0000000..6f5863f --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/type_infer6.rs @@ -0,0 +1,14 @@ +fn test(x: u32) -> u32 { + return x + 1; +} + +fn main() { + let a; + a = 1; + let b = test(a); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let c = 1; + let d = test(c + 1); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/unary_operators.rs b/gcc/testsuite/rust/compile/torture/unary_operators.rs new file mode 100644 index 0000000..9be729c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/unary_operators.rs @@ -0,0 +1,8 @@ +// { dg-prune-output "warning: unused name" } as there are many of these expected. + +fn main() { + let a: i32 = -1; + let b: i32 = 3 - -1; + let c: bool = !false; + let d: i32 = !3; +} diff --git a/gcc/testsuite/rust/compile/torture/underscore_id.rs b/gcc/testsuite/rust/compile/torture/underscore_id.rs new file mode 100644 index 0000000..2c106c5 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/underscore_id.rs @@ -0,0 +1,4 @@ +fn main() { + let _unused_but_fine = 12; + let unused = 12; // { dg-warning "unused name" } +} diff --git a/gcc/testsuite/rust/compile/torture/unit_type1.rs b/gcc/testsuite/rust/compile/torture/unit_type1.rs new file mode 100644 index 0000000..d5f7357 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/unit_type1.rs @@ -0,0 +1,7 @@ +fn main() { + let a: () = (); + // { dg-warning "unused name" "" { target *-*-* } .-1 } + + let b; + b = (); +} diff --git a/gcc/testsuite/rust/compile/torture/unused.rs b/gcc/testsuite/rust/compile/torture/unused.rs new file mode 100644 index 0000000..0564aa1 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/unused.rs @@ -0,0 +1,17 @@ +// { dg-warning "function is never used: `bar`" "" { target *-*-* } .+1 } +fn bar() { + foo(); +} + +// { dg-warning "function is never used: `foo`" "" { target *-*-* } .+1 } +fn foo() { + bar(); +} + +fn f() { + +} + +fn main() { + f(); +} diff --git a/gcc/testsuite/rust/compile/torture/unused1.rs b/gcc/testsuite/rust/compile/torture/unused1.rs new file mode 100644 index 0000000..3b4873c --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/unused1.rs @@ -0,0 +1,16 @@ +fn test() -> i32 { + 1 +} + +fn unused() -> i32 { + // { dg-warning "function is never used: `unused`" "" { target *-*-* } .-1 } + // { dg-warning "unused name" "" { target *-*-* } .-2 } + 2 +} + +fn main() { + let a = 1; + // { dg-warning "unused name" "" { target *-*-* } .-1 } + let b = test(); + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/torture/usize1.rs b/gcc/testsuite/rust/compile/torture/usize1.rs new file mode 100644 index 0000000..ba1d5c6 --- /dev/null +++ b/gcc/testsuite/rust/compile/torture/usize1.rs @@ -0,0 +1,6 @@ +fn main() { + let a = [1, 2, 3]; + let b: usize = 1; + let c = a[b]; + // { dg-warning "unused name" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/tuple1.rs b/gcc/testsuite/rust/compile/tuple1.rs new file mode 100644 index 0000000..84179b1 --- /dev/null +++ b/gcc/testsuite/rust/compile/tuple1.rs @@ -0,0 +1,5 @@ +fn main() { + let a: (i32, bool) = (123, 123); // { dg-error "expected .bool. got .." } + let b; + b = (456, 5f32); +} diff --git a/gcc/testsuite/rust/compile/tuple_struct1.rs b/gcc/testsuite/rust/compile/tuple_struct1.rs new file mode 100644 index 0000000..87e4c3b --- /dev/null +++ b/gcc/testsuite/rust/compile/tuple_struct1.rs @@ -0,0 +1,10 @@ +struct Foo { + one: i32, + two: i32, +} + +fn main() { + let a = Foo(1, 2); // { dg-error "expected function, tuple struct or tuple variant, found struct `Foo`" } + // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } +} diff --git a/gcc/testsuite/rust/compile/tuple_struct2.rs b/gcc/testsuite/rust/compile/tuple_struct2.rs new file mode 100644 index 0000000..dba0511 --- /dev/null +++ b/gcc/testsuite/rust/compile/tuple_struct2.rs @@ -0,0 +1,7 @@ +struct Bar(i32, i32, bool); + +fn main() { + let a = Bar(1, 2); // { dg-error "unexpected number of arguments 2 expected 3" } + // { dg-error "failed to lookup type to CallExpr" "" { target *-*-* } .-1 } + // { dg-error "failed to type resolve expression" "" { target *-*-* } .-2 } +} diff --git a/gcc/testsuite/rust/compile/tuple_struct3.rs b/gcc/testsuite/rust/compile/tuple_struct3.rs new file mode 100644 index 0000000..c52a610 --- /dev/null +++ b/gcc/testsuite/rust/compile/tuple_struct3.rs @@ -0,0 +1,5 @@ +struct Foo(i32, i32, bool); + +fn main() { + let c = Foo(1, 2f32, true); // { dg-error "expected .i32. got .f32." } +} diff --git a/gcc/testsuite/rust/compile/type-alias1.rs b/gcc/testsuite/rust/compile/type-alias1.rs new file mode 100644 index 0000000..c7d7048 --- /dev/null +++ b/gcc/testsuite/rust/compile/type-alias1.rs @@ -0,0 +1,6 @@ +type TypeAlias = (i32, u32); + +fn main() { + let a: TypeAlias; + a = (123, 456f32); // { dg-error "expected .u32. got .f32." } +} diff --git a/gcc/testsuite/rust/compile/type-bindings1.rs b/gcc/testsuite/rust/compile/type-bindings1.rs new file mode 100644 index 0000000..4cd045c --- /dev/null +++ b/gcc/testsuite/rust/compile/type-bindings1.rs @@ -0,0 +1,8 @@ +// { dg-excess-errors "Noisy error and debug" } +struct Foo(A, B); + +fn main() { + let a; + a = Foo::(123f32); + // { dg-error "associated type bindings are not allowed here" "" { target *-*-* } .-1 } +} diff --git a/gcc/testsuite/rust/compile/unary_negation.rs b/gcc/testsuite/rust/compile/unary_negation.rs new file mode 100644 index 0000000..1acb853 --- /dev/null +++ b/gcc/testsuite/rust/compile/unary_negation.rs @@ -0,0 +1,10 @@ +// { dg-excess-errors "Noisy error and debug" } + +fn main() { + let a: i32 = -1; + let b: i32 = 3 - -1; + let c: bool = !false; + let d: i32 = !3; + + let e: f32 = -true; // // { dg-error "cannot apply unary - to bool" } +} diff --git a/gcc/testsuite/rust/compile/unary_not.rs b/gcc/testsuite/rust/compile/unary_not.rs new file mode 100644 index 0000000..1620b40 --- /dev/null +++ b/gcc/testsuite/rust/compile/unary_not.rs @@ -0,0 +1,9 @@ +// { dg-excess-errors "Noisy error and debug" } +fn main() { + let a: i32 = -1; + let b: i32 = 3 - -1; + let c: bool = !false; + let d: i32 = !3; + + let e: f32 = !5f32; // { dg-error "cannot apply unary ! to f32" } +} diff --git a/gcc/testsuite/rust/compile/unconstrained_type_param.rs b/gcc/testsuite/rust/compile/unconstrained_type_param.rs new file mode 100644 index 0000000..c4aaa10 --- /dev/null +++ b/gcc/testsuite/rust/compile/unconstrained_type_param.rs @@ -0,0 +1,12 @@ +struct Foo(T, bool); + +impl Foo { + // { dg-error "unconstrained type parameter" "" { target *-*-* } .-1 } + fn test() -> Y { + 123 + } +} + +fn main() { + let a = Foo::test(); +} diff --git a/gcc/testsuite/rust/compile/unsafe.rs b/gcc/testsuite/rust/compile/unsafe.rs new file mode 100644 index 0000000..d0cb87d --- /dev/null +++ b/gcc/testsuite/rust/compile/unsafe.rs @@ -0,0 +1,5 @@ +fn main() { // { dg-ice "#382" } + unsafe { + } + () +} diff --git a/gcc/testsuite/rust/compile/unterminated_c_comment.rs b/gcc/testsuite/rust/compile/unterminated_c_comment.rs new file mode 100644 index 0000000..619b7b7 --- /dev/null +++ b/gcc/testsuite/rust/compile/unterminated_c_comment.rs @@ -0,0 +1,2 @@ +// { dg-error "unexpected EOF while looking for end of comment" "" { target *-*-* } .+1 } +/* This comment needs closure :) ! diff --git a/gcc/testsuite/rust/compile/usize1.rs b/gcc/testsuite/rust/compile/usize1.rs new file mode 100644 index 0000000..8c12789 --- /dev/null +++ b/gcc/testsuite/rust/compile/usize1.rs @@ -0,0 +1,5 @@ +fn main() { + let a = [1, 2, 3]; + let b: u32 = 1; + let c = a[b]; // { dg-error "expected .usize. got .u32." } +} diff --git a/gcc/testsuite/rust/compile/xfail/lifetime_param.rs b/gcc/testsuite/rust/compile/xfail/lifetime_param.rs new file mode 100644 index 0000000..306fca0 --- /dev/null +++ b/gcc/testsuite/rust/compile/xfail/lifetime_param.rs @@ -0,0 +1,11 @@ +// { dg-excess-errors "warnings" } + +// { dg-error "lifetime not defined" "#359" { xfail *-*-* } .+1 } +fn lifetime_undefined(t: &'a str) -> &'a str { + t +} + +// { dg-error "lifetime not defined" "#359" { xfail *-*-* } .+1 } +fn lifetime_undefined_bis<'a>(t: &'a str)-> &'b str { + t +} diff --git a/gcc/testsuite/rust/compile/xfail/slice1.rs b/gcc/testsuite/rust/compile/xfail/slice1.rs new file mode 100644 index 0000000..48abcbe --- /dev/null +++ b/gcc/testsuite/rust/compile/xfail/slice1.rs @@ -0,0 +1,3 @@ +fn foo (e: &str) -> &str { + &"" // { dg-bogus "cannot strip expression in this position - outer attributes not allowed" "#391" { xfail *-*-* } } +} diff --git a/gcc/testsuite/rust/compile/xfail/struct_field_vis.rs b/gcc/testsuite/rust/compile/xfail/struct_field_vis.rs new file mode 100644 index 0000000..a28729e --- /dev/null +++ b/gcc/testsuite/rust/compile/xfail/struct_field_vis.rs @@ -0,0 +1,15 @@ +// { dg-xfail-if "pub visibility not supported #432" *-*-* } + +mod foomod { + pub struct Foo { + pub f: i32, + pub g: u32, + } +} + +fn test() -> foomod::Foo { + foomod::Foo{ + f:1, + g:3, + } +} diff --git a/gcc/testsuite/rust/compile/xfail/xfail.exp b/gcc/testsuite/rust/compile/xfail/xfail.exp new file mode 100644 index 0000000..e4a6cf1 --- /dev/null +++ b/gcc/testsuite/rust/compile/xfail/xfail.exp @@ -0,0 +1,63 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Compile tests, no torture testing. +# +# These tests are used to keep track of known limitations : +# 1- tests that are incorrecly build instead of being rejected +# 2- tests that are build to an incorrect result +# 3- tests that are rejected instead of being correctly build +# +# Not currently supported here: +# - tests that are exhibiting incorrect behavior at runtime +# +# Here's how to annotate tests for each cases: +# +# 1- test is successfuly build instead of being rejected +# +# Expected behavior: a specific error rejecting the test +# Observed behavior: error not present +# Use dg-error and mark the test xfail and add reference to corresponding issue. +# { dg-error "lifetime not defined" "#359" { xfail *-*-* } } +# +# 2- test is successfuly build but result is incorrect +# +# Expected behavior: test is correctly build and has specific property +# Observed behavior: test is correctly build but is missing the specific property +# Depends on the property. For example, if the property can be checked in the assembly file, use dg-final + xfail. +# { dg-final { scan-assembler "given_string_missing_in_assembly_" "#1234" { xfail *-*-* } } } +# +# 3- test is rejected instead of being correctly build +# +# Expected behavior: test is successfully build +# Observed behavior: the test is rejected with an error +# Use dg-bogus + xfail to match the bogus error message, or use dg-xfail-if if it's harder to match a specific error. + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "compile" +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust/execute/torture/block_expr1.rs b/gcc/testsuite/rust/execute/torture/block_expr1.rs new file mode 100644 index 0000000..d561f8c --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/block_expr1.rs @@ -0,0 +1,8 @@ +fn main() -> i32 { + let ret = { + 1; + 2; + 0 + }; + ret +} diff --git a/gcc/testsuite/rust/execute/torture/empty_main.rs b/gcc/testsuite/rust/execute/torture/empty_main.rs new file mode 100644 index 0000000..6442e1e --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/empty_main.rs @@ -0,0 +1,3 @@ +fn main() -> i32 { + 0 +} diff --git a/gcc/testsuite/rust/execute/torture/execute.exp b/gcc/testsuite/rust/execute/torture/execute.exp new file mode 100644 index 0000000..f44534b --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/execute.exp @@ -0,0 +1,33 @@ +# Copyright (C) 2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# Execute tests, torture testing. + +# Load support procs. +load_lib rust-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} + +set dg-do-what-default "run" +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.rs]] "" "" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish diff --git a/gcc/testsuite/rust/execute/torture/exit_error.rs b/gcc/testsuite/rust/execute/torture/exit_error.rs new file mode 100644 index 0000000..c3d0d9f --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/exit_error.rs @@ -0,0 +1,5 @@ +// { dg-xfail-run-if "" { *-*-* } } + +fn main() -> i32 { + 1 +} diff --git a/gcc/testsuite/rust/execute/torture/func1.rs b/gcc/testsuite/rust/execute/torture/func1.rs new file mode 100644 index 0000000..0a093d8 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/func1.rs @@ -0,0 +1,5 @@ +fn main() -> i32 { + 1; + 2; + 0 +} -- cgit v1.1