Commit Graph

150333 Commits

Author SHA1 Message Date
Segher Boessenkool
4a954e0685 combine: Don't mess with subregs of floating point (PR78590)
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
2016-11-30 09:24:59 +01:00
Jakub Jelinek
053d5e0cdd re PR tree-optimization/78586 (Wrong code caused by printf-return-value)
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
2016-11-30 09:01:47 +01:00
Markus Trippelsdorf
ced17de640 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
2016-11-30 07:30:55 +00:00
Janus Weil
a4f15a7d45 re PR fortran/78573 ([OOP] ICE in resolve_component, at fortran/resolve.c:13405)
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
2016-11-30 08:25:36 +01:00
Jeff Law
a195e177c0 arc-common.c (arc_handle_option): Remove unused variables.
* common/config/arc/arc-common.c (arc_handle_option): Remove unused
        variables.

From-SVN: r242994
2016-11-29 21:37:10 -07:00
Jeff Law
48855443fa 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
2016-11-29 21:15:55 -07:00
Ian Lance Taylor
fbe9724cc3 runtime: fixes for -buildmode=c-archive
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
2016-11-30 02:09:24 +00:00
David Malcolm
f521b29334 Remove stray character from install.texi
gcc/ChangeLog:
	* doc/install.texi (--with-target-bdw-gc): Remove stray '@'.

From-SVN: r242991
2016-11-30 01:23:44 +00:00
David Malcolm
94f597df22 substring locations and # line directives (PR preprocessor/78569)
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
2016-11-30 01:13:37 +00:00
GCC Administrator
3517d13be7 Daily bump.
From-SVN: r242988
2016-11-30 00:16:19 +00:00
Matthias Klose
114bf3f172 Makefile.def: Remove reference to boehm-gc target module.
<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
2016-11-30 00:12:45 +00:00
Michael Meissner
a2b403c8bb re PR target/78594 (Bug in November 11th, 2016 change to rs6000.md)
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
2016-11-30 00:05:46 +00:00
Max Filippov
464636c08a xtensa: Fix PR target/78603
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
2016-11-29 22:22:13 +00:00
Martin Sebor
576b067cc8 avoid false positives on ILP32 targets.
gcc/testsuite/ChangeLog:

	avoid false positives on ILP32 targets.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.

