1. 17 Feb, 2019 4 commits
    • * g++.old-deja/g++.robertl/eb82.C: Tweak dg-error. · feb0dcfe
      From-SVN: r268970
      Marek Polacek committed
    • PR c++/89217 - ICE with list-initialization in range-based for loop. · 1f6857ba
      	* constexpr.c (unshare_constructor): No longer static.
      	* cp-tree.h (unshare_constructor): Declare.
      	* semantics.c (finish_compound_literal): When dealing with a
      	non-dependent expression in a template, return the original
      	expression.  Pass LOOKUP_NO_NARROWING to digest_init_flags.
      
      	* g++.dg/cpp0x/range-for37.C: New test.
      
      From-SVN: r268969
      Marek Polacek committed
    • [RS6000] Fix <bd>_<mode> and <bd>tf_<mode> splitters · b43e6340
      This patch fixes a bug that can result in "insn does not satisfy its
      constraints" if these splitters fire due to not getting ctr for the
      jump insn.  Since the jump insn can have any of r,m,d,wi,c,l as the
      decremented count output, it's not sufficient to check for
      gpc_reg_operand (which matches VSX regs for example).  Seen after
      correcting register_move_cost when the cost of gpr <-> vsx is much
      lower.  Since this is a prerequisite to fixing PR89271, I'm mentioning
      that PR in the ChangeLog.
      
      The <bd>tf_<mode> split had a further bug in that it wouldn't match
      if the count output was m,d,wi, or l.
      
      	PR target/89271
      	* config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
      	output reg on add insn.
      	(<bd>tf_<mode> split): Likewise.  Match predicates with insn.
      
      From-SVN: r268968
      Alan Modra committed
    • Daily bump. · b8cc3815
      From-SVN: r268967
      GCC Administrator committed
  2. 16 Feb, 2019 9 commits
    • i386: Add ssse3_pmulhrswv4hi3 expander · 2f3d2660
      There is no V4HI pmulhrsw in AVX512BW and V4HI/V8HI pmulhrsw don't require
      AVX2.
      
      	PR target/89372
      	* config/i386/sse.md (ssedoublemode): Remove V4HI.
      	(PMULHRSW): Likewise.
      	(<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
      	TARGET_AVX2.
      	(ssse3_pmulhrswv4hi3): New expander.
      
      From-SVN: r268964
      H.J. Lu committed
    • i386: Correct *vec_extractv2si_zext_mem · 49be11f5
      The second and third alternatives in *vec_extractv2si_zext_mem don't
      require MMX.  But the second one requires SSE2.
      
      	* config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
      	MMX.  Add isa attribute.
      
      From-SVN: r268963
      H.J. Lu committed
    • re PR tree-optimization/88074 (g++ hangs on math expression) · 843192c0
      	PR middle-end/88074
      	* simplify.c (simplify_transformation_to_array): Run post_op
      	immediately after processing corresponding row, rather than at the
      	end.
      	(norm2_scale): New variable.
      	(add_squared): Rename to ...
      	(norm2_add_squared): ... this.  Scale down operand and/or result
      	if needed.
      	(do_sqrt): Rename to ...
      	(norm2_do_sqrt): ... this.  Handle the result == e case.  Scale up
      	result and clear norm2_scale.
      	(gfc_simplify_norm2): Clear norm2_scale.  Change add_squared to
      	norm2_add_squared and &do_sqrt to norm2_do_sqrt.  Scale up result
      	and clear norm2_scale again.
      
      From-SVN: r268962
      Jakub Jelinek committed
    • Fix excess warnings from -Wtype-limits with location wrappers (PR c++/88680) · 3fe53000
      PR c++/88680 reports excess warnings from -Wtype-limits after the C++
      FE's use of location wrappers was extended in r267272 for cases such as:
      
        const unsigned n = 8;
        static_assert (n >= 0 && n % 2 == 0, "");
      
      t.C:3:18: warning: comparison of unsigned expression >= 0 is always true
        [-Wtype-limits]
          3 | static_assert (n >= 0 && n % 2 == 0, "");
            |                ~~^~~~
      
      The root cause is that the location wrapper around "n" breaks the
      suppression of the warning for the "if OP0 is a constant that is >= 0"
      case.
      
      This patch fixes it by calling fold_for_warn on OP0, extracting the
      constant.
      
      gcc/c-family/ChangeLog:
      	PR c++/88680
      	* c-common.c (shorten_compare): Call fold_for_warn on op0 when
      	implementing -Wtype-limits.
      
      gcc/testsuite/ChangeLog:
      	PR c++/88680
      	* g++.dg/wrappers/pr88680.C: New test.
      
      From-SVN: r268961
      David Malcolm committed
    • re PR fortran/71066 (ICE in set_loop_bounds, at fortran/trans-array.c:4680) · 9dbdefbb
      2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71066
      	* trans-decl.c (generate_coarray_sym_init):  For an array
      	constructor in a DATA statement of a coarray variable, set the
      	rank to 1 to avoid confusion later on.  If the constructor
      	contains only one value, use that for initiailizig.
      
      2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/71066
      	* gfortran.dg/coarray_data_1.f90: New test.
      
      From-SVN: r268960
      Thomas Koenig committed
    • patchable_function_entry-decl.c: Add -fno-pie on SPARC. · d810ce4b
      	* c-c++-common/patchable_function_entry-decl.c: Add -fno-pie on SPARC.
      	* c-c++-common/patchable_function_entry-default.c: Likewise.
      	* c-c++-common/patchable_function_entry-definition.c: Likewise.
      
      From-SVN: r268958
      Eric Botcazou committed
    • re PR rtl-optimization/66152 (suboptimal load bytes to stack) · 3140b2ed
      	PR rtl-optimization/66152
      	* builtins.h (c_readstr): Declare.
      	* builtins.c (c_readstr): Remove forward declaration.  Add
      	null_terminated_p argument, if false, read all bytes from the
      	string instead of stopping after '\0'.
      	* expr.c (string_cst_read_str): New function.
      	(store_expr): Use string_cst_read_str instead of
      	builtin_strncpy_read_str.  Try to store by pieces the whole
      	exp_len first, and only if that fails, split it up into
      	store by pieces followed by clear_storage.  Formatting fix.
      
      	* gcc.target/i386/pr66152.c: New test.
      
      From-SVN: r268957
      Jakub Jelinek committed
    • i386.md (*movqi_internal): Remove static from buf variable. · 1f1d52e3
      	* config/i386/i386.md (*movqi_internal): Remove static from
      	buf variable.  Use output_asm_insn (buf, operands); return "";
      	instead of return buf;.
      	* config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
      	*<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
      	*<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
      
      From-SVN: r268956
      Jakub Jelinek committed
    • Daily bump. · bc50c499
      From-SVN: r268955
      GCC Administrator committed
  3. 15 Feb, 2019 24 commits
  4. 14 Feb, 2019 3 commits