- 16 Sep, 2017 1 commit
-
-
From-SVN: r252870
GCC Administrator committed
-
- 15 Sep, 2017 30 commits
-
-
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/64170 From-SVN: r252866
Ian Lance Taylor committed -
It is possible to do this check in backend, by walking the block and check whether the last statement is a goto. But it seems easier to do it in the frontend, where it can simply use is_fallthrough. Reviewed-on: https://go-review.googlesource.com/63690 From-SVN: r252851
Ian Lance Taylor committed -
* c-common.h (cxx_dialect): Add cxx2a as a dialect. * opt.c: Add options for -std=c++2a and -std=gnu++2a. * c-opts.c (set_std_cxx2a): New. (c_common_handle_option): Set options when -std=c++2a is enabled. (c_common_post_options): Adjust comments. (set_std_cxx14, set_std_cxx17): Likewise. * doc/cpp.texi (__cplusplus): Document value for -std=c++2a or -std=gnu+2a. * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a. * lib/target-supports.exp (check_effective_target_c++17): Return 1 also if check_effective_target_c++2a. (check_effective_target_c++17_down): New. (check_effective_target_c++2a_only): New. (check_effective_target_c++2a): New. * g++.dg/cpp2a/cplusplus.C: New. * include/cpplib.h (c_lang): Add CXX2A and GNUCXX2A. * init.c (lang_defaults): Add rows for CXX2A and GNUCXX2A. (cpp_init_builtins): Set __cplusplus to 201709L for C++2a. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r252850
Andrew Sutton committed -
Otherwise, a zero length is created in the backend and the backend doesn't know there is an error. Reviewed-on: https://go-review.googlesource.com/61610 From-SVN: r252849
Ian Lance Taylor committed -
2017-09-15 Steve Ellcey <sellcey@cavium.com> PR target/82066 * doc/extend.texi (Common Function Attributes): Add references to ARM, AArch64, and S/390 specific attributes. (Function Specific Option Pragmas): Add AArch64 and S/390 to list of back ends that support the target pragma. From-SVN: r252848
Steve Ellcey committed -
C11 semantics for excess precision (from N1531) are that an implicit conversion (from the usual arithmetic conversions, not by assignment) from integer to floating point has a result in the corresponding evaluation format of that floating-point type, so possibly with excess precision (whereas a cast or conversion by assignment from integer to floating point must produce a value without excess range or precision, as always). This patch makes GCC support those semantics if flag_isoc11 (which in turn means that conditional expressions need to support generating a result with excess precision even if neither operand had excess precision). C99 is less than entirely clear in this regard, but my reading as outlined at <https://gcc.gnu.org/ml/gcc-patches/2008-11/msg00105.html> is that the results of conversions from integer to floating-point types are always expected to be representable in the target type without excess precision, and this patch conservatively keeps these semantics for pre-C11 (i.e. if an older standard is explicitly selected). Bootstrapped with no regressions on x86_64-pc-linux-gnu. PR c/82071 gcc/c: * c-typeck.c (ep_convert_and_check): Just call convert_and_check for C11. (build_conditional_expr): For C11, generate result with excess precision when one argument is an integer and the other is of a type using excess precision. gcc/testsuite: * gcc.target/i386/excess-precision-8.c: New test. From-SVN: r252847
Joseph Myers committed -
re PR c++/64644 ("warning: anonymous union with no members" should be an error with -pedantic-errors) /cp 2017-09-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> Paolo Carlini <paolo.carlini@oracle.com> PR c++/64644 * decl2.c (finish_anon_union): Complain about "anonymous union with no members" with a pedwarn. /testsuite 2017-09-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org> Paolo Carlini <paolo.carlini@oracle.com> PR c++/64644 * g++.dg/other/anon-union4.C: New. * g++.old-deja/g++.law/union4.C: Adjust. * g++.old-deja/g++.other/anon1.C: Likewise. Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com> From-SVN: r252835
Manuel López-Ibáñez committed -
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01051.html ReviewedBy: Sandra Loosemore <sandra@codesourcery.com> * doc/standards.texi: Fix C++17 description. Update URLs for C++11 & 14. From-SVN: r252834
Nathan Sidwell committed -
From-SVN: r252833
Nathan Sidwell committed -
2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> * common.opt (Wcast-align=strict): New warning option. * doc/invoke.texi: Document -Wcast-align=strict. c: 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-typeck.c (build_c_cast): Implement -Wcast-align=strict. cp: 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> * typeck.c (build_reinterpret_cast_1, build_const_cast_1): Implement -Wcast-align=strict. testsuite: 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> * c-c++-common/Wcast-align.c: New test. From-SVN: r252832
Bernd Edlinger committed -
c-pragma.c (handle_pragma_scalar_storage_order): Expand on error message for non-uniform endianness and issue a warning in C++. * c-pragma.c (handle_pragma_scalar_storage_order): Expand on error message for non-uniform endianness and issue a warning in C++. From-SVN: r252831
Eric Botcazou committed -
re PR c++/78648 (ICE on invalid C++ code on x86_64-linux-gnu (Segmentation fault, contains_struct_check)) 2017-09-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78648 * g++.dg/cpp0x/lambda/lambda-ice21.C: New. From-SVN: r252829
Paolo Carlini committed -
This commit adds comments to fields in the cgraph_thunk_info structure declaration from cgraph.h. They will hopefully answer questions that people like myself can ask while discovering the thunk machinery. I also made an assertion stricter in cgraph_node::create_thunk. Bootsrapped and regtested on x86_64-linux. gcc/ * cgraph.h (cgraph_thunk_info): Add comments. * cgraph.c (cgraph_node::create_thunk): Adjust comment, make assert for VIRTUAL_* arguments stricter. From-SVN: r252828
Pierre-Marie de Rodat committed -
2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> PR tree-optimization/71026 * match.pd: Move RDIV patterns from fold-const.c * fold-const.c (distribute_real_division): Removed. (fold_binary_loc): Remove calls to distribute_real_divison. PR tree-optimization/71026 * gcc/testsuire/gcc.dg/fold-div-1.c: Use -O1. From-SVN: r252827
Jackson Woodruff committed -
* doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document c++1z and gnu++1z as deprecated. Change other references to -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17. Change -Wc++1z-compat to -Wc++17-compat. * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L. * dwarf2out.c (highest_c_language): Handle C++17. (gen_compile_unit_die): Likewise. c-family/ * c.opt (Wc++1z-compat): Change from option to undocumented alias. (Wc++17-compat): Change from undocumented alias to option. (Wnoexcept-type): Enable by Wc++17-compat instead of Wc++1z-compat, change C++1z to C++17 in description. (std=c++1z, std=gnu++1z): Change from option to undocumented deprecated alias. (std=c++17, std=gnu++17): Change from undocumented alias to option. Adjust description. * c-common.h (enum cxx_dialect): Rename cxx1z to cxx17. * c-opts.c (set_std_cxx1z): Rename to ... (set_std_cxx17): ... this. (c_common_handle_option): Rename OPT_std_c__1z to OPT_std_c__17 and OPT_std_gnu__1z to OPT_std_gnu__17. Adjust set_std_cxx1z caller. (c_common_post_options): Use cxx17 instead of cxx1z. Adjust comments. cp/ * decl.c (redeclaration_error_message): Use cxx17 instead of cxx1z, adjust diagnostics refering to C++1z or -std=gnu++1z or -std=c++1z to C++17 or -std=gnu++17 or -std=c++17. Adjust comments. (cxx_init_decl_processing, next_initializable_field, is_direct_enum_init, check_initializer, cp_finish_decl, mark_inline_variable, grokdeclarator, grokparms, xref_basetypes, finish_function): Likewise. * cp-tree.h (DECL_INLINE_VAR_P): Likewise. * pt.c (mark_template_parm, convert_nontype_argument, instantiate_class_template_1, type_unification_real, unify, get_partial_spec_bindings, dependent_type_p_r): Likewise. * typeck.c (cp_build_unary_op): Likewise. * constexpr.c (var_in_maybe_constexpr_fn): Likewise. * call.c (build_user_type_conversion_1, build_over_call, build_special_member_call): Likewise. * lambda.c (begin_lambda_type): Likewise. * typeck2.c (process_init_constructor_record): Likewise. * class.c (build_base_field, finalize_literal_type_property, explain_non_literal_class): Likewise. * parser.c (cp_parser_diagnose_invalid_type_name, cp_parser_primary_expression, cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt, cp_parser_selection_statement, cp_convert_range_for, cp_parser_perform_range_for_lookup, cp_parser_decomposition_declaration, cp_parser_linkage_specification, cp_parser_static_assert, cp_parser_simple_type_specifier, cp_parser_namespace_definition, cp_parser_using_declaration, cp_parser_init_declarator, cp_parser_type_parameter_key, cp_parser_exception_specification_opt, cp_parser_std_attribute_spec, cp_parser_constructor_declarator_p): Likewise. * mangle.c (struct globals): Rename need_cxx1z_warning to need_cxx17_warning. (write_exception_spec, start_mangling, mangle_decl): Likewise. * Make-lang.in (check-c++1z): Rename to check-c++17, depend on it. (check-c++17): New goal. Use 17 instead of 1z. (check-c++-all): Use 17 instead of 1z. testsuite/ * lib/g++-dg.exp (g++-dg-runtest): Use 17 instead of 1z. * lib/target-supports.exp (check_effective_target_c++14): Use check_effective_target_c++17 instead of check_effective_target_c++1z. (check_effective_target_c++14_down): Likewise. (check_effective_target_c++1z_only): Rename to ... (check_effective_target_c++17_only): ... this. (check_effective_target_c++1z): Rename to ... (check_effective_target_c++17): ... this. * g++.dg/debug/dwarf2/inline-var-1.C: Use -std=c++17 or -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead of c++1z and c++17_only instead of c++1z_only. Adjust expected diagnostics and comments refering to 1z to 17. * g++.dg/debug/dwarf2/inline-var-2.C: Likewise. * g++.dg/template/partial5.C: Likewise. * g++.dg/template/nontype8.C: Likewise. * g++.dg/cpp1z/noexcept-type5.C: Likewise. * g++.dg/cpp1z/nontype3a.C: Likewise. * g++.dg/cpp1z/constexpr-lambda4.C: Likewise. * g++.dg/cpp1z/noexcept-type16.C: Likewise. * g++.dg/cpp1z/class-deduction32.C: Likewise. * g++.dg/cpp1z/pr78771.C: Likewise. * g++.dg/cpp1z/elide1.C: Likewise. * g++.dg/cpp1z/fold3.C: Likewise. * g++.dg/cpp1z/class-deduction2.C: Likewise. * g++.dg/cpp1z/noexcept-type12.C: Likewise. * g++.dg/cpp1z/inline-var2.C: Likewise. * g++.dg/cpp1z/eval-order2.C: Likewise. * g++.dg/cpp1z/decomp21.C: Likewise. * g++.dg/cpp1z/constexpr-lambda11.C: Likewise. * g++.dg/cpp1z/constexpr-lambda9.C: Likewise. * g++.dg/cpp1z/utf8-neg.C: Likewise. * g++.dg/cpp1z/class-deduction41.C: Likewise. * g++.dg/cpp1z/class-deduction23.C: Likewise. * g++.dg/cpp1z/nodiscard3.C: Likewise. * g++.dg/cpp1z/static_assert-nomsg.C: Likewise. * g++.dg/cpp1z/noexcept-type9.C: Likewise. * g++.dg/cpp1z/class-deduction21.C: Likewise. * g++.dg/cpp1z/range-for1.C: Likewise. * g++.dg/cpp1z/init-statement4.C: Likewise. * g++.dg/cpp1z/udlit-utf8char.C: Likewise. * g++.dg/cpp1z/decomp30.C: Likewise. * g++.dg/cpp1z/class-deduction39.C: Likewise. * g++.dg/cpp1z/register2.C: Likewise. * g++.dg/cpp1z/decomp9.C: Likewise. * g++.dg/cpp1z/regress1.C: Likewise. * g++.dg/cpp1z/direct-enum-init1.C: Likewise. * g++.dg/cpp1z/class-deduction30.C: Likewise. * g++.dg/cpp1z/abbrev2.C: Likewise. * g++.dg/cpp1z/nontype-auto6.C: Likewise. * g++.dg/cpp1z/regress2.C: Likewise. * g++.dg/cpp1z/decomp16.C: Likewise. * g++.dg/cpp1z/bool-increment1.C: Likewise. * g++.dg/cpp1z/aligned-new1.C: Likewise. * g++.dg/cpp1z/decomp3.C: Likewise. * g++.dg/cpp1z/register1.C: Likewise. * g++.dg/cpp1z/namespace-attribs.C: Likewise. * g++.dg/cpp1z/class-deduction1.C: Likewise. * g++.dg/cpp1z/decomp10.C: Likewise. * g++.dg/cpp1z/constexpr-if11.C: Likewise. * g++.dg/cpp1z/constexpr-lambda10.C: Likewise. * g++.dg/cpp1z/decomp27.C: Likewise. * g++.dg/cpp1z/noexcept-type2.C: Likewise. * g++.dg/cpp1z/constexpr-lambda6.C: Likewise. * g++.dg/cpp1z/class-deduction9.C: Likewise. * g++.dg/cpp1z/attributes-enum-1.C: Likewise. * g++.dg/cpp1z/decomp11.C: Likewise. * g++.dg/cpp1z/aligned-new3.C: Likewise. * g++.dg/cpp1z/utf8-2.C: Likewise. * g++.dg/cpp1z/lambda-this3.C: Likewise. * g++.dg/cpp1z/decomp-constexpr1.C: Likewise. * g++.dg/cpp1z/byte1.C: Likewise. * g++.dg/cpp1z/nontype-auto9.C: Likewise. * g++.dg/cpp1z/aggr-base4.C: Likewise. * g++.dg/cpp1z/constexpr-lambda1.C: Likewise. * g++.dg/cpp1z/nontype-auto3.C: Likewise. * g++.dg/cpp1z/utf8-2a.C: Likewise. * g++.dg/cpp1z/constexpr-lambda7.C: Likewise. * g++.dg/cpp1z/aggr-base6.C: Likewise. * g++.dg/cpp1z/cplusplus.C: Likewise. * g++.dg/cpp1z/class-deduction20.C: Likewise. * g++.dg/cpp1z/aggr-base2.C: Likewise. * g++.dg/cpp1z/class-deduction6.C: Likewise. * g++.dg/cpp1z/noexcept-type3.C: Likewise. * g++.dg/cpp1z/class-deduction31.C: Likewise. * g++.dg/cpp1z/class-deduction25.C: Likewise. * g++.dg/cpp1z/class-deduction18.C: Likewise. * g++.dg/cpp1z/fold9.C: Likewise. * g++.dg/cpp1z/noexcept-type8.C: Likewise. * g++.dg/cpp1z/abbrev1.C: Likewise. * g++.dg/cpp1z/constexpr-if10.C: Likewise. * g++.dg/cpp1z/utf8.C: Likewise. * g++.dg/cpp1z/noexcept-type7.C: Likewise. * g++.dg/cpp1z/aggr-base3.C: Likewise. * g++.dg/cpp1z/constexpr-lambda8.C: Likewise. * g++.dg/cpp1z/init-statement2.C: Likewise. * g++.dg/cpp1z/nontype-auto4.C: Likewise. * g++.dg/cpp1z/constexpr-if12.C: Likewise. * g++.dg/cpp1z/class-deduction40.C: Likewise. * g++.dg/cpp1z/nontype3.C: Likewise. * g++.dg/cpp1z/class-deduction14.C: Likewise. * g++.dg/cpp1z/fold7.C: Likewise. * g++.dg/cpp1z/nontype2.C: Likewise. * g++.dg/cpp1z/class-deduction15.C: Likewise. * g++.dg/cpp1z/nested-namespace-def1.C: Likewise. * g++.dg/cpp1z/class-deduction13.C: Likewise. * g++.dg/cpp1z/aligned-new7.C: Likewise. * g++.dg/cpp1z/noexcept-type1.C: Likewise. * g++.dg/cpp1z/nontype1.C: Likewise. * g++.dg/cpp1z/init-statement5.C: Likewise. * g++.dg/cpp1z/nontype-auto2.C: Likewise. * g++.dg/cpp1z/decomp17.C: Likewise. * g++.dg/cpp1z/fold4.C: Likewise. * g++.dg/cpp1z/constexpr-lambda2.C: Likewise. * g++.dg/cpp1z/fold7a.C: Likewise. * g++.dg/cpp1z/nontype-auto5.C: Likewise. * g++.dg/cpp1z/init-statement7.C: Likewise. * g++.dg/cpp1z/aggr-base5.C: Likewise. * g++.dg/cpp1z/constexpr-lambda5.C: Likewise. * g++.dg/cpp1z/pr79143.C: Likewise. * g++.dg/cpp1z/class-deduction38.C: Likewise. * g++.dg/cpp1z/nontype-auto8.C: Likewise. * g++.dg/cpp1z/class-deduction12.C: Likewise. * g++.dg/cpp1z/decomp20.C: Likewise. * g++.dg/cpp1z/class-deduction22.C: Likewise. * g++.dg/cpp1z/class-deduction29.C: Likewise. * g++.dg/cpp1z/class-deduction8.C: Likewise. * g++.dg/cpp1z/class-deduction43.C: Likewise. * g++.dg/cpp1z/feat-cxx1z.C: Likewise. * g++.dg/cpp1z/fold8.C: Likewise. * g++.dg/cpp1z/init-statement3.C: Likewise. * g++.dg/cpp1z/nontype-auto10.C: Likewise. * g++.dg/cpp1z/class-deduction36.C: Likewise. * g++.dg/cpp1z/noexcept-type17.C: Likewise. * g++.dg/cpp1z/fallthrough1.C: Likewise. * g++.dg/cpp1z/fold1.C: Likewise. * g++.dg/cpp1z/class-deduction26.C: Likewise. * g++.dg/cpp1z/fold-ice1.C: Likewise. * g++.dg/cpp1z/fold5.C: Likewise. * g++.dg/cpp1z/class-deduction34.C: Likewise. * g++.dg/cpp1z/noexcept-type6.C: Likewise. * g++.dg/cpp1z/class-deduction7.C: Likewise. * g++.dg/cpp1z/class-deduction16.C: Likewise. * g++.dg/cpp1z/class-deduction10.C: Likewise. * g++.dg/cpp1z/eval-order3.C: Likewise. * g++.dg/cpp1z/constexpr-lambda13.C: Likewise. * g++.dg/cpp1z/aggr-base2a.C: Likewise. * g++.dg/cpp1z/nontype-auto1.C: Likewise. * g++.dg/cpp1z/constexpr-lambda3.C: Likewise. * g++.dg/cpp1z/nontype-auto7.C: Likewise. * g++.dg/cpp1z/decomp15.C: Likewise. * g++.dg/cpp1z/noexcept-type4.C: Likewise. * g++.dg/cpp1z/fold-mangle.C: Likewise. * g++.dg/cpp1z/class-deduction35.C: Likewise. * g++.dg/cpp1z/decomp4.C: Likewise. * g++.dg/cpp1z/class-deduction42.C: Likewise. * g++.dg/cpp1z/init-statement8.C: Likewise. * g++.dg/cpp1z/inline-var1a.C: Likewise. * g++.dg/cpp1z/init-statement6.C: Likewise. * g++.dg/cpp1z/class-deduction17.C: Likewise. * g++.dg/cpp1z/class-deduction28.C: Likewise. * g++.dg/cpp1z/class-deduction27.C: Likewise. * g++.dg/cpp1z/decomp-bitfield1.C: Likewise. * g++.dg/cpp1z/attributes-enum-1a.C: Likewise. * g++.dg/cpp1z/class-deduction11.C: Likewise. * g++.dg/cpp1z/constexpr-lambda12.C: Likewise. * g++.dg/cpp1z/init-statement9.C: Likewise. * g++.dg/cpp1z/class-deduction19.C: Likewise. * g++.dg/cpp1z/class-deduction5.C: Likewise. * g++.dg/cpp1z/fold2.C: Likewise. * g++.dg/cpp1z/class-deduction33.C: Likewise. * g++.dg/cpp1z/class-deduction24.C: Likewise. * g++.dg/cpp1z/aggr-base1.C: Likewise. * g++.dg/cpp1z/fold6.C: Likewise. * g++.dg/cpp1z/decomp12.C: Likewise. * g++.dg/cpp1z/class-deduction4.C: Likewise. * g++.dg/cpp1z/inline-var1.C: Likewise. * g++.dg/cpp1z/aligned-new2.C: Likewise. * g++.dg/cpp1z/class-deduction3.C: Likewise. * g++.dg/other/error3.C: Likewise. * g++.dg/init/new25.C: Likewise. * g++.dg/init/new13.C: Likewise. * g++.dg/tls/diag-2.C: Likewise. * g++.dg/tls/diag-4.C: Likewise. * g++.dg/opt/noreturn-1.C: Likewise. * g++.dg/eh/async-unwind2.C: Likewise. * g++.dg/eh/spec9.C: Likewise. * g++.dg/eh/spec7.C: Likewise. * g++.dg/eh/template1.C: Likewise. * g++.dg/eh/cond4.C: Likewise. * g++.dg/eh/pr41819.C: Likewise. * g++.dg/eh/delete1.C: Likewise. * g++.dg/eh/spec3.C: Likewise. * g++.dg/eh/forced4.C: Likewise. * g++.dg/eh/spec2.C: Likewise. * g++.dg/eh/shadow1.C: Likewise. * g++.dg/eh/pr38662.C: Likewise. * g++.dg/eh/ehopt1.C: Likewise. * g++.dg/eh/spec8.C: Likewise. * g++.dg/eh/init-temp2.C: Likewise. * g++.dg/rtti/crash3.C: Likewise. * g++.dg/warn/Wreturn-type-3.C: Likewise. * g++.dg/warn/register-parm-1.C: Likewise. * g++.dg/warn/register-var-2.C: Likewise. * g++.dg/gcov/gcov-7.C: Likewise. * g++.dg/tree-ssa/pr45605.C: Likewise. * g++.dg/cpp/pr23827_cxx98_neg.C: Likewise. * g++.dg/lookup/exception1.C: Likewise. * g++.dg/ubsan/pr79589.C: Likewise. * g++.dg/tm/pr47340.C: Likewise. * g++.dg/tm/pr46567.C: Likewise. * g++.dg/expr/bitfield5.C: Likewise. * g++.dg/expr/bool1.C: Likewise. * g++.dg/expr/lval3.C: Likewise. * g++.dg/expr/lval4.C: Likewise. * g++.dg/expr/bitfield4.C: Likewise. * g++.dg/expr/bitfield6.C: Likewise. * g++.dg/expr/bool3.C: Likewise. * g++.dg/ext/has_nothrow_constructor.C: Likewise. * g++.dg/ext/has_nothrow_copy-7.C: Likewise. * g++.dg/ext/has_nothrow_copy-1.C: Likewise. * g++.dg/ext/has_nothrow_copy-2.C: Likewise. * g++.dg/ext/has_nothrow_copy-4.C: Likewise. * g++.dg/ext/has_nothrow_copy-5.C: Likewise. * g++.dg/ext/has_nothrow_copy-6.C: Likewise. * g++.dg/ext/has_nothrow_assign.C: Likewise. * g++.dg/parse/register1.C: Likewise. * g++.dg/parse/error15.C: Likewise. * g++.dg/parse/linkage2.C: Likewise. * g++.dg/concepts/intro2.C: Likewise. * g++.dg/concepts/class.C: Likewise. * g++.dg/concepts/traits1.C: Likewise. * g++.dg/concepts/req5.C: Likewise. * g++.dg/concepts/var-concept5.C: Likewise. * g++.dg/concepts/fn-concept2.C: Likewise. * g++.dg/concepts/traits2.C: Likewise. * g++.dg/concepts/placeholder2.C: Likewise. * g++.dg/concepts/class6.C: Likewise. * g++.dg/concepts/memtmpl1.C: Likewise. * g++.dg/concepts/friend2.C: Likewise. * g++.dg/concepts/template-parm3.C: Likewise. * g++.dg/concepts/template-parm10.C: Likewise. * g++.dg/concepts/explicit-spec1.C: Likewise. * g++.dg/concepts/explicit-spec3.C: Likewise. * g++.dg/concepts/var-templ2.C: Likewise. * g++.dg/concepts/intro5.C: Likewise. * g++.dg/concepts/deduction-constraint1.C: Likewise. * g++.dg/concepts/iconv1.C: Likewise. * g++.dg/concepts/constrained-parm.C: Likewise. * g++.dg/concepts/template-template-parm1.C: Likewise. * g++.dg/concepts/var-concept3.C: Likewise. * g++.dg/concepts/class3.C: Likewise. * g++.dg/concepts/memfun2.C: Likewise. * g++.dg/concepts/req1.C: Likewise. * g++.dg/concepts/disjunction1.C: Likewise. * g++.dg/concepts/req17.C: Likewise. * g++.dg/concepts/pr65848.C: Likewise. * g++.dg/concepts/placeholder4.C: Likewise. * g++.dg/concepts/decl-diagnose.C: Likewise. * g++.dg/concepts/intro7.C: Likewise. * g++.dg/concepts/pr68683.C: Likewise. * g++.dg/concepts/partial-spec4.C: Likewise. * g++.dg/concepts/template-parm5.C: Likewise. * g++.dg/concepts/explicit-inst1.C: Likewise. * g++.dg/concepts/class-deduction1.C: Likewise. * g++.dg/concepts/class1.C: Likewise. * g++.dg/concepts/req15.C: Likewise. * g++.dg/concepts/memfun.C: Likewise. * g++.dg/concepts/pr68434.C: Likewise. * g++.dg/concepts/inherit-ctor4.C: Likewise. * g++.dg/concepts/partial-spec6.C: Likewise. * g++.dg/concepts/var-templ1.C: Likewise. * g++.dg/concepts/template-parm8.C: Likewise. * g++.dg/concepts/explicit-inst3.C: Likewise. * g++.dg/concepts/class4.C: Likewise. * g++.dg/concepts/req6.C: Likewise. * g++.dg/concepts/fn8.C: Likewise. * g++.dg/concepts/class5.C: Likewise. * g++.dg/concepts/placeholder5.C: Likewise. * g++.dg/concepts/req16.C: Likewise. * g++.dg/concepts/req10.C: Likewise. * g++.dg/concepts/var-concept2.C: Likewise. * g++.dg/concepts/auto3.C: Likewise. * g++.dg/concepts/generic-fn-err.C: Likewise. * g++.dg/concepts/pr65552.C: Likewise. * g++.dg/concepts/partial-concept-id2.C: Likewise. * g++.dg/concepts/fn1.C: Likewise. * g++.dg/concepts/partial-spec.C: Likewise. * g++.dg/concepts/template-parm12.C: Likewise. * g++.dg/concepts/diagnostic1.C: Likewise. * g++.dg/concepts/intro1.C: Likewise. * g++.dg/concepts/explicit-inst4.C: Likewise. * g++.dg/concepts/req18.C: Likewise. * g++.dg/concepts/explicit-spec5.C: Likewise. * g++.dg/concepts/var-concept6.C: Likewise. * g++.dg/concepts/fn9.C: Likewise. * g++.dg/concepts/req2.C: Likewise. * g++.dg/concepts/template-parm7.C: Likewise. * g++.dg/concepts/req14.C: Likewise. * g++.dg/concepts/template-parm6.C: Likewise. * g++.dg/concepts/variadic4.C: Likewise. * g++.dg/concepts/fn6.C: Likewise. * g++.dg/concepts/req-neg1.C: Likewise. * g++.dg/concepts/alias3.C: Likewise. * g++.dg/concepts/expression2.C: Likewise. * g++.dg/concepts/partial-spec3.C: Likewise. * g++.dg/concepts/expression3.C: Likewise. * g++.dg/concepts/memfun-err.C: Likewise. * g++.dg/concepts/pr66091.C: Likewise. * g++.dg/concepts/explicit-spec2.C: Likewise. * g++.dg/concepts/equiv.C: Likewise. * g++.dg/concepts/friend1.C: Likewise. * g++.dg/concepts/fn4.C: Likewise. * g++.dg/concepts/var-templ3.C: Likewise. * g++.dg/concepts/explicit-inst2.C: Likewise. * g++.dg/concepts/alias2.C: Likewise. * g++.dg/concepts/regress/alias-decl-42.C: Likewise. * g++.dg/concepts/placeholder6.C: Likewise. * g++.dg/concepts/fn10.C: Likewise. * g++.dg/concepts/req3.C: Likewise. * g++.dg/concepts/variadic2.C: Likewise. * g++.dg/concepts/pr65636.C: Likewise. * g++.dg/concepts/intro6.C: Likewise. * g++.dg/concepts/class2.C: Likewise. * g++.dg/concepts/fn2.C: Likewise. * g++.dg/concepts/req20.C: Likewise. * g++.dg/concepts/req8.C: Likewise. * g++.dg/concepts/placeholder1.C: Likewise. * g++.dg/concepts/pr65854.C: Likewise. * g++.dg/concepts/member-concept.C: Likewise. * g++.dg/concepts/template-parm2.C: Likewise. * g++.dg/concepts/variadic1.C: Likewise. * g++.dg/concepts/fn7.C: Likewise. * g++.dg/concepts/intro4.C: Likewise. * g++.dg/concepts/req13.C: Likewise. * g++.dg/concepts/inherit-ctor3.C: Likewise. * g++.dg/concepts/explicit-spec6.C: Likewise. * g++.dg/concepts/auto1.C: Likewise. * g++.dg/concepts/alias1.C: Likewise. * g++.dg/concepts/fn-concept1.C: Likewise. * g++.dg/concepts/template-parm11.C: Likewise. * g++.dg/concepts/explicit-spec4.C: Likewise. * g++.dg/concepts/partial-concept-id1.C: Likewise. * g++.dg/concepts/req9.C: Likewise. * g++.dg/concepts/req4.C: Likewise. * g++.dg/concepts/pr65681.C: Likewise. * g++.dg/concepts/req7.C: Likewise. * g++.dg/concepts/req12.C: Likewise. * g++.dg/concepts/fn5.C: Likewise. * g++.dg/concepts/alias4.C: Likewise. * g++.dg/concepts/generic-fn.C: Likewise. * g++.dg/concepts/feature-macro.C: Likewise. * g++.dg/concepts/req19.C: Likewise. * g++.dg/concepts/placeholder3.C: Likewise. * g++.dg/concepts/intro3.C: Likewise. * g++.dg/concepts/partial-spec5.C: Likewise. * g++.dg/concepts/template-parm4.C: Likewise. * g++.dg/concepts/dr1430.C: Likewise. * g++.dg/concepts/pr65634.C: Likewise. * g++.dg/concepts/var-concept4.C: Likewise. * g++.dg/concepts/pr67249.C: Likewise. * g++.dg/concepts/expression.C: Likewise. * g++.dg/concepts/pr65575.C: Likewise. * g++.dg/concepts/partial-spec2.C: Likewise. * g++.dg/concepts/template-parm9.C: Likewise. * g++.dg/concepts/inherit-ctor1.C: Likewise. * g++.dg/concepts/equiv2.C: Likewise. * g++.dg/concepts/req11.C: Likewise. * g++.dg/concepts/template-parm1.C: Likewise. * g++.dg/concepts/inherit-ctor2.C: Likewise. * g++.dg/concepts/var-concept1.C: Likewise. * g++.dg/concepts/fn3.C: Likewise. * g++.dg/torture/pr46364.C: Likewise. * g++.dg/torture/stackalign/eh-alloca-1.C: Likewise. * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-1.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-2.C: Likewise. * g++.dg/torture/stackalign/eh-global-1.C: Likewise. * g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise. * g++.dg/torture/stackalign/eh-inline-2.C: Likewise. * g++.dg/torture/stackalign/eh-inline-1.C: Likewise. * g++.dg/torture/pr52918-1.C: Likewise. * g++.dg/torture/pr49394.C: Likewise. * g++.dg/torture/pr57190.C: Likewise. * g++.dg/cpp0x/static_assert8.C: Likewise. * g++.dg/cpp0x/noexcept19.C: Likewise. * g++.dg/cpp0x/variadic-throw.C: Likewise. * g++.dg/cpp0x/variadic73.C: Likewise. * g++.dg/cpp0x/noexcept02.C: Likewise. * g++.dg/cpp0x/defaulted23.C: Likewise. * g++.dg/cpp0x/noexcept08.C: Likewise. * g++.dg/cpp0x/auto9.C: Likewise. * g++.dg/cpp0x/lambda/lambda-eh2.C: Likewise. * g++.dg/cpp0x/error5.C: Likewise. * c-c++-common/gomp/atomic-12.c: Likewise. * c-c++-common/gomp/atomic-13.c: Likewise. * c-c++-common/gomp/atomic-14.c: Likewise. * c-c++-common/Wvarargs-2.c: Likewise. * c-c++-common/Wvarargs.c: Likewise. * c-c++-common/vector-subscript-2.c: Likewise. * g++.old-deja/g++.robertl/eb123.C: Likewise. * g++.old-deja/g++.eh/tmpl3.C: Likewise. * g++.old-deja/g++.eh/cleanup2.C: Likewise. * g++.old-deja/g++.eh/badalloc1.C: Likewise. * g++.old-deja/g++.eh/throw2.C: Likewise. * g++.old-deja/g++.eh/throw1.C: Likewise. * g++.old-deja/g++.eh/tmpl1.C: Likewise. * g++.old-deja/g++.other/new7.C: Likewise. * g++.old-deja/g++.other/crash30.C: Likewise. * g++.old-deja/g++.other/regstack.C: Likewise. * g++.old-deja/g++.other/crash28.C: Likewise. * g++.old-deja/g++.jason/bool5.C: Likewise. * g++.old-deja/g++.mike/p10416.C: Likewise. * g++.old-deja/g++.mike/eh25.C: Likewise. * g++.old-deja/g++.mike/eh55.C: Likewise. libcpp/ * include/cpplib.h (enum c_lang): Rename CLK_GNUCXX1Z to CLK_GNUCXX17 and CLK_CXX1Z to CLK_CXX17. * init.c (lang_defaults, cpp_init_builtins): Likewise. * expr.c (cpp_classify_number): Use C++17 instead of C++1z in diagnostics. libstdc++-v3/ * testsuite/libstdc++-prettyprinters/cxx17.cc: Use -std=c++17 or -std=gnu++17 instead of -std=c++1z or -std=gnu++1z. Use c++17 instead of c++1z and c++17_only instead of c++1z_only. Adjust expected diagnostics and comments refering to 1z to 17. * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise. * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise. * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise. * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise. * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc: Likewise. * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise. * testsuite/18_support/launder/1.cc (test02): Likewise. * testsuite/18_support/launder/requirements_neg.cc: Likewise. * testsuite/18_support/launder/requirements.cc: Likewise. * testsuite/18_support/byte/requirements.cc: Likewise. * testsuite/18_support/byte/ops.cc: Likewise. * testsuite/18_support/byte/global_neg.cc: Likewise. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: Likewise. * testsuite/27_io/types/4.cc: Likewise. * testsuite/25_algorithms/sample/81221.cc: Likewise. * testsuite/25_algorithms/sample/1.cc: Likewise. * testsuite/25_algorithms/sample/2.cc: Likewise. * testsuite/25_algorithms/search/searcher.cc: Likewise. * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise. * testsuite/experimental/filesystem/path/construct/string_view.cc: Likewise. * testsuite/24_iterators/range_access_cpp17.cc: Likewise. * testsuite/24_iterators/container_access.cc: Likewise. * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise. * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise. * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. * testsuite/20_util/shared_ptr/cons/array.cc: Likewise. * testsuite/20_util/shared_ptr/observers/array.cc (struct A): Likewise. * testsuite/20_util/pair/cons/deduction.cc: Likewise. * testsuite/20_util/variant/deduction.cc: Likewise. * testsuite/20_util/tuple/78939.cc: Likewise. * testsuite/20_util/tuple/cons/deduction.cc: Likewise. * testsuite/20_util/void_t/1.cc: Likewise. * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Likewise. * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise. * testsuite/20_util/addressof/requirements/constexpr.cc: Likewise. * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc: Likewise. * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/has_unique_object_representations/value.cc: Likewise. * testsuite/20_util/time_point/arithmetic/constexpr.cc: Likewise. * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise. * testsuite/20_util/function/cons/deduction.cc: Likewise. * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: Likewise. * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_aggregate/value.cc: Likewise. * testsuite/26_numerics/lcm/1.cc: Likewise. * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. * testsuite/26_numerics/gcd/1.cc: Likewise. * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise. * testsuite/26_numerics/valarray/deduction.cc: Likewise. * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise. * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise. * testsuite/23_containers/queue/members/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/array/cons/deduction.cc: Likewise. * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise. * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc: Likewise. * testsuite/23_containers/deque/cons/deduction.cc: Likewise. * testsuite/23_containers/stack/members/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: Likewise. * testsuite/23_containers/list/cons/deduction.cc: Likewise. * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Likewise. * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc: Likewise. * testsuite/23_containers/vector/cons/deduction.cc: Likewise. * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: Likewise. * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise. * testsuite/21_strings/basic_string/cons/char/deduction.cc: Likewise. * testsuite/21_strings/basic_string/cons/char/79162.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc: Likewise. * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: Likewise. From-SVN: r252826
Jakub Jelinek committed -
PR rtl-optimization/82192 * combine.c (make_extraction): Don't look through non-paradoxical SUBREGs or TRUNCATE if pos + len is or might be bigger than inner's mode. * gcc.c-torture/execute/pr82192.c: New test. From-SVN: r252824
Jakub Jelinek committed -
We have many classes that copy cotr and assignment operator are deleted in different projects, gcc, gdb and gold. So this patch adds a macro to do this, and replace these existing mechanical code with macro DISABLE_COPY_AND_ASSIGN. The patch was posted in gdb-patches, https://sourceware.org/ml/gdb-patches/2017-07/msg00254.html but we think it is better to put this macro in include/ansidecl.h so that other projects can use it too. include: 2017-09-15 Yao Qi <yao.qi@linaro.org> Pedro Alves <palves@redhat.com> * ansidecl.h (DISABLE_COPY_AND_ASSIGN): New macro. Co-Authored-By: Pedro Alves <palves@redhat.com> From-SVN: r252823
Yao Qi committed -
include/ 2017-07-31 Nick Clifton <nickc@redhat.com> Binutils PR 21850 * ansidecl.h (OVERRIDE): Protect check of __cplusplus value with #idef __cplusplus. From-SVN: r252822
Nick Clifton committed -
2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * target.def (function_arg_offset): New hook. * targhooks.h (default_function_arg_offset): Declare. * targhooks.c (default_function_arg_offset): New function. * function.c (locate_and_pad_parm): Use targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET. * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with... (TARGET_FUNCTION_ARG_OFFSET): ...this. * doc/tm.texi: Regenerate. * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete. * config/spu/spu.c (spu_function_arg_offset): New function. (TARGET_FUNCTION_ARG_OFFSET): Redefine. * system.h (FUNCTION_ARG_OFFSET): Poison. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252821
Richard Sandiford committed -
I'm not sure the documentation is correct that outprec is always less than inprec, and each non-default implementation tested for the case in which it wasn't, but the patch leaves it as-is. The SH port had a couple of TRULY_NOOP_TRUNCATION tests that were left over from the old shmedia port. 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayard <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * target.def (truly_noop_truncation): New hook. (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather than TRULY_NOOP_TRUNCATION. * hooks.h (hook_bool_uint_uint_true): Declare. * hooks.c (hook_bool_uint_uint_true): New function. * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with... (TARGET_TRULY_NOOP_TRUNCATION): ...this. * doc/tm.texi: Regenerate. * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION rather than TRULY_NOOP_TRUNCATION in comments. (simplify_comparison): Likewise. (record_truncated_value): Likewise. * expmed.c (extract_bit_field_1): Likewise. (extract_split_bit_field): Likewise. * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation instead of TRULY_NOOP_TRUNCATION. * function.c (assign_parm_setup_block): Likewise. * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise. * rtlhooks.c: Include target.h. * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete. * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete. * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete. * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete. * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete. * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete. * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete. * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete. * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete. * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete. * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete. * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete. * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete. * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete. * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete. * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete. * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete. * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete. * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete. * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete. * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete. * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete. * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete. * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete. * config/mips/mips.c (mips_truly_noop_truncation): New function. (TARGET_TRULY_NOOP_TRUNCATION): Redefine. * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION rather than TRULY_NOOP_TRUNCATION in comments. * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete. * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete. * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete. * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete. * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete. * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete. * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete. * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete. * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete. * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete. * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete. * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION rather than TRULY_NOOP_TRUNCATION in comments. * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete. * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete. * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete. * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete. * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove TRULY_NOOP_TRUNCATION condition. (MAYBE_INDEX_REGISTER_RTX_P): Likewise. (TRULY_NOOP_TRUNCATION): Delete. * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete. * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete. * config/spu/spu.c (spu_truly_noop_truncation): New function. (TARGET_TRULY_NOOP_TRUNCATION): Redefine. * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete. * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete. * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction. (TARGET_TRULY_NOOP_TRUNCATION): Redefine. * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION rather than TRULY_NOOP_TRUNCATION in comments. * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete. * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete. * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete. * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete. * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete. * system.h (TRULY_NOOP_TRUNCATION): Poison. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252818
Richard Sandiford committed -
2017-09-15 Christophe Lyon <christophe.lyon@linaro.org> PR target/67591 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute. (*cmp_ior): Likewise. (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute. (*ior_scc_scc_cmp): Likewise. (*and_scc_scc): Likewise. (*and_scc_scc_cmp): Likewise. From-SVN: r252817
Christophe Lyon committed -
This also seemed like a good opportunity to reverse the sense of the hook to "can", to avoid the awkward double negative in !CANNOT. 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayard <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * target.def (can_change_mode_class): New hook. (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS. (hard_regno_nregs): Likewise. * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare. * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function. * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with... (TARGET_CAN_CHANGE_MODE_CLASS): ...this. (LOAD_EXTEND_OP): Update accordingly. * doc/tm.texi: Regenerate. * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of CANNOT_CHANGE_MODE_CLASS. * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with... (REG_CAN_CHANGE_MODE_P): ...this new macro. * combine.c (simplify_set): Update accordingly. * emit-rtl.c (validate_subreg): Likewise. * recog.c (general_operand): Likewise. * regcprop.c (mode_change_ok): Likewise. * reload1.c (choose_reload_regs): Likewise. (inherit_piecemeal_p): Likewise. * rtlanal.c (simplify_subreg_regno): Likewise. * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P instead of CANNOT_CHANGE_MODE_CLASS. (reload_cse_simplify_operands): Likewise. * reload.c (push_reload): Use targetm.can_change_mode_class instead of CANNOT_CHANGE_MODE_CLASS. (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of REG_CANNOT_CHANGE_MODE_P. * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/alpha/alpha.c (alpha_can_change_mode_class): New function. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (arm_can_change_mode_class): New function. * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather than CANNOT_CHANGE_MODE_CLASS in comments. * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete. * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with... (ix86_can_change_mode_class): ...this new function, inverting the sense of the return value. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (ia64_can_change_mode_class): New function. * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete. * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with... (m32c_can_change_mode_class): ...this new function, inverting the sense of the return value. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete. * config/mips/mips.c (mips_cannot_change_mode_class): Replace with... (mips_can_change_mode_class): ...this new function, inverting the sense of the return value. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (msp430_can_change_mode_class): New function. * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete. * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (pa_cannot_change_mode_class): Replace with... (pa_can_change_mode_class): ...this new function, inverting the sense of the return value. (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather than CANNOT_CHANGE_MODE_CLASS in comments. * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete. * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (pdp11_cannot_change_mode_class): Replace with... (pdp11_can_change_mode_class): ...this new function, inverting the sense of the return value. * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/powerpcspe/powerpcspe-protos.h (rs6000_cannot_change_mode_class_ptr): Delete. * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class_ptr): Delete. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (rs6000_option_override_internal): Assign to targetm.can_change_mode_class instead of rs6000_cannot_change_mode_class_ptr. (rs6000_cannot_change_mode_class): Replace with... (rs6000_can_change_mode_class): ...this new function, inverting the sense of the return value. (rs6000_debug_cannot_change_mode_class): Replace with... (rs6000_debug_can_change_mode_class): ...this new function. * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/riscv/riscv.c (riscv_can_change_mode_class): New function. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr): Delete. * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (rs6000_option_override_internal): Assign to targetm.can_change_mode_class instead of rs6000_cannot_change_mode_class_ptr. (rs6000_cannot_change_mode_class): Replace with... (rs6000_can_change_mode_class): ...this new function, inverting the sense of the return value. (rs6000_debug_cannot_change_mode_class): Replace with... (rs6000_debug_can_change_mode_class): ...this new function. * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete. * config/s390/s390.c (s390_cannot_change_mode_class): Replace with... (s390_can_change_mode_class): ...this new function, inverting the sense of the return value. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete. * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (sh_cannot_change_mode_class): Replace with... (sh_can_change_mode_class): ...this new function, inverting the sense of the return value. * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (sparc_can_change_mode_class): New function. * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/spu/spu.c (spu_can_change_mode_class): New function. (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete. * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. (visium_can_change_mode_class): New function. * system.h (CANNOT_CHANGE_MODE_CLASS): Poison. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252816
Richard Sandiford committed -
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg00994.html PR demangler/82195 * cp-demangle.c (d_name): Add 'toplevel' parm. Pass to ... (d_local_name): ... here. Parse trailing function args on nested local_name. (d_encoding, d_special_name, d_class_enum_type): Adjust d_name calls. * testsuite/demangle-expected: Add tests. From-SVN: r252815
Nathan Sidwell committed -
2017-09-15 Richard Biener <rguenther@suse.de> PR lto/81968 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Iterate marking dependent sections necessary. From-SVN: r252807
Richard Biener committed -
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg00983.html * cp-demangle.c (is_fnqual_component_type): Reimplement using FNQUAL_COMPONENT_CASE. (d_encoding): Hold bare_function_type in local var. (d_local_name): Build name in both cases and build result once. Collapse switch-if to single conditional. * testsuite/demangle-expected: Realign blank lines with tests. From-SVN: r252802
Nathan Sidwell committed -
re PR tree-optimization/82217 (ICE on valid code at -O1 and above: in visit_phi, at tree-ssa-sccvn.c:3908) 2017-09-15 Richard Biener <rguenther@suse.de> PR tree-optimization/82217 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP but not undefined case. * gcc.dg/torture/pr82217.c: New testcase. From-SVN: r252796
Richard Biener committed -
PR target/82145 * postreload.c (reload_cse_simplify_operands): Skip NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL. * gcc.target/i386/pr82145.c: New test. From-SVN: r252791
Jakub Jelinek committed -
2017-09-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/82184 trans-decl.c (gfc_trans_deferred_vars): Do not null the 'span' field if the symbol is either implicitly or explicitly saved. 2017-09-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/82184 * gfortran.dg/pointer_array_9.f90: New test. From-SVN: r252781
Paul Thomas committed -
2017-09-15 Richard Biener <rguenther@suse.de> PR tree-optimization/68823 * graphite-scop-detection.c (build_alias_set): If we have a possible dependence check whether we can handle them by just looking at the DRs DR_ACCESS_FNs. (build_scops): If build_alias_set fails, fail the SCOP. From-SVN: r252780
Richard Biener committed -
From-SVN: r252779
GCC Administrator committed
-
- 14 Sep, 2017 9 commits
-
-
2017-09-14 Tom de Vries <tom@codesourcery.com> * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove. * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ... * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here. * testsuite/libgomp.c/c.exp: Include test-cases from libgomp.c-c++-common. * testsuite/libgomp.c++/c++.exp: Same. Force c++-mode compilation of .c files. From-SVN: r252775
Tom de Vries committed -
rs6000-builtin.def (BU_FLOAT128_1_HW): New macros to support float128 built-in functions that require the ISA 3.0 hardware. [gcc] 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros to support float128 built-in functions that require the ISA 3.0 hardware. (BU_FLOAT128_3_HW): Likewise. (SQRTF128): Add support for the IEEE 128-bit square root and fma built-in functions. (FMAF128): Likewise. (FMAQ): Likewise. * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support for built-in functions that need the ISA 3.0 IEEE 128-bit floating point instructions. (rs6000_invalid_builtin): Likewise. (rs6000_builtin_mask_names): Likewise. * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise. (RS6000_BTM_FLOAT128_HW): Likewise. (RS6000_BTM_COMMON): Likewise. * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator function. * doc/extend.texi (RS/6000 built-in functions): Document the IEEE 128-bit floating point square root and fused multiply-add built-in functions. [gcc/testsuite] 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/abs128-1.c: Use __builtin_fabsf128 instead of __builtin_fabsq. * gcc.target/powerpc/float128-5.c: Use __builtin_fabsf128 instead of __builtin_fabsq. Prevent the test from running on 32-bit. * gcc.target/powerpc/float128-fma1.c: New test. * gcc.target/powerpc/float128-fma2.c: Likewise. * gcc.target/powerpc/float128-sqrt1.c: Likewise. * gcc.target/powerpc/float128-sqrt2.c: Likewise. From-SVN: r252771
Michael Meissner committed -
PR c++/81314 * cp-gimplify.c (omp_var_to_track): Look through references. (omp_cxx_notice_variable): Likewise. * testsuite/libgomp.c++/pr81314.C: New test. From-SVN: r252770
Jakub Jelinek committed -
Calls to gcc_jit_context_get_builtin_function that accessed builtins in sanitizer.def and after (or failed to match any builtin) led to a crash accessing a NULL builtin name. The entries with the NULL name came from these lines in sanitizer.def: /* This has to come before all the sanitizer builtins. */ DEF_BUILTIN_STUB(BEGIN_SANITIZER_BUILTINS, (const char *)0) [...snip...] /* This has to come after all the sanitizer builtins. */ DEF_BUILTIN_STUB(END_SANITIZER_BUILTINS, (const char *)0) This patch updates jit-builtins.c to cope with such entries, fixing the crash. gcc/jit/ChangeLog: PR jit/82174 * jit-builtins.c (matches_builtin): Ignore entries with a NULL name. gcc/testsuite/ChangeLog: PR jit/82174 * jit.dg/test-error-gcc_jit_context_get_builtin_function-unknown-builtin.c: New test case. From-SVN: r252769
David Malcolm committed -
rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC reg (r2) isn't in the set of registers defined in the prologue. * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC reg (r2) isn't in the set of registers defined in the prologue. * gcc.target/powerpc/r2_shrink-wrap.c: New. From-SVN: r252768
Pat Haugen committed -
Reviewed-on: https://go-review.googlesource.com/63753 From-SVN: r252767
Ian Lance Taylor committed -
Epilogue vectorisation uses the vectorisation factor of the main loop as the maximum vectorisation factor allowed for correctness. That makes sense as a conservatively correct value, since the chosen vectorisation factor will be strictly less than that anyway. However, once the VF itself becomes variable, it's easier to carry across the original maximum VF instead. 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor. (LOOP_VINFO_MAX_VECT_FACTOR): New macro. (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with... (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro. * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update accordingly. * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize max_vectorization_factor. (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252766
Richard Sandiford committed -
The vectoriser sometimes considers lowering "vector" operations into N scalar word operations. This N needs to be fixed at compile time, so the condition guarding it needs to change when variable-lengh vectors are added. This patch puts the condition into a helper routine so that there's only one place to update. 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * tree-vectorizer.h (vect_min_worthwhile_factor): Delete. (vect_worthwhile_without_simd_p): Declare. * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function. (vectorizable_reduction): Use it. * tree-vect-stmts.c (vectorizable_shift): Likewise. (vectorizable_operation): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252765
Richard Sandiford committed -
This patch adds a vectoriser helper routine to calculate how many copies of a vector statement we need. At present this is always: LOOP_VINFO_VECT_FACTOR (loop_vinfo) / TYPE_VECTOR_SUBPARTS (vectype) but later patches add other cases. Another benefit of using a helper routine is that it can assert that the division is exact (which it must be). 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * tree-vectorizer.h (vect_get_num_copies): New function. * tree-vect-data-refs.c (vect_get_data_access_cost): Use it. * tree-vect-loop.c (vectorizable_reduction): Likewise. (vectorizable_induction): Likewise. (vectorizable_live_operation): Likewise. * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. (vectorizable_bswap): Likewise. (vectorizable_call): Likewise. (vectorizable_conversion): Likewise. (vectorizable_assignment): Likewise. (vectorizable_shift): Likewise. (vectorizable_operation): Likewise. (vectorizable_store): Likewise. (vectorizable_load): Likewise. (vectorizable_condition): Likewise. (vectorizable_comparison): Likewise. (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r252764
Richard Sandiford committed
-