From-SVN: r242977
2016-11-29 14:56:57 -07:00
Waldemar Brodkorb
80a3051292 * config/bfin/linux.h (CPP_SPEC): Define.
From-SVN: r242976
2016-11-29 14:41:07 -07:00
Martin Sebor
01a4551ceb PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel
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
2016-11-29 14:08:02 -07:00
Uros Bizjak
a918548079 sse.md (UNSPEC_MASKOP): Move from i386.md.
* 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
2016-11-29 20:26:49 +01:00
Andrew Pinski
28ea3e977c tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node for the EQ_EXPR.
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
2016-11-29 11:16:15 -08:00
Chen Gang
885cf7d356 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
2016-11-29 11:33:20 -07:00
David Edelsohn
57e27acf28 re PR libstdc++/68838 (AIX 32 bit wchar_t testsuite failures)
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
2016-11-29 12:50:27 -05:00
Pitchumani Sivanupandi
6a109bfcec avr-arch.h (avr_mcu_t): Add flash_size member.
* 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
2016-11-29 19:35:43 +03:00
David Malcolm
8bf3cdff10 spellcheck bugfixes: don't offer the goal string as a suggestion
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
2016-11-29 16:25:01 +00:00
Nathan Sidwell
8684b29203 * cp-demangle.c (d_print_comp_inner): Fix parameter indentation.
From-SVN: r242963
2016-11-29 15:28:52 +00:00
Tamar Christina
753a952341 2016-11-29 Tamar Christina <tamar.christina@arm.com>
* 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
2016-11-29 14:53:46 +00:00
Claudiu Zissulescu
6323c98156 [ARC] Fix compact casesi option.
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
2016-11-29 15:26:28 +01:00
Janus Weil
c0fe5a2109 [multiple changes]
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
2016-11-29 15:15:29 +01:00
Richard Biener
00738904f3 tree-cfg.c (lower_phi_internal_fn): Do not look for further PHIs after a regular stmt.
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
2016-11-29 14:01:32 +00:00
Martin Liska
248cce34f1 Make one extra BB to prevent PHI argument clash (PR
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
2016-11-29 13:20:00 +00:00
Markus Trippelsdorf
f4214e239f Remove r242480 from libsanitizer/LOCAL_PATCHES
The fix is now upstream.

	* LOCAL_PATCHES: Remove r242480.

From-SVN: r242957
2016-11-29 13:13:31 +00:00
Claudiu Zissulescu
61e72afb37 [ARC] [COMMITTED] Fix typo in arc.opt
gcc/
2016-11-29  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc.opt (marclinux): Fix typo.
        (marclinux_prof): Likewise.

From-SVN: r242956
2016-11-29 13:42:22 +01:00
Jiong Wang
87a5dc2da0 [Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime
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
2016-11-29 11:47:48 +00:00
Senthil Kumar Selvaraj
11edabc2df Fix bogus pr31096-1.c failure for avr
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
2016-11-29 11:21:46 +00:00
Richard Biener
b302f2e058 re PR rtl-optimization/78546 (wrong code at -O2 and above)
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
2016-11-29 07:48:43 +00:00
Janus Weil
e24dcd7d2a contrib.texi: Add a few missing gfortran contributors.
2016-11-29  Janus Weil  <janus@gcc.gnu.org>

	* doc/contrib.texi: Add a few missing gfortran contributors.

From-SVN: r242952
2016-11-29 08:04:44 +01:00
Segher Boessenkool
01a8a37339 rs6000: Testcases for rl*i*
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
2016-11-29 06:51:51 +01:00
Segher Boessenkool
452385a720 combine: Tweak change_zero_ext
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
2016-11-29 06:44:32 +01:00
Segher Boessenkool
dfed7971fb rs6000: Make deallocation of a large frame work (PR77687)
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
2016-11-29 06:29:47 +01:00
Segher Boessenkool
08dd2b683f shrink-wrap: New spread_components
This patch changes spread_components to use a simpler algorithm that
puts prologue components as early as possible, and epilogue components
as late as possible.  This allows better scheduling, and also saves a
bit of code size.  The blocks that run with some specific component
enabled after this patch is a strict superset of those that had it
before the patch.

It does this by finding for every component the basic blocks where that
component is not needed on some path from the entry block (it reuses
head_components to store this), and similarly the blocks where the
component is not needed on some path to the exit block (or the exit can
not be reached from that block) (stored in tail_components).  Blocks
that then are not in both of those two sets get the component active.


	* shrink-wrap.c (init_separate_shrink_wrap): Do not clear
	head_components and tail_components.
	(spread_components): New algorithm.
	(emit_common_tails_for_components): Clear head_components and
	tail_components.
	(insert_prologue_epilogue_for_components): Write extra output to the
	dump file for sibcalls and abnormal exits.

From-SVN: r242948
2016-11-29 03:19:04 +01:00
Segher Boessenkool
a001d4f9b9 combine: Make code after a new trap unreachable (PR78342)
Combine can turn a conditional trap into an unconditional trap.  If it
does that it should make the code after it unreachable (an unconditional
trap should be the last insn in its bb, and that bb has no successors).

This patch seems to work.  It is hard to be sure, this is very hard to
trigger.  Quite a few other passes look like they need something similar
as well, but I don't see anything else handling it yet either.


	PR rtl-optimization/78342
	* combine.c: Include "cfghooks.h".
	(try_combine): If we create an unconditional trap, break the basic
	block in two just after it, and remove the edge between; also, set
	the *new_direct_jump_p flag so that cleanup_cfg is run.

From-SVN: r242947
2016-11-29 03:02:45 +01:00
Segher Boessenkool
48cf0e51e9 simplify-rtx: Handle truncate of extract
simplify_truncation changes the truncation of many operations into
the operation on the truncation.  This patch makes this code also
handle extracts.


	* simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract
	and sign_extract.

From-SVN: r242946
2016-11-29 02:48:30 +01:00
Joseph Myers
deb2bb610e * es.po, fr.po: Update.
From-SVN: r242943
2016-11-29 00:45:40 +00:00
GCC Administrator
14042ceb41 Daily bump.
From-SVN: r242941
2016-11-29 00:16:20 +00:00
Uros Bizjak
58aa6a736a i386.md (*and<mode>_1): Merge insn pattern from *andsi_1 and *andhi_1 using SWI24 mode iterator.
* config/i386/i386.md (*and<mode>_1): Merge insn pattern from
	*andsi_1 and *andhi_1 using SWI24 mode iterator.  Use multi-line
	output template string.
	(*anddi_1): Use multi-line output template string.
	(*andqi_1): Ditto.

From-SVN: r242938
2016-11-29 00:21:43 +01:00
Jakub Jelinek
a5a4add7aa re PR middle-end/78540 (ICE: in df_refs_verify, at df-scan.c:4062 with -O -march=core2)
PR middle-end/78540
	* rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
	* rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
	note has been removed.
	* postreload.c (reload_combine_recognize_pattern): If
	remove_reg_equal_equiv_notes returns true, call df_notes_rescan.

	* gcc.dg/pr78540.c: New test.

From-SVN: r242937
2016-11-28 23:51:29 +01:00
Martin Sebor
de6aa93370 PR middle-end/78521 - [7 Regression] incorrect byte count in -Wformat-length...
PR middle-end/78521 - [7 Regression] incorrect byte count in -Wformat-length warning with non-constant width or precision
PR middle-end/78520 - missing warning for snprintf with size greater than INT_MAX

gcc/ChangeLog:

	PR middle-end/78520
	* gimple-ssa-sprintf.c (target_max_value): Remove.
	(target_int_max, target_size_max): Use TYPE_MAX_VALUE.
	(get_width_and_precision): New function.
	(format_integer, format_floating, get_string_length, format_string):
	Correct handling of width and precision with unknown value.
	(format_directive): Add warning.
	(pass_sprintf_length::compute_format_length): Allow for precision
	to consist of a sole period with no asterisk or digits after it.

gcc/testsuite/ChangeLog:

	PR middle-end/78520
	* gcc.dg/tree-ssa/builtin-sprintf-5.c: Add test cases.
	* gcc.dg/tree-ssa/builtin-sprintf-6.c: New test.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add test cases.

From-SVN: r242935
2016-11-28 14:41:41 -07:00
Thomas Petazzoni
b3a5bff4d7 re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)
PR gcc/74748
	* libgcc/config/bfin/libgcc-glibc.ver, libgcc/config/bfin/t-linux:
	use generic linker version information on Blackfin.

2016-11-27  Iain Sandoe  <iain@codesourcery.com>

From-SVN: r242934
2016-11-28 14:30:40 -07:00
Thomas Petazzoni
7a0d2bce7f re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)
PR gcc/74748
	* libgcc/mkmap-symver.awk: add support for skip_underscore

