1. 27 Nov, 2019 17 commits
    • re PR c++/88395 (ICE: Segmentation fault signal terminated program cc1plus, with… · 72479e32
      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
    • re PR rtl-optimization/90007 (ICE in extract_constrain_insn_cached, at recog.c:2223) · 864233f1
      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… · 1906392b
      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
    • m68k.c (m68k_output_compare_fp): Restore differences between Coldfire and regular m68k. · 45a45488
      	* 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
    • target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. · 477daf83
      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
    • re PR tree-optimization/92690 (vector CTOR optimization performs invalid conversion) · 88feafba
      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
    • re PR fortran/91944 (ICE in gfc_conv_array_initializer, at fortran/trans-array.c:6156) · b7b848f5
      	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 92463 - Cleanups due to minimum MPFR version bump to 3.1.0 · 90ca6847
              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
    • [PATCH] Fix PR91790 by considering different first_stmt_info for realign · 1f9fae28
      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
    • re PR c++/92524 (ICE in short program with constexpr and std::array) · 66143cdf
      	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… · 1fa715db
      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
    • re PR lto/92674 (ICE in gimple_phi_arg, at gimple.h:4406 since r240291) · cd3f923b
      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
    • Allow autoinc in jumps, but only when using reload. · af2f6205
      	* 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
    • Remember the location of a variable template-id. · 6821245b
      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
    • re PR debug/92664 (Wrong .debug_line section information when compiling stdin input with -g3) · 88b34a48
      	PR debug/92664
      	* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
      
      From-SVN: r278752
      Jakub Jelinek committed
    • Daily bump. · b592c0ea
      From-SVN: r278751
      GCC Administrator committed
    • typeck.c (cp_build_unary_op): Consistently use the accurate location in seven… · 24243b5a
      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
  2. 26 Nov, 2019 16 commits
  3. 25 Nov, 2019 7 commits