1. 30 Nov, 2016 16 commits
    • Support nested functions (PR sanitizer/78541). · fb61d96c
      	PR sanitizer/78541
      	* gcc.dg/asan/pr78541-2.c: New test.
      	* gcc.dg/asan/pr78541.c: New test.
      	PR sanitizer/78541
      	* asan.c (asan_expand_mark_ifn): Properly
      	select a VAR_DECL from FRAME.* component reference.
      
      From-SVN: r243003
      Martin Liska committed
    • 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 24 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