From-SVN: r242933
2016-11-28 14:27:47 -07:00
David Edelsohn
18df37ec1f Fix typo.
From-SVN: r242931
2016-11-28 14:57:50 -05:00
Jakub Jelinek
f28fd43ea8 re PR c++/72808 (ICE on valid c++ code in verify_type (gcc/tree.c:14047))
PR c++/72808
	* decl.c (finish_enum_value_list): Call fixup_type_variants on
	current_class_type after
	insert_late_enum_def_into_classtype_sorted_fields.

	* g++.dg/debug/pr72808.C: New test.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r242930
2016-11-28 20:20:02 +01:00
Jakub Jelinek
d057004733 re PR rtl-optimization/78546 (wrong code at -O2 and above)
PR rtl-optimization/78546
	* simplify-rtx.c (neg_const_int): When negating most negative
	number in mode wider than HOST_BITS_PER_WIDE_INT, use
	simplify_const_unary_operation to produce CONST_DOUBLE or
	CONST_WIDE_INT.
	(simplify_plus_minus): Hanlde the case where neg_const_int
	doesn't return a CONST_INT.

	* gcc.dg/torture/pr78546-1.c: New test.
	* gcc.dg/torture/pr78546-2.c: New test.

From-SVN: r242929
2016-11-28 20:15:51 +01:00