1. 30 Nov, 2016 15 commits
    • Add missing file · e03fb6ec
      From-SVN: r243002
      Martin Liska committed
    • [libstdc++, testsuite] Add dg-require-thread-fence · dfad822a
      2016-11-30  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* testsuite/experimental/type_erased_allocator/2.cc: Add
      	dg-require-thread-fence.
      
      From-SVN: r243001
      Christophe Lyon committed
    • simplify-rtx: Add missing line for previous commit (PR78583) · 2df22b5f
      The comment for the added case to simplify_truncation reads
      
        /* Turn (truncate:M1 (*_extract:M2 (reg:M2) (len) (pos))) into
           (*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
           changing len.  */
      
      but I forgot to check the two modes M2 are actually the same.
      
      
      	PR rtl-optimization/78583
      	* simplify-rtx.c (simplify_truncation): Add check missing from the
      	previous commit.
      
      From-SVN: r243000
      Segher Boessenkool committed
    • combine: Don't mess with subregs of floating point (PR78590) · 4a954e06
      PR78590 shows a problem in change_zero_ext, where we change a zero_extend
      of a subreg to a logical and.  We should only do this if the thing we are
      taking the subreg of is a scalar integer, otherwise we will take a subreg
      of (e.g.) a float in a different size, which is nonsensical and hits an
      assert.
      
      
      	PR rtl-optimization/78590
      	* combine.c (change_zero_ext): Transform zero_extend of subregs only
      	if the subreg_reg is a scalar integer mode.
      
      From-SVN: r242999
      Segher Boessenkool committed
    • re PR tree-optimization/78586 (Wrong code caused by printf-return-value) · 053d5e0c
      	PR tree-optimization/78586
      	* gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
      	TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
      	Don't build_int_cst min/max twice.  Formatting fix.
      
      	* gcc.c-torture/execute/pr78586.c: New test.
      
      From-SVN: r242998
      Jakub Jelinek committed
    • Fix PR78588 - rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too… · ced17de6
      Fix PR78588 - rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too large for 64-bit type
      
      Building gcc with -fsanitize=undefined shows:
       rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too large for 64-bit type 'long unsigned int'
      
      This happens because if_then_else_cond() in combine.c calls
      num_sign_bit_copies() in rtlanal.c with mode==BLKmode.
      
      5205   bitwidth = GET_MODE_PRECISION (mode);
      5206   if (bitwidth > HOST_BITS_PER_WIDE_INT)
      5207     return 1;
      5208
      5209   nonzero = nonzero_bits (x, mode);
      5210   return nonzero & (HOST_WIDE_INT_1U << (bitwidth - 1))
      5211          ? 1 : bitwidth - floor_log2 (nonzero) - 1;
      
      This causes (bitwidth - 1) to wrap around.
      
      	PR rtl-optimization/78588
      	* combine.c (if_then_else_cond): Also guard against BLKmode.
      	* rtlanal.c (num_sign_bit_copies1): Add assert.
      
      From-SVN: r242997
      Markus Trippelsdorf committed
    • re PR fortran/78573 ([OOP] ICE in resolve_component, at fortran/resolve.c:13405) · a4f15a7d
      2016-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/78573
      	* decl.c (build_struct): On error, return directly and do not build
      	class symbol.
      
      2016-11-30  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/78573
      	* gfortran.dg/class_61.f90: New test case.
      
      From-SVN: r242996
      Janus Weil committed
    • arc-common.c (arc_handle_option): Remove unused variables. · a195e177
              * common/config/arc/arc-common.c (arc_handle_option): Remove unused
              variables.
      
      From-SVN: r242994
      Jeff Law committed
    • lra-constraints.c (check_and_process_move): Constrain the range of DCLASS and… · 48855443
      lra-constraints.c (check_and_process_move): Constrain the range of DCLASS and SCLASS to avoid false positive out of bounds...
      
      	* lra-constraints.c (check_and_process_move): Constrain the
      	range of DCLASS and SCLASS to avoid false positive out of bounds
      	array index warning.
      
      From-SVN: r242993
      Jeff Law committed
    • runtime: fixes for -buildmode=c-archive · fbe9724c
          
          With -buildmode=c-archive, initsig is called before the memory
          allocator has been initialized.  The code was doing a memory
          allocation because of the call to funcPC(sigtramp).  When escape
          analysis is fully implemented, that call should not allocate.  For
          now, finesse the issue by calling a C function to get the C function
          pointer value of sigtramp.
          
          When returning from a call from C to a Go function, a deferred
          function is run to go back to syscall mode.  When the call occurs on a
          non-Go thread, that call sets g to nil, making it impossible to add
          the _defer struct back to the pool.  Just drop it and let the garbage
          collector clean it up.
          
          Reviewed-on: https://go-review.googlesource.com/33675
      
      From-SVN: r242992
      Ian Lance Taylor committed
    • Remove stray character from install.texi · f521b293
      gcc/ChangeLog:
      	* doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
      
      From-SVN: r242991
      David Malcolm committed
    • substring locations and # line directives (PR preprocessor/78569) · 94f597df
      The ICE in PR preprocessor/78569 appears to be due to an attempt to
      generate substring locations in a .i file where the underlying .c file
      has changed since the .i file was generated.
      
      This can't work, so it seems safest for the on-demand substring
      locations to be unavailable for such files, falling back to
      "whole string" locations for such cases.
      
      gcc/ChangeLog:
      	PR preprocessor/78569
      	* input.c (get_substring_ranges_for_loc): Fail gracefully if
      	line directives were present.
      
      gcc/testsuite/ChangeLog:
      	PR preprocessor/78569
      	* gcc.dg/format/pr78569.c: New test case.
      
      From-SVN: r242990
      David Malcolm committed
    • Daily bump. · 3517d13b
      From-SVN: r242988
      GCC Administrator committed
    • Makefile.def: Remove reference to boehm-gc target module. · 114bf3f1
      <toplevel>
      
      2016-11-30  Matthias Klose  <doko@ubuntu.com>
      
              * Makefile.def: Remove reference to boehm-gc target module.
              * configure.ac: Include pkg.m4, check for --with-target-bdw-gc
              options and for the bdw-gc pkg-config module.
              * configure: Regenerate.
              * Makefile.in: Regenerate.
      
      gcc/
      
      2016-11-30  Matthias Klose  <doko@ubuntu.com>
      
              * doc/install.texi: Document configure options --enable-objc-gc
              and --with-target-bdw-gc.
      
      config/
      
      2016-11-30  Matthias Klose  <doko@ubuntu.com>
      
              * pkg.m4: New file.
      
      libobjc/
      
      2016-11-30  Matthias Klose  <doko@ubuntu.com>
      
              * configure.ac (--enable-objc-gc): Allow to configure with a
              system provided boehm-gc.
              * configure: Regenerate.
              * Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
              * gc.c: Include system bdw-gc headers.
              * memory.c: Likewise
              * objects.c: Likewise
      
      boehm-gc/
      
      2016-11-30  Matthias Klose  <doko@ubuntu.com>
      
              Remove
      
      From-SVN: r242985
      Matthias Klose committed
    • re PR target/78594 (Bug in November 11th, 2016 change to rs6000.md) · a2b403c8
      2016-11-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/78594
      	* config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add
      	'x' to stxsi<wd>x print pattern, so that QImode and HImode values
      	residing in traditional altivec registers can be stored
      	correctly.
      
      From-SVN: r242983
      Michael Meissner committed
  2. 29 Nov, 2016 25 commits
    • xtensa: Fix PR target/78603 · 464636c0
      2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
      	overhead loop start between a call and its CALL_ARG_LOCATION
      	note.
      
      From-SVN: r242979
      Max Filippov committed
    • avoid false positives on ILP32 targets. · 576b067c
      
      gcc/testsuite/ChangeLog:
      
      	avoid false positives on ILP32 targets.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
      
      From-SVN: r242977
      Martin Sebor committed
    • * config/bfin/linux.h (CPP_SPEC): Define. · 80a30512
      From-SVN: r242976
      Waldemar Brodkorb committed
    • PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel · 01a4551c
      gcc/ChangeLog:
      
      	PR tree-optimization/78512
      	* config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove.
      	* config/rs6000/linux.h: Same.
      	* config/rs6000/linux64.h: Same.
      	* config/sol2.h: Same.
      	* config/sol2.c (solaris_printf_pointer_format): Remove.
      	* doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove.
      	* doc/tm.texi: Regenerate.
      	* gimple-ssa-sprintf.c (format_pointer): Rempove.
      	(pass_sprintf_length::compute_format_length): Return bool.
      	(pass_sprintf_length::handle_gimple_call): Adjust.
      	* target.def (printf_pointer_format): Remove.
      	* targhooks.c (default_printf_pointer_format): Remove.
      	(linux_printf_pointer_format): Same.
      	* targhooks.h (default_printf_pointer_format): Remove.
      	(linux_printf_pointer_format, solaris_printf_pointer_format): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/78512
      	* gcc.dg/tree-ssa/builtin-sprintf-6.c: Add test cases.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Remove test cases.
      
      From-SVN: r242975
      Martin Sebor committed
    • sse.md (UNSPEC_MASKOP): Move from i386.md. · a9185480
      	* config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md.
      	(mshift): Ditto.
      	(SWI1248_AVX512BWDQ): Ditto.
      	(SWI1248_AVX512BW): Ditto.
      	(k<any_logic:code><mode>): Ditto.
      	(kandn<mode>): Ditto.
      	(kxnor<mode>): Ditto.
      	(knot<mode>): Ditto.
      	(*k<any_lshift:code><mode>): Ditto.
      	(kortestzhi, kortestchi): Ditto.
      	(kunpckhi, kunpcksi, kunpckdi): Ditto.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/avx512f-kmovw-1.c (avx512f_test):
      	Force value through k register.
      
      From-SVN: r242971
      Uros Bizjak committed
    • tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node for the EQ_EXPR. · 28ea3e97
      2016-11-29  Andrew Pinski  <apinski@cavium.com>
      
              * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node
              for the EQ_EXPR.
      
      From-SVN: r242970
      Andrew Pinski committed
    • re PR target/71331 (target-tilegx: nested-function-4.c: r10 is conflict which is… · 885cf7d3
      re PR target/71331 (target-tilegx: nested-function-4.c: r10 is conflict which is both in function frame and in parameter.)
      
      	PR target/71331
      	* config/tilegx/tilegx.c (tilegx_function_profiler): Save r10
      	to stack before call mcount.
      	(tilegx_can_use_return_insn_p): Clean up code.
      
      From-SVN: r242969
      Chen Gang committed
    • re PR libstdc++/68838 (AIX 32 bit wchar_t testsuite failures) · 57e27acf
      PR libstdc++/68838
      * testsuite/lib/libstdc++.exp (DEFAULT_CXXFLAGS): Add -Wl,-bmaxdata on AIX.
      * testsuite/23_containers/vector/profile/vector.cc: Remove
      dg-additional-options.
      
      From-SVN: r242967
      David Edelsohn committed
    • avr-arch.h (avr_mcu_t): Add flash_size member. · 6a109bfc
      	* config/avr/avr-arch.h (avr_mcu_t): Add flash_size member.
      	* config/avr/avr-devices.c(avr_mcu_types): Add flash size info.
      	* config/avr/avr-mcu.def: Likewise.
      	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded prefix
      	check to find wrap-around value, instead use MCU flash size. For 8k flash
      	devices, update link_pmem_wrap spec string to add --pmem-wrap-around=8k.
      	* config/avr/specs.h: Remove link_pmem_wrap from LINK_RELAX_SPEC and
      	add to linker specs (LINK_SPEC) directly.
      
      From-SVN: r242966
      Pitchumani Sivanupandi committed
    • spellcheck bugfixes: don't offer the goal string as a suggestion · 8bf3cdff
      gcc/cp/ChangeLog:
      	PR c++/77922
      	* name-lookup.c (lookup_name_fuzzy): Filter out reserved words
      	that were filtered out by init_reswords.
      
      gcc/ChangeLog:
      	PR c++/72774
      	PR c++/72786
      	PR c++/77922
      	PR c++/78313
      	* spellcheck.c (selftest::test_find_closest_string): Verify that
      	we don't offer the goal string as a suggestion.
      	* spellcheck.h (best_match::get_best_meaningful_candidate): Don't
      	offer the goal string as a suggestion.
      
      gcc/testsuite/ChangeLog:
      	PR c++/72774
      	PR c++/72786
      	PR c++/77922
      	PR c++/78313
      	* g++.dg/spellcheck-c++-11-keyword.C: New test case.
      	* g++.dg/spellcheck-macro-ordering.C: New test case.
      	* g++.dg/spellcheck-pr78313.C: New test case.
      
      From-SVN: r242965
      David Malcolm committed
    • 2016-11-29 Tamar Christina <tamar.christina@arm.com> · 753a9523
      	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
      	(AARCH64_ONLY, CHECK_CRYPTO): New macros.
      	(Poly64x1_t, Poly64x2_t): Added types.
      	* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
      	(vmov_n_p64, vmovq_n_p64): Added.
      	(vld2_lane_p64, vld2q_lane_p64): Likewise.
      	(vld3_lane_p64, vld3q_lane_p64): Likewise.
      	(vld4_lane_p64, vld4q_lane_p64): Likewise.
      	(vst2_lane_p64, vst2q_lane_p64): Likewise.
      	(vst3_lane_p64, vst3q_lane_p64): Likewise.
      	(vst4_lane_p64, vst4q_lane_p64): Likewise.
      	(vget_lane_p64, vgetq_lane_p64): Likewise.
      	(vget_high_p64): Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c:
      	Added AArch64 flags.
      	(vreint_vector, vreint_vector_res): Moved to header.
      	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c:
      	Added Aarch64 flags.
      	(vreint_vector, vreint_vector_res): Moved to header.
      
      From-SVN: r242962
      Tamar Christina committed
    • [ARC] Fix compact casesi option. · 6323c981
      gcc/
      2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.c (arc_override_options): Avoid selection of
              compact casesi for ARCv2.
      
      From-SVN: r242961
      Claudiu Zissulescu committed
    • [multiple changes] · c0fe5a21
      2016-11-29  Tobias Burnus  <burnus@net-b.de>
      
      	PR fortran/58175
      	* resolve.c (gfc_resolve_finalizers): Properly detect scalar finalizers.
      
      2016-11-29  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/58175
      	* gfortran.dg/finalize_30.f90: New test case.
      
      From-SVN: r242960
      Janus Weil committed
    • tree-cfg.c (lower_phi_internal_fn): Do not look for further PHIs after a regular stmt. · 00738904
      2016-11-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfg.c (lower_phi_internal_fn): Do not look for further
      	PHIs after a regular stmt.
      	(stmt_starts_bb_p): PHIs not preceeded by a PHI or a label
      	start a new BB.
      
      From-SVN: r242959
      Richard Biener committed
    • Make one extra BB to prevent PHI argument clash (PR · 248cce34
      	PR gcov-profile/78582
      	* gcc.dg/pr78582.c: New test.
      	PR gcov-profile/78582
      	* tree-profile.c (gimple_gen_time_profiler): Make one extra BB
      	to prevent PHI argument clash.
      
      From-SVN: r242958
      Martin Liska committed
    • Remove r242480 from libsanitizer/LOCAL_PATCHES · f4214e23
      The fix is now upstream.
      
      	* LOCAL_PATCHES: Remove r242480.
      
      From-SVN: r242957
      Markus Trippelsdorf committed
    • [ARC] [COMMITTED] Fix typo in arc.opt · 61e72afb
      gcc/
      2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.opt (marclinux): Fix typo.
              (marclinux_prof): Likewise.
      
      From-SVN: r242956
      Claudiu Zissulescu committed
    • [Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime · 87a5dc2d
      gcc/
      	* target.def (stack_protect_runtime_enabled_p): New.
      	* function.c (expand_function_end): Guard stack_protect_epilogue with
      	targetm.stack_protect_runtime_enabled_p.
      	* cfgexpand.c (pass_expand::execute): Likewise.
      	* calls.c (expand_call): Likewise.
      	* doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r242955
      Jiong Wang committed
    • Fix bogus pr31096-1.c failure for avr · 11edabc2
      The dump expects literals which would only be present if the target's
      int size is 32 bits.
      
      Fix by explicitly using 32 bit ints for targets with __SIZEOF_INT__ < 4.
      
      gcc/testsuite/
      2016-11-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
      
      	* testsuite/gcc.dg/pr31096-1.c: Use __{U,}INT32_TYPE__ for
      	targets with sizeof(int) < 4.
      
      From-SVN: r242954
      Senthil Kumar Selvaraj committed
    • re PR rtl-optimization/78546 (wrong code at -O2 and above) · b302f2e0
      2016-11-29  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/78546
      	* match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case.
      
      	* gcc.dg/tree-ssa/forwprop-36.c: New testcase.
      
      From-SVN: r242953
      Richard Biener committed
    • contrib.texi: Add a few missing gfortran contributors. · e24dcd7d
      2016-11-29  Janus Weil  <janus@gcc.gnu.org>
      
      	* doc/contrib.texi: Add a few missing gfortran contributors.
      
      From-SVN: r242952
      Janus Weil committed
    • rs6000: Testcases for rl*i* · 01a8a373
      These testcases test that we generate the expected code for all of the
      rl*i* instructions, that is, rotate-and-mask and rotate-and-mask-insert
      for immediate rotation counts.  All the testcases do rotate, shift left,
      as well as shift right; if that results in an instruction that does not
      exist the testcases generate a multiplication instead, so that we can
      detect if this is handled properly.
      
      Many 32-bit instructions zero-extend their result properly in 64-bit
      mode, but the rs6000 port does not yet know.  These testcases test the
      status quo, so they will need updating when ever we handle this.
      
      
      gcc/testsuite/
      	* gcc.target/powerpc/rldic-0.c: New testcase.
      	* gcc.target/powerpc/rldic-1.c: New testcase.
      	* gcc.target/powerpc/rldic-2.c: New testcase.
      	* gcc.target/powerpc/rldicl-0.c: New testcase.
      	* gcc.target/powerpc/rldicl-1.c: New testcase.
      	* gcc.target/powerpc/rldicl-2.c: New testcase.
      	* gcc.target/powerpc/rldicr-0.c: New testcase.
      	* gcc.target/powerpc/rldicr-1.c: New testcase.
      	* gcc.target/powerpc/rldicr-2.c: New testcase.
      	* gcc.target/powerpc/rldicx.h: New file.
      	* gcc.target/powerpc/rldimi-0.c: New testcase.
      	* gcc.target/powerpc/rldimi-1.c: New testcase.
      	* gcc.target/powerpc/rldimi-2.c: New testcase.
      	* gcc.target/powerpc/rldimi.h: New file.
      	* gcc.target/powerpc/rlwimi-0.c: New testcase.
      	* gcc.target/powerpc/rlwimi-1.c: New testcase.
      	* gcc.target/powerpc/rlwimi-2.c: New testcase.
      	* gcc.target/powerpc/rlwimi.h: New file.
      	* gcc.target/powerpc/rlwinm-0.c: New testcase.
      	* gcc.target/powerpc/rlwinm-1.c: New testcase.
      	* gcc.target/powerpc/rlwinm-2.c: New testcase.
      	* gcc.target/powerpc/rlwinm.h: New file.
      
      From-SVN: r242951
      Segher Boessenkool committed
    • combine: Tweak change_zero_ext · 452385a7
      change_zero_ext handles (zero_extend:M1 (subreg:M2 (reg:M1) ...))
      already; this patch extends it to also deal with any
      (zero_extend:M1 (subreg:M2 (reg:M3) ...)) where the subreg is not
      paradoxical.
      
      
      	* combine.c (change_zero_ext): Also handle extends from a subreg
      	to a mode bigger than that of the operand of the subreg.
      
      From-SVN: r242950
      Segher Boessenkool committed
    • rs6000: Make deallocation of a large frame work (PR77687) · dfed7971
      If we use ABI_V4 and we have a big stack frame, we end the epilogue
      with a "mr 1,11" (or similar) instruction.  This instruction however
      has no dependencies on the earlier restores from stack (done via r11),
      so sched2 can end up reordering the insns, which is bad because we
      have no red zone so that you then restore from stack that is already
      deallocated.
      
      This fixes it by making that restore depend on the memory accesses.
      
      
      	PR target/77687
      	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the
      	stack_restore_tie insn instead of stack_tie, for the SVR4 and
      	SPE ABIs.
      	* config/rs6000/rs6000.md (stack_restore_tie): New define_insn.
      
      From-SVN: r242949
      Segher Boessenkool committed