- 27 Nov, 2019 17 commits
-
-
re PR c++/88395 (ICE: Segmentation fault signal terminated program cc1plus, with -std=c++2a -fconcepts) 2019-11-27 Andrew Sutton <asutton@lock3software.com> PR c++/88395 Prevent recursive satisfaction by adding requests to the instantiation stack. gcc/cp/ * constraint.cc (satisfy_declaration_constraints): Push tinst levels around satisfaction. gcc/testsuite/ * g++.dg/cpp2a/concepts-pr88395.C: New. * g++.dg/cpp2a/concepts-recursive-sat1.C: New. * g++.dg/cpp2a/concepts-recursive-sat2.C: New. * g++.dg/cpp2a/concepts-recursive-sat3.C: New. From-SVN: r278773
Andrew Sutton committed -
2019-11-27 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/90007 * recog.c (constrain_operands): Permit hard registers too for memory when LRA is used. 2019-11-27 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/90007 * gcc.target/i386/pr90007.c: New test. From-SVN: r278770
Vladimir Makarov committed -
Diagnose certain constraint errors as hard errors, but otherwise treat them the same as normal SFINAE-type errors. 2019-11-27 Andrew Sutton <asutton@lock3software.com> Diagnose certain constraint errors as hard errors, but otherwise treat them the same as normal SFINAE-type errors. Also, generally clean up the satisfaction functions. gcc/cp/ * constexpr.c (cxx_eval_constant_expression): Use evaluate_concept_check. * constraint.cc (normalize_concept_definition): Accept a diagnostic flag and only cache when not diagnosing errors. (decl_satisfied_cache): Map to trees instead of bools. (satisfy_atom): Guarantee a location for the errors, propagate complain flags to force_rvalue, and emit errors for non-boolean constraints. (get_normalized_constraints_and_args): New overloads. Factored out of satisfy_constraint_expression and satisfy_declaration_constraints. (satisfy_constraint_expression): Propagate diagnostic info to normalization. (satisfy_declaration_constraints): New. Factored out of constraints_satisfied_p. (constraint_satisfaction_value): New. Calls satisfy_constraint_expression or satisfy_declaration_constraints. (constraints_satisfied_p): Call constraint_satisfaction_value. (evaluate_concept_check): Don't take tsubst_falgs_t. Replay satisfaction if an error is encountered. (current_failed_constraint): Moved from pt.c. (diagnose_constraints): Call constraint_satisfaction_value. * cp-tree.h: Update declarations. * pt.c (current_failed_constraint): Moved to constraint.cc. * semantics.c (finish_id_expression_1): Remove a duplicate case. gcc/testsuite/ * g++.dg/concepts/pr84330.C: Update diagnostics. * g++.dg/cpp2a/concepts-requires2.C: Likewise. From-SVN: r278768
Andrew Sutton committed -
* config/m68k/m68k.c (m68k_output_compare_fp): Restore differences between Coldfire and regular m68k. * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants. From-SVN: r278767
Bernd Schmidt committed -
2019-11-27 Richard Biener <rguenther@suse.de> * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. * targhooks.c (default_builtin_vectorized_conversion): Likewise. * targhooks.h (default_builtin_vectorized_conversion): Likewise. * optabs-tree.c (supportable_convert_operation): Do not call targetm.vectorize.builtin_conversion. Remove unused decl parameter. * optabs-tree.h (supportable_convert_operation): Adjust. * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. * doc/tm.texi: Regenerate. * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust. * tree-vect-generic.c (expand_vector_conversion): Likewise. * tree-vect-stmts.c (vect_gen_widened_results_half): Remove unused decl parameter and adjust. (vect_create_vectorized_promotion_stmts): Likewise. (vectorizable_conversion): Adjust. From-SVN: r278765
Richard Biener committed -
2019-11-27 Richard Biener <rguenther@suse.de> PR tree-optimization/92690 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid converting elements not originally converted. * gcc.dg/torture/pr92690.c: New testcase. * gcc.dg/tree-ssa/forwprop-35.c: Adjust. From-SVN: r278764
Richard Biener committed -
PR fortran/91944 * simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER. * gfortran.dg/spread_size_limit_2.f90: New test. From-SVN: r278762
Jakub Jelinek committed -
PR middle-end/92463 * configure.ac: Use MPFR_RNDN instead of GMP's MP_RNDN. * configure: Regenerate gcc/ PR middle-end/92463 * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo, do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx, mpfr_rnd_t instead of mp_rnd_t. * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos, do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise. * gimple-ssa-sprintf.c (format_floating_max, format_floating): Use mpfr_exp_t instead of mp_exp_t. * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use MPFR_RNDx instead of GMP_RNDx. * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively. * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead of mp_rnd_t and remove MPFR_RNDx poisoning. * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx. fortran/ PR middle-end/92463 * arith.c (gfc_check_real_range): Replace mp_exp_t by mpfr_exp_t. From-SVN: r278761
Tobias Burnus committed -
As PR91790 exposed, when we have one slp node whose first_stmt_info_for_drptr is different from first_stmt_info, it's possible that the first_stmt DR isn't initialized yet before stmt SLP_TREE_SCALAR_STMTS[0] of slp node. So we shouldn't use first_stmt_info for vect_setup_realignment, instead we can use the one based on first_stmt_info_for_drptr DR with additional adjustment by bumping the distance from first_stmt DR. gcc/ChangeLog 2019-11-27 Kewen Lin <linkw@gcc.gnu.org> PR tree-optimization/91790 * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted DR for vect_setup_realignment when first_stmt_info is different from first_stmt_info_for_drptr. From-SVN: r278760
Kewen Lin committed -
PR c++/92524 * tree.c (replace_placeholders_r): Don't walk constructor elts with RANGE_EXPR indexes. * g++.dg/cpp0x/pr92524.C: New test. From-SVN: r278759
Jakub Jelinek committed -
re PR tree-optimization/92645 (Hand written vector code is 450 times slower when compiled with GCC compared to Clang) 2019-11-27 Richard Biener <rguenther@suse.de> PR tree-optimization/92645 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle CTORs with just a subset of the original vectors. * gcc.target/i386/pr92645-2.c: New testcase. * gcc.target/i386/pr92645-3.c: Likewise. From-SVN: r278758
Richard Biener committed -
2019-11-27 Richard Biener <rguenther@suse.de> PR middle-end/92674 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal edges and instead record blocks in bitmap. (gimple_expand_calls_inline): Adjust. (fold_marked_statements): Delay EH cleanup until all folding is done. (optimize_inline_calls): Do EH/abnormal cleanup for calls after inlining finished. From-SVN: r278757
Richard Biener committed -
* auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless LRA is enabled. * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is disabled. From-SVN: r278756
Bernd Schmidt committed -
I noticed that tsubst of a TEMPLATE_ID_EXPR was losing the location information from its EXPR_LOCATION. Then I noticed that cxx_eval_constant_expression was also throwing away location information for variable references. * pt.c (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Remember the location of a variable template-id. * constexpr.c (cxx_eval_constant_expression): Get expr location before stripping location wrappers. (non_const_var_error): Take location argument. From-SVN: r278755
Jason Merrill committed -
PR debug/92664 * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "". From-SVN: r278752
Jakub Jelinek committed -
From-SVN: r278751
GCC Administrator committed -
typeck.c (cp_build_unary_op): Consistently use the accurate location in seven additional diagnostic messages. /cp 2019-11-26 Paolo Carlini <paolo.carlini@oracle.com> * typeck.c (cp_build_unary_op): Consistently use the accurate location in seven additional diagnostic messages. (cp_build_compound_expr): Use cp_expr_loc_or_input_loc in one place. /testsuite 2019-11-26 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1z/bool-increment1.C: Test location(s) too. * g++.dg/expr/bitfield3.C: Likewise. * g++.dg/expr/bitfield4.C: Likewise. * g++.dg/expr/bitfield5.C: Likewise. * g++.dg/expr/bitfield6.C: Likewise. * g++.dg/expr/bool1.C: Likewise. * g++.dg/expr/bool2.C: Likewise. * g++.dg/expr/bool3.C: Likewise. * g++.dg/expr/bool4.C: Likewise. * g++.dg/expr/lval3.C: Likewise. * g++.dg/other/error18.C: Likewise. * g++.dg/warn/Wpointer-arith-1.C: Likewise. * g++.old-deja/g++.bugs/900212_01.C: Likewise. * g++.old-deja/g++.bugs/900428_02.C: Likewise. * g++.old-deja/g++.jason/rfg14.C: Likewise. * g++.old-deja/g++.other/overload11.C: Likewise. From-SVN: r278743
Paolo Carlini committed
-
- 26 Nov, 2019 16 commits
-
-
gcc/testsuite/ChangeLog: PR tree-optimization/92683 * gcc.dg/strcmpopt_8.c: New test. * gcc.dg/strcmpopt_9.c: New test. gcc/ChangeLog: PR tree-optimization/92683 * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test inadvertently removed in a previous change. Rename local variable for clarity. From-SVN: r278742
Martin Sebor committed -
This patch updates the vect_char_add target selector to use its own cache instead of the vect_int cache. This was causing a situation where bb-slp-40.c would fail on sparc when run after other tests that use the vect_int target selector, but pass when run on its own. 2019-11-26 Joel Hutton <Joel.Hutton@arm.com> gcc/testsuite/ PR testsuite/92391 * lib/target-supports.exp (check_effective_target_vect_char_add): Use a separate cache entry from vect_int. From-SVN: r278738
Joel Hutton committed -
PR c++/92648 * parser.c (cp_parser_std_attribute): For unknown attributes, skip balanced token seq instead of trying to parse attribute-argument-clause as expression list. Formatting fix. * g++.dg/cpp0x/gen-attrs-71.C: New test. From-SVN: r278737
Jakub Jelinek committed -
PR c++/61414 * c-attribs.c (handle_mode_attribute): Add mode attribute to ENUMERAL_TYPEs. * class.c (enum_to_min_precision): New hash_map. (enum_min_precision): New function. (check_bitfield_decl): Use it. * g++.dg/cpp0x/enum23.C: Remove xfail. * g++.dg/cpp0x/enum28.C: New test. From-SVN: r278736
Jakub Jelinek committed -
From-SVN: r278735
Jerry DeLisle committed -
From-SVN: r278734
Jerry DeLisle committed -
* Makefile.in (aclocal_deps): Fix path to cet.m4. From-SVN: r278732
Tobias Burnus committed -
* include/debug/helper_functions.h (__valid_range_aux): Use C++98 std::input_iterator_tag default constructor invocation. From-SVN: r278731
François Dumont committed -
2019-11-26 Richard Biener <rguenther@suse.de> PR middle-end/92669 * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with NULL pre_order. From-SVN: r278723
Richard Biener committed -
PR sanitizer/92154 * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce. * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise. From-SVN: r278722
Jakub Jelinek committed -
This fixes the s390 bootstrap by undefining existing defines before redefining them. gcc/ChangeLog: 2019-11-26 Robin Dapp <rdapp@linux.ibm.com> * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx. From-SVN: r278721
Robin Dapp committed -
PR tree-optimization/92644 * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check next to INTEGER_CST checks. * g++.dg/opt/pr92644.C: New test. From-SVN: r278720
Jakub Jelinek committed -
re PR tree-optimization/92645 (Hand written vector code is 450 times slower when compiled with GCC compared to Clang) 2019-11-26 Richard Biener <rguenther@suse.de> PR tree-optimization/92645 * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops do not build the operation from scalars if the operand is. * gcc.target/i386/pr92645.c: New testcase. From-SVN: r278719
Richard Biener committed -
* include/debug/array (array<>::fill): Add C++20 constexpr. (array<>::swap): Likewise. From-SVN: r278718
François Dumont committed -
* include/debug/safe_iterator.h [__cpp_lib_concepts](_Safe_iterator<>::iterator_concept): Define for C++20. From-SVN: r278717
François Dumont committed -
From-SVN: r278716
GCC Administrator committed
-
- 25 Nov, 2019 7 commits
-
-
From-SVN: r278713
Jakub Jelinek committed -
From-SVN: r278707
Jakub Jelinek committed -
re PR fortran/92629 (internal compiler error: in convert_mpz_to_unsigned, at fortran/simplify.c:173) 2019-11-25 Harald Anlauf <anlauf@gmx.de> PR fortran/92629 * simplify.c (convert_mpz_to_unsigned): Skip assert for argument range when -fno-range-check is specified. PR fortran/92629 * gfortran.dg/pr92629.f90: New testcase. From-SVN: r278699
Harald Anlauf committed -
This implements most of the remaining C++20 additions to the <iterator> header. * include/bits/iterator_concepts.h (ranges::iter_swap): Fix parameter types of poison pill overload. Use remove_reference_t when checking constraints. * include/bits/stl_iterator.h (move_sentinel): Define for C++20. (move_iterator): Adjust definitions of nested types for C++20. Add hidden friends for move_sentinel operations, iter_move and iter_swap. (common_iterator, counted_iterator): Define for C++20. * testsuite/24_iterators/move_iterator/cust.cc: New test. * testsuite/24_iterators/move_iterator/sentinel.cc: New test. * testsuite/24_iterators/common_iterator/1.cc: New test. * testsuite/24_iterators/counted_iterator/1.cc: New test. From-SVN: r278698
Jonathan Wakely committed -
PR libstdc++/91786 * include/bits/fs_path.h (filesystem_error): Move definition before the use in u8path. From-SVN: r278697
Jonathan Wakely committed -
* config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map, func_ids, funcs_tail, var_ids, vars_tail) Remove unused definitions. From-SVN: r278688
Tobias Burnus committed -
2019-11-25 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean up used dump message. From-SVN: r278687
Martin Liska committed
-