1. 06 Mar, 2018 12 commits
    • re PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in… · 2728bf8f
      re PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1896 with -O -fno-forward-propagate)
      
      	PR target/84710
      	* combine.c (try_combine): Use reg_or_subregno instead of handling
      	just paradoxical SUBREGs and REGs.
      
      	* gcc.dg/pr84710.c: New test.
      
      From-SVN: r258301
      Jakub Jelinek committed
    • re PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER… · 284ee475
      re PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER symbol in complex constant")
      
      2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/56667
      	* primary.c (match_sym_complex_part): Give the matcher for an implied
      	do-loop a chance to run.
      
      2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/56667
      	* gfortran.dg/implied_do_2.f90: New test.
      	* gfortran.dg/coarray_8.f90: Update for new error message.
      
      From-SVN: r258281
      Steven G. Kargl committed
    • trans.c (convert_with_check): Fix typo in the condition guarding the overflow… · 21288963
      trans.c (convert_with_check): Fix typo in the condition guarding the overflow check emitted for the upper...
      
      	* gcc-interface/trans.c (convert_with_check): Fix typo in the condition
      	guarding the overflow check emitted for the upper bound of a floating-
      	point conversion.
      
      From-SVN: r258277
      Eric Botcazou committed
    • [ARC] Cleanup unused functions. · b51addd6
      Remove unused pieces of code.
      
      gcc/
      2018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_finalize_pic): Remove function.
      	(arc_must_save_register): We use single base PIC register, remove
      	checks to save/restore the PIC register.
      	(arc_expand_prologue): Likewise.
      	* config/arc/arc-protos.h (arc_set_default_type_attributes):
      	Remove.
      	(arc_verify_short): Likewise.
      	(arc_attr_type): Likewise.
      	* config/arc/arc.c (arc_set_default_type_attributes): Remove.
      	(walk_stores): Likewise.
      	(arc_address_cost): Make it static.
      	(arc_verify_short): Likewise.
      	(branch_dest): Likewise.
      	(arc_attr_type): Likewise.
      	* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
      	(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
      	(arc_final_prescan_insn): Remove inserting the nops due to
      	hardware hazards.  It is done in reorg step.
      	(insn_length_variant_t): Remove.
      	(insn_length_parameters_t): Likewise.
      	(arc_insn_length_parameters): Likewise.
      	(arc_get_insn_variants): Likewise.
      	* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
      
      From-SVN: r258275
      Claudiu Zissulescu committed
    • re PR inline-asm/84683 (internal compiler error: in move_for_stack_reg, at reg-stack.c:1173) · 155958dd
      	PR inline-asm/84683
      	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
      	assertion failure.
      
      	* g++.dg/ext/pr84683.C: New test.
      
      From-SVN: r258273
      Jakub Jelinek committed
    • re PR tree-optimization/84687 (error: invalid conversion in gimple call with -O3 and -ffast-math) · 16ef0a8c
      	PR tree-optimization/84687
      	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
      	on new_node->decl.
      	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
      
      	* gcc.dg/pr84687.c: New test.
      
      From-SVN: r258272
      Jakub Jelinek committed
    • [C++] [PR84231] overload on cond_expr in template · 23d63b45
      A non-type-dependent COND_EXPR within a template is reconstructed with
      the original operands, after one with non-dependent proxies is built to
      determine its result type.  This is problematic because the operands of
      a COND_EXPR determined to be an rvalue may have been converted to denote
      their rvalue nature.  The reconstructed one, however, won't have such
      conversions, so lvalue_kind may not recognize it as an rvalue, which may
      lead to e.g. incorrect overload resolution decisions.
      
      If we mistake such a COND_EXPR for an lvalue, overload resolution might
      regard a conversion sequence that binds it to a non-const reference as
      viable, and then select that over one that binds it to a const
      reference.  Only after template substitution would we rebuild the
      COND_EXPR, realize it is an rvalue, and conclude the reference binding
      is ill-formed, but at that point we'd have long discarded any alternate
      candidates we could have used.
      
      This patch modifies the logic that determines whether a
      (non-type-dependent) COND_EXPR in a template is an lvalue, to rely on
      its type, more specifically, on the presence of a REFERENCE_TYPE
      wrapper.  In order to avoid a type bootstrapping problem, the
      REFERENCE_TYPE that wraps the type of some such COND_EXPRs is
      introduced earlier, so that we don't have to test for lvalueness of
      the expression using the very code that we wish to change.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/84231
      	* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
      	only while processing template decls.
      	* typeck.c (build_x_conditional_expr): Move wrapping of
      	reference type around type...
      	* call.c (build_conditional_expr_1): ... here.  Rename
      	is_lvalue to is_glvalue.
      	* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
      	INDIRECT_REF of COND_EXPR too.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/84231
      	* g++.dg/pr84231.C: New.
      
      From-SVN: r258271
      Alexandre Oliva committed
    • [PR c++/84593] ice on braced init with uninit ref field · 2e1a7ecb
      If an initializer expr is to be NULL in a ctor initializer list, we
      ICE in picflag_from_initializer and elsewhere.
      
      If we're missing an initializer for a reference field, we report the
      error, but then build a zero initializer to avoid the ICE.
      
      for  gcc/cp/ChangeLog
      
      	PR c++/84593
      	* init.c (build_zero_init_1): Zero-initialize references.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/84593
      	* g++.dg/cpp1y/pr84593.C: New.
      
      From-SVN: r258270
      Alexandre Oliva committed
    • [PR c++/84492] stmt expr ending with overload · 1ea71a82
      We ICEd when returning a stmt expr that ends with an overloaded
      function, because instantiate_type did not know what to do with
      STMT_EXPRs.  And it shouldn't have to: the expected type of a stmt
      expr cannot be used to resolve its value: an unresolved overload
      cannot supply the result of a stmt expr.  Catch that and report the
      error in the stmt expr before we have a chance to instantiate it.
      
      for  gcc/cp/ChangeLog
      
      	PR c++/84492
      	* semantics.c (finish_stmt_expr_expr): Reject unresolved
      	overloads used as stmt expr values.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/84492
      	* g++.dg/pr84492.C: New.
      
      From-SVN: r258269
      Alexandre Oliva committed
    • rs6000-builtin.def (rs6000_speculation_barrier): Rename to ppc_speculation_barrier. · 4900146c
      [gcc]
      
      2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
      	Rename to ppc_speculation_barrier.
      	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
      	__builtin_ppc_speculation_barrier.
      
      [gcc/testsuite]
      
      2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/spec-barr-1.c: Change called function name to
      	__builtin_ppc_speculation_barrier.
      
      From-SVN: r258268
      Bill Schmidt committed
    • Daily bump. · f75fbd29
      From-SVN: r258267
      GCC Administrator committed
  2. 05 Mar, 2018 22 commits
  3. 04 Mar, 2018 6 commits
    • [NDS32] Rename nds32_expand_movmemqi to nds32_expand_movmemsi and rewrite its implementation. · eab7aaed
      gcc/
      	*config/nds32/nds32-memory-manipulation.c
      	(nds32_emit_load_store): New.
      	(nds32_emit_post_inc_load_store): New.
      	(nds32_emit_mem_move): New.
      	(nds32_emit_mem_move_block): New.
      	(nds32_expand_movmemsi_loop_unknown_size): New.
      	(nds32_expand_movmemsi_loop_known_size): New.
      	(nds32_expand_movmemsi_loop): New.
      	(nds32_expand_movmemsi_unroll): New.
      	(nds32_expand_movmemqi): Rename ...
      	(nds32_expand_movmemsi): ... to this.
      	*config/nds32/nds32-multiple.md (movmemqi): Rename ...
      	(movmemsi): ... to this.
      	*config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
      	(nds32_expand_movmemsi): ... to this.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r258235
      Kito Cheng committed
    • [NDS32] Refine load_multiple and store_multiple. · 32a6f4f4
      gcc/
      	* config/nds32/nds32-protos.h
      	(nds32_expand_load_multiple): New arguments.
      	(nds32_expand_store_multiple): Ditto.
      	(nds32_valid_multiple_load_store): Rename ...
      	(nds32_valid_multiple_load_store_p): ... to this.
      	* config/nds32/nds32-memory-manipulation.c
      	(nds32_expand_load_multiple): Refine implementation.
      	(nds32_expand_store_multiple): Ditto.
      	* config/nds32/nds32-multiple.md
      	(load_multiple): Update nds32_expand_load_multiple interface.
      	(store_multiple): Update nds32_expand_store_multiple interface.
      	* config/nds32/nds32-predicates.c
      	(nds32_valid_multiple_load_store): Rename ...
      	(nds32_valid_multiple_load_store_p): ... to this and refine
      	implementation.
      	* config/nds32/predicates.md
      	(nds32_load_multiple_and_update_address_operation): New predicate.
      	(nds32_store_multiple_and_update_address_operation): New predicate.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
      
      From-SVN: r258234
      Kito Cheng committed
    • [NDS32] Add load_multiple,store_multiple and new attribute combo. · 264159d2
      gcc/
      	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
      	(combo): New attribute.
      	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r258232
      Kito Cheng committed
    • PR c++/84686 - missing volatile loads. · 38946ea1
      	* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.
      
      From-SVN: r258231
      Jason Merrill committed
    • re PR fortran/71085 (ICE with some intrinsic functions specifying array function result dimension) · ac80378f
      2018-03-03  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/71085
      	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
      	dereference NULL pointer.
      
      
      2018-03-03  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/71085
      	* gfortran.dg/pr71085.f90: New test.
      
      From-SVN: r258228
      Harald Anlauf committed
    • Daily bump. · 6979a6b3
      From-SVN: r258227
      GCC Administrator committed