gcc.git
8 years agocompiler: break dependence on hex_value
Ian Lance Taylor [Fri, 9 Sep 2016 17:44:12 +0000 (17:44 +0000)]
compiler: break dependence on hex_value

    Rework the lexical analyzer to eliminate the need to call
    hex_value() in libiberty (added equivalent local functionality).
    No change in functionality.

    Reviewed-on: https://go-review.googlesource.com/28855

From-SVN: r240049

8 years agoDefine TS 18661-1 type width macros in <limits.h> and <stdint.h>.
Joseph Myers [Fri, 9 Sep 2016 16:59:43 +0000 (17:59 +0100)]
Define TS 18661-1 type width macros in <limits.h> and <stdint.h>.

TS 18661-1 defines <limits.h> and <stdint.h> macros for widths of
standard integer types and the typedefs defined in, or whose limits
are defined in, <stdint.h>.  (The connection to the main
floating-point subject matter of TS 18661-1 is that these are intended
to be used with the fromfp functions to convert from floating point to
integer types of any width in any rounding direction, though these
macros may be of more general use.)

This patch implements support for these macros in GCC's <limits.h> and
<stdint.h>.  To avoid needing to implement fixincludes for system
headers where GCC wraps the system libc's <stdint.h> in hosted mode,
the test for the <stdint.h> macros uses -ffreestanding (I'll add the
macros to glibc's headers separately) - but as usual for new features
in these headers, platforms (primarily OpenBSD) that use USER_H to
avoid using GCC's headers at all will have failures until the system
headers have the feature added or appropriate fixincludes are
implemented.

The header macros are implemented using appropriate new predefined
macros, with the code avoiding defining more such macros than
necessary (so one predefined macro suffices for corresponding signed
and unsigned types, while no such predefined macros are needed for the
exact-width types such as int8_t).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
* doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
(__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
(__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
(__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
(__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
(__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
(__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
Document.
* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
width macros from TS 18661-1.
* glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.

gcc/c-family:
* c-cppbuiltin.c (builtin_define_type_width): New function.
(builtin_define_stdint_macros, c_cpp_builtins): Define type width
macros.

gcc/testsuite:
* gcc.dg/limits-width-1.c, gcc.dg/stdint-width-1.c: New tests.

From-SVN: r240048

8 years agoruntime: use alignof to check alignment of ucontext_t
Ian Lance Taylor [Fri, 9 Sep 2016 16:39:44 +0000 (16:39 +0000)]
runtime: use alignof to check alignment of ucontext_t

    Use alignof rather than assuming a 16 byte alignment.

    Reviewed-on: https://go-review.googlesource.com/28913

From-SVN: r240047

8 years agoruntime: remove remaining use of MAKECONTEXT_STACK_TOP macro
Ian Lance Taylor [Fri, 9 Sep 2016 14:00:43 +0000 (14:00 +0000)]
runtime: remove remaining use of MAKECONTEXT_STACK_TOP macro

    The definition and most uses of MAKECONTEXT_STACK_TOP were removed in
    https://golang.org/cl/88660043, which removed support for Solaris 8/9.
    One use of MAKECONTEXT_STACK_TOP was accidentally left in the source
    code.  Remove it now.

    Reviewed-on: https://go-review.googlesource.com/28911

From-SVN: r240045

8 years agoruntime: align ucontext_t argument to 16 byte boundary
Ian Lance Taylor [Fri, 9 Sep 2016 13:31:49 +0000 (13:31 +0000)]
runtime: align ucontext_t argument to 16 byte boundary

    Some systems, such as ia64 and PPC, require that a ucontext_t pointer
    passed to getcontext and friends be aligned to a 16-byte boundary.
    Currently the ucontext_t fields in the g structure are defined in Go,
    and Go has no way to ensure a 16-byte alignment for a struct field.
    The fields are currently represented by an array of unsafe.Pointer.
    Enforce the alignment by making the array larger, and picking an offset
    into the array that is 16-byte aligned.

    Reviewed-on: https://go-review.googlesource.com/28910

From-SVN: r240044

8 years ago[Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)
James Greenhalgh [Fri, 9 Sep 2016 09:40:22 +0000 (09:40 +0000)]
[Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)

This patch arranges for half-precision complex multiply and divide
routines to be built if __LIBGCC_HAS_HF_MODE__.  This will be true
if the target supports the _Float16 type.

libgcc/

PR target/63250
*  Makefile.in (lib2funcs): Build _mulhc3 and _divhc3.
* libgcc2.h (LIBGCC_HAS_HF_MODE): Conditionally define.
(HFtype): Likewise.
(HCtype): Likewise.
(__divhc3): Likewise.
(__mulhc3): Likewise.
* libgcc2.c: Support _mulhc3 and _divhc3.

From-SVN: r240043

8 years agoDaily bump.
GCC Administrator [Fri, 9 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240042

8 years agore PR fortran/69514 (ICE with nested array constructor)
Steven G. Kargl [Thu, 8 Sep 2016 22:33:10 +0000 (22:33 +0000)]
re PR fortran/69514 (ICE with nested array constructor)

2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69514
* array.c (gfc_match_array_constructor):  If type-spec is present,
walk the array constructor performing possible conversions for
numeric types.

2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
    Louis Krupp      <lkrupp@gcc.gnu.org>

PR fortran/69514
* gfortran.dg/pr69514_1.f90: New test.
* gfortran.dg/pr69514_2.f90: New test.

Co-Authored-By: Louis Krupp <lkrupp@gcc.gnu.org>
From-SVN: r240039

8 years agore PR fortran/77500 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:2822)
Jakub Jelinek [Thu, 8 Sep 2016 12:19:21 +0000 (14:19 +0200)]
re PR fortran/77500 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:2822)

PR fortran/77500
* trans-openmp.c (gfc_trans_omp_atomic): For atomic write or
swap, don't try to look through GFC_ISYM_CONVERSION.  In other cases,
check that value.function.isym is non-NULL before dereferencing it.

* gfortran.dg/gomp/pr77500.f90: New test.

From-SVN: r240038

8 years agore PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)
Jakub Jelinek [Thu, 8 Sep 2016 12:18:16 +0000 (14:18 +0200)]
re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)

PR fortran/77516
* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
OMP_CLAUSE_SAFELEN_EXPR.

* gfortran.dg/gomp/pr77516.f90: New test.

From-SVN: r240037

8 years agoDaily bump.
GCC Administrator [Thu, 8 Sep 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240036

8 years agoCorrect libgcc complex multiply excess precision handling (PR libgcc/77519).
Joseph Myers [Wed, 7 Sep 2016 23:02:56 +0000 (00:02 +0100)]
Correct libgcc complex multiply excess precision handling (PR libgcc/77519).

libgcc complex multiply is meant to eliminate excess
precision from certain internal values by forcing them to memory in
exactly those cases where the type has excess precision.  But in
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01894.html I
accidentally inverted the logic so that values get forced to memory in
exactly the cases where it's not needed.  (This is a pessimization in
the no-excess-precision case, in principle could lead to bad results
depending on code generation in the excess-precision case.  Note: I do
not have a test demonstrating bad results.)

Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Code size
went down on x86_64 as expected; old sizes:

   text    data     bss     dec     hex filename
    887       0       0     887     377 _muldc3.o
    810       0       0     810     32a _mulsc3.o
   2032       0       0    2032     7f0 _multc3.o
    983       0       0     983     3d7 _mulxc3.o

New sizes:

    847       0       0     847     34f _muldc3.o
    770       0       0     770     302 _mulsc3.o
   2032       0       0    2032     7f0 _multc3.o
    951       0       0     951     3b7 _mulxc3.o

PR libgcc/77519
* libgcc2.c (NOTRUNC): Invert settings.

From-SVN: r240033

8 years agoPR middle-end/77475: Fix AArch64 testcases.
Jakub Jelinek [Wed, 7 Sep 2016 20:18:17 +0000 (22:18 +0200)]
PR middle-end/77475: Fix AArch64 testcases.

2016-09-07  Jakub Jelinek  <jakub@redhat.com>

PR middle-end/77475
* gcc.target/aarch64/arch-diagnostics-1.c: Expect error on line 0.
* gcc.target/aarch64/arch-diagnostics-2.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-1.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-2.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-3.c: Likewise.
* gcc.target/aarch64/cpu-diagnostics-4.c: Likewise.

From-SVN: r240030

8 years agoMove class substring_loc from c-family into gcc
David Malcolm [Wed, 7 Sep 2016 16:56:23 +0000 (16:56 +0000)]
Move class substring_loc from c-family into gcc

gcc/ChangeLog:
* Makefile.in (OBJS): Add substring-locations.o.
* langhooks-def.h (class substring_loc): New forward decl.
(lhd_get_substring_location): New decl.
(LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
* langhooks.c (lhd_get_substring_location): New function.
* langhooks.h (class substring_loc): New forward decl.
(struct lang_hooks): Add field get_substring_location.
* substring-locations.c: New file, taking definition of
format_warning_va and format_warning_at_substring from
c-family/c-format.c, making them non-static.
* substring-locations.h (class substring_loc): Move class here
from c-family/c-common.h.  Add and rewrite comments.
(format_warning_va): New decl.
(format_warning_at_substring): New decl.
(get_source_location_for_substring): Add comment.

gcc/c-family/ChangeLog:
* c-common.c (get_cpp_ttype_from_string_type): Handle being passed
a POINTER_TYPE.
(substring_loc::get_location): Move to substring-locations.c,
keeping implementation as...
(c_get_substring_location): New function, from the above, reworked
to use accessors rather than member lookup.
* c-common.h (class substring_loc): Move to substring-locations.h,
replacing with a forward decl.
(c_get_substring_location): New decl.
* c-format.c: Include "substring-locations.h".
(format_warning_va): Move to substring-locations.c.
(format_warning_at_substring): Likewise.

gcc/c/ChangeLog:
* c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
c_get_substring_location for this new langhook.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: Include
"substring-locations.h".

From-SVN: r240028

8 years agoi386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning.
Eric Gallager [Wed, 7 Sep 2016 15:05:56 +0000 (15:05 +0000)]
i386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning.

* config/i386/i386.c: Add 'U' suffix to processor feature bits
to avoid -Wnarrowing warning.
* config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
* opts.c: Likewise for SANITIZER_OPT bitmasks.

From-SVN: r240027

8 years agoImprove aarch64_legitimize_address - avoid splitting the offset if it is supported.
Wilco Dijkstra [Wed, 7 Sep 2016 14:56:59 +0000 (14:56 +0000)]
Improve aarch64_legitimize_address - avoid splitting the offset if it is supported.

Improve aarch64_legitimize_address - avoid splitting the offset if it is
supported.  When we do split, take the mode size into account.  BLKmode
falls into the unaligned case but should be treated like LDP/STP.
This improves codesize slightly due to fewer base address calculations:

int f(int *p) { return p[5000] + p[7000]; }

Now generates:

f:
add x0, x0, 16384
ldr w1, [x0, 3616]
ldr w0, [x0, 11616]
add w0, w1, w0
ret

instead of:

f:
add x1, x0, 16384
add x0, x0, 24576
ldr w1, [x1, 3616]
ldr w0, [x0, 3424]
add w0, w1, w0
ret

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimize_address):
Avoid use of base_offset if offset already in range.

From-SVN: r240026

8 years agore PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple...
Richard Biener [Wed, 7 Sep 2016 08:22:01 +0000 (08:22 +0000)]
re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple code with vectors)

2016-09-07  Richard Biener  <rguenther@suse.de>

PR c/77450
* c-c++-common/vector-subscript-8.c: Move ..
* gcc.dg/pr77450.c: ... here.

From-SVN: r240025

8 years ago[SH] Move definitions for atomic models to sh.h from sh-protos.h.
Kaz Kojima [Wed, 7 Sep 2016 04:44:40 +0000 (04:44 +0000)]
[SH] Move definitions for atomic models to sh.h from sh-protos.h.

From-SVN: r240023

8 years agoDaily bump.
GCC Administrator [Wed, 7 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240022

8 years agoFix dates on changelog
Jerry DeLisle [Tue, 6 Sep 2016 23:22:36 +0000 (23:22 +0000)]
Fix dates on changelog

From-SVN: r240019

8 years agore PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
Jerry DeLisle [Tue, 6 Sep 2016 23:22:26 +0000 (23:22 +0000)]
re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)

2016-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* io/write_float.def (build_float_string): Recognize when the
result will not fit in the user provided, star fill, and exit
early.

* gfortran.dg/fmt_f0_2.f90: Update test.
* gfortran.dg/fmt_f0_3.f90: New test.

From-SVN: r240018

8 years agore PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C -std=gnu++11...
Dominique d'Humieres [Tue, 6 Sep 2016 22:18:54 +0000 (00:18 +0200)]
re PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C  -std=gnu++11  scan-assembler-times DIE \\\\([^\\n]*\\\\) DW_TAG_template_value_param ...)

2016-09-07  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR debug/77389
* g++.dg/debug/dwarf2/template-params-12g.C: Pass -gno-strict-dwarf
in dg-options.

PR debug/57519
* g++.dg/debug/dwarf2/imported-decl-2.C: Likewise.

From-SVN: r240015

8 years agore PR target/69255 (ICE on x86_64-linux-gnu in "emit_move_insn")
Jakub Jelinek [Tue, 6 Sep 2016 20:30:57 +0000 (22:30 +0200)]
re PR target/69255 (ICE on x86_64-linux-gnu in "emit_move_insn")

PR target/69255
* config/i386/i386.c (ix86_expand_builtin): For builtin with
unsupported or unknown ISA, use expand_call.

* gcc.target/i386/pr69255-1.c: New test.
* gcc.target/i386/pr69255-2.c: New test.
* gcc.target/i386/pr69255-3.c: New test.

From-SVN: r240014

8 years agoPR c/77336 - -Wsuggest-attribute=format warning overly simplistic
Martin Sebor [Tue, 6 Sep 2016 19:23:25 +0000 (19:23 +0000)]
PR c/77336 -  -Wsuggest-attribute=format warning overly simplistic

gcc/c-family/ChangeLog:

PR c/77336
* c-format.c (check_function_format): Avoid issuing warnings for
functions unless they call format functions with non-constant
format strings.

gcc/testsuite/ChangeLog:

PR c/77336
* gcc.dg/format/miss-7.c: New test.

From-SVN: r240013

8 years agoc_by_val_1.f: Correct the call to c_to_c and c_to_c8.
Uros Bizjak [Tue, 6 Sep 2016 15:13:06 +0000 (17:13 +0200)]
c_by_val_1.f: Correct the call to c_to_c and c_to_c8.

* gfortran.dg/c_by_val_1.f: Correct the call to c_to_c and c_to_c8.

From-SVN: r240009

8 years agoDetect whether target can use -fprofile-update=atomic
Martin Liska [Tue, 6 Sep 2016 14:13:21 +0000 (16:13 +0200)]
Detect whether target can use -fprofile-update=atomic

PR gcov-profile/77378
PR gcov-profile/77466
* libgcov-profiler.c: Use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{4,8} to
conditionaly enable/disable *_atomic functions.
PR gcov-profile/77378
PR gcov-profile/77466
* tree-profile.c (tree_profiling): Detect whether target can use
-fprofile-update=atomic.
PR gcov-profile/77378
PR gcov-profile/77466
* gcc.dg/profile-update-warning.c: New test.

From-SVN: r240008

8 years agore PR tree-optimization/77479 (Compile time hog w/ -O2 (-Os))
Richard Biener [Tue, 6 Sep 2016 12:51:01 +0000 (12:51 +0000)]
re PR tree-optimization/77479 (Compile time hog w/ -O2 (-Os))

2016-09-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/77479
* tree-vrp.c (update_value_range): Extend overflow handling to
VARYING.

* gcc.dg/torture/pr77479.c: New testcase.

From-SVN: r240007

8 years agore PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple...
Richard Biener [Tue, 6 Sep 2016 12:49:53 +0000 (12:49 +0000)]
re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple code with vectors)

2016-09-06  Richard Biener  <rguenther@suse.de>

PR c/77450
c-family/
* c-common.c (c_common_mark_addressable_vec): Handle
COMPOUND_LITERAL_EXPR.

* c-c++-common/vector-subscript-7.c: Adjust.
* c-c++-common/vector-subscript-8.c: New testcase.

From-SVN: r240006

8 years agoSkip Wno-frame-address test for avr
Senthil Kumar Selvaraj [Tue, 6 Sep 2016 12:02:23 +0000 (12:02 +0000)]
Skip Wno-frame-address test for avr

The avr backend supports __builtin_return_address only for the current
stack frame. The test expects it to work for caller frames as well and
therefore fails for avr.

Add avr to the list of targets already excluded with dg-skip-if.

gcc/testsuite/ChangeLog:

2016-09-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/Wno-frame-address.c: Skip for avr-*-*.

From-SVN: r240005

8 years agoDaily bump.
GCC Administrator [Tue, 6 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r240004

8 years agovariant: include bits/move.h for std::addressof.
Tim Shen [Mon, 5 Sep 2016 19:52:11 +0000 (19:52 +0000)]
variant: include bits/move.h for std::addressof.

2016-09-05  Tim Shen  <timshen@google.com>

* include/std/variant: include bits/move.h for std::addressof.

From-SVN: r240001

8 years agore PR target/77476 ([AVX-512] illegal kmovb instruction on KNL)
Jakub Jelinek [Mon, 5 Sep 2016 19:45:21 +0000 (21:45 +0200)]
re PR target/77476 ([AVX-512] illegal kmovb instruction on KNL)

PR target/77476
* config/i386/i386.md (isa): Add x64_avx512bw.
(*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
(kmov_isa): New mode attr.
(zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
(*zero_extend<mode>si2): Likewise.
(*zero_extendqihi2): Use avx512dq isa for the last alternative.

* gcc.target/i386/avx512f-pr77476.c: New test.
* gcc.target/i386/avx512bw-pr77476.c: New test.
* gcc.target/i386/avx512dq-pr77476.c: New test.

From-SVN: r240000

8 years agotarget-supports.exp (check_effective_target_vect_simd_clones): Update comment to...
Jakub Jelinek [Mon, 5 Sep 2016 19:44:26 +0000 (21:44 +0200)]
target-supports.exp (check_effective_target_vect_simd_clones): Update comment to mention also avx512f.

* lib/target-supports.exp (check_effective_target_vect_simd_clones):
Update comment to mention also avx512f.

From-SVN: r239999

8 years agore PR sanitizer/77396 (address sanitizer crashes if all static global variables...
Jakub Jelinek [Mon, 5 Sep 2016 19:43:57 +0000 (21:43 +0200)]
re PR sanitizer/77396 (address  sanitizer crashes if all static global variables are optimized)

PR sanitizer/77396
* asan/asan_globals.cc: Cherry-pick upstream r280657.

* g++.dg/asan/pr77396-2.C: New test.

From-SVN: r239998

8 years agoChangeLog formatting fixes.
Jakub Jelinek [Mon, 5 Sep 2016 19:42:42 +0000 (21:42 +0200)]
ChangeLog formatting fixes.

From-SVN: r239997

8 years agovariant (_Variant_storage::_M_storage()): Use std::addressof instead of operator...
Mikhail Strelnikov [Mon, 5 Sep 2016 19:40:44 +0000 (19:40 +0000)]
variant (_Variant_storage::_M_storage()): Use std::addressof instead of operator& to take address.

2016-09-05  Mikhail Strelnikov  <mikhail.strelnikov@gmail.com>

* include/std/variant (_Variant_storage::_M_storage()): Use std::addressof
instead of operator& to take address.

From-SVN: r239996

8 years agoinvoke.texi (SPU Options): nops -> NOPs.
Gerald Pfeifer [Mon, 5 Sep 2016 18:39:31 +0000 (18:39 +0000)]
invoke.texi (SPU Options): nops -> NOPs.

* doc/invoke.texi (SPU Options): nops -> NOPs.
(x86 Options): Ditto.

From-SVN: r239995

8 years agore PR middle-end/77475 (unnecessary or misleading context in reporting command line...
Jakub Jelinek [Mon, 5 Sep 2016 18:14:25 +0000 (20:14 +0200)]
re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems)

PR middle-end/77475
* toplev.c (process_options): Temporarily set input_location
to UNKNOWN_LOCATION around targetm.target_option.override () call.

From-SVN: r239994

8 years ago* sv.po: Update.
Joseph Myers [Mon, 5 Sep 2016 16:35:56 +0000 (17:35 +0100)]
* sv.po: Update.

From-SVN: r239992

8 years agore PR target/77452 (ICE: in plus_constant, at explow.c:87 with -fno-split-wide-types...
Uros Bizjak [Mon, 5 Sep 2016 14:44:19 +0000 (16:44 +0200)]
re PR target/77452 (ICE: in plus_constant, at explow.c:87 with -fno-split-wide-types -mavx512f --param=max-combine-insns=2)

PR rtl-optimization/77452
* explow.c (plus_constant) <case MEM>: Extract scalar constant from
inner-mode reference to a CONST_VECTOR constant in the constant pool.

testsuite/ChangeLog:

PR rtl-optimization/77452
* gcc.target/i386/pr77452.c: New test.

From-SVN: r239989

8 years agore PR c/77423 (-Wlogical-not-parentheses false positive for bitwise expression with...
Marek Polacek [Mon, 5 Sep 2016 12:17:09 +0000 (12:17 +0000)]
re PR c/77423 (-Wlogical-not-parentheses false positive for bitwise expression with _Bool operands)

PR c/77423
* doc/invoke.texi: Update -Wlogical-not-parentheses documentation.

* c-common.c (bool_promoted_to_int_p): New function.
(expr_has_boolean_operands_p): New function.
(warn_logical_not_parentheses): Return if expr_has_boolean_operands_p.
(maybe_warn_bool_compare): Use bool_promoted_to_int_p.

* c-c++-common/Wlogical-not-parentheses-3.c: New test.

From-SVN: r239988

8 years agore PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
Jakub Jelinek [Mon, 5 Sep 2016 08:50:29 +0000 (10:50 +0200)]
re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)

PR other/77421
* gensupport.c (alter_output_for_subst_insn): Remove redundant
*insn_out == '*' test.  Don't copy unnecessary to yet another
memory buffer, and don't leak it.

From-SVN: r239987

8 years agore PR rtl-optimization/77425 (Pointer test follows dereference in sched-int.h)
Jakub Jelinek [Mon, 5 Sep 2016 08:49:41 +0000 (10:49 +0200)]
re PR rtl-optimization/77425 (Pointer test follows dereference in sched-int.h)

PR rtl-optimization/77425
* ipa-devirt.c (get_odr_type): Set val->id unconditionally.

From-SVN: r239986

8 years agoDaily bump.
GCC Administrator [Mon, 5 Sep 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239985

8 years agore PR fortran/77391 (gfortran allows CHARACTER(LEN=:),PARAMETER:: STRING='constant...
Steven G. Kargl [Sun, 4 Sep 2016 20:00:48 +0000 (20:00 +0000)]
re PR fortran/77391 (gfortran allows CHARACTER(LEN=:),PARAMETER:: STRING='constant'   buts does not report it as an extension)

2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77391
* resolve.c (deferred_requirements): New function to check F2008:C402.
(resolve_fl_variable,resolve_fl_parameter): Use it.

2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77391
* gfortran.dg/pr77391.f90: New test.

From-SVN: r239982

8 years agore PR web/50642 (onlinedocs formated text too small to read)
Gerald Pfeifer [Sun, 4 Sep 2016 19:38:05 +0000 (19:38 +0000)]
re PR web/50642 (onlinedocs formated text too small to read)

PR documentation/50642
* update_web_docs_svn (CSS): Introduce.
Have generated files refer to it.

From-SVN: r239981

8 years agoupdate_web_docs_svn (CSS): Introduce.
Gerald Pfeifer [Sun, 4 Sep 2016 18:44:30 +0000 (18:44 +0000)]
update_web_docs_svn (CSS): Introduce.

* update_web_docs_svn (CSS): Introduce.
Have generated files refer to it.

From-SVN: r239980

8 years agore PR fortran/77460 (ICE when summing an overflowing array)
Steven G. Kargl [Sun, 4 Sep 2016 18:43:40 +0000 (18:43 +0000)]
re PR fortran/77460 (ICE when summing an overflowing array)

2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77460
* simplify.c (simplify_transformation_to_scalar):  On error, result
may be NULL, simply return.

2016-09-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/77460
* gfortran.dg/pr77460.f90: New test.

From-SVN: r239979

8 years agoffi.c (ffi_struct_type): Put type declaration on separate line.
John David Anglin [Sun, 4 Sep 2016 17:39:05 +0000 (17:39 +0000)]
ffi.c (ffi_struct_type): Put type declaration on separate line.

* src/pa/ffi.c (ffi_struct_type): Put type declaration on separate line.
(ffi_prep_args_pa32): Likewise.
(ffi_size_stack_pa32): Likewise.
(ffi_prep_cif_machdep): Likewise.
(ffi_call): Likewise.  Rename to ffi_call_int.  Add closure argument
and update call to ffi_call_pa32.
(ffi_call, ffi_call_go, ffi_prep_go_closure): New.
(ffi_closure_inner_pa32): Update to handle go closures.
* src/pa/ffitarget.h (FFI_GO_CLOSURES): Define.
* src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static
chain register (%ret1).
(ffi_closure_pa32): Set closure type argument to zero.
(ffi_go_closure_pa32): New function.  Add unwind data for it.
* src/pa/linux.S: Likewise.  Use cfi directives for unwind data.
* testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for
hppa.

From-SVN: r239978

8 years agore PR fortran/71902 (Unneeded temporary on reallocatable character assignment)
Thomas Koenig [Sun, 4 Sep 2016 16:17:55 +0000 (16:17 +0000)]
re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)

2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71902
* frontend-passes.c (realloc_string_callback): Also check for the
lhs being deferred.  Name temporary variable "realloc_string".

2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/71902
* gfortran.dg/dependency_47.f90:  New test.
* gfortran.dg/dependency_49.f90:  New test.

From-SVN: r239977

8 years agoinclhack.def (hpux_longjmp): Adjust select regular expression.
John David Anglin [Sun, 4 Sep 2016 16:17:10 +0000 (16:17 +0000)]
inclhack.def (hpux_longjmp): Adjust select regular expression.

* inclhack.def (hpux_longjmp): Adjust select regular expression.
* fixincl.x: Regenerate.

From-SVN: r239976

8 years agoRevert "Replace error_at with assert in build_va_arg"
Tom de Vries [Sun, 4 Sep 2016 09:07:52 +0000 (09:07 +0000)]
Revert "Replace error_at with assert in build_va_arg"

2016-09-04  Tom de Vries  <tom@codesourcery.com>

revert:
2016-08-29  Tom de Vries  <tom@codesourcery.com>

* c-common.c (build_va_arg): Replace first argument type error
with assert.

From-SVN: r239975

8 years agoDaily bump.
GCC Administrator [Sun, 4 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239974

8 years agoubsan.c (ubsan_use_new_style_p): Fix check for empty string.
Kirill Yukhin [Sat, 3 Sep 2016 10:57:05 +0000 (10:57 +0000)]
ubsan.c (ubsan_use_new_style_p): Fix check for empty string.

gcc/
* ubsan.c (ubsan_use_new_style_p): Fix check for empty string.

From-SVN: r239971

8 years agore PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
Jakub Jelinek [Sat, 3 Sep 2016 09:20:03 +0000 (11:20 +0200)]
re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)

PR c/65467
* gcc.dg/gomp/_Atomic-4.c: Require vect_simd_clones effective target.

From-SVN: r239970

8 years agoDaily bump.
GCC Administrator [Sat, 3 Sep 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239969

8 years agoavx512f-klogic-2.c: Fix operand calculation order.
Kirill Yukhin [Fri, 2 Sep 2016 20:04:14 +0000 (20:04 +0000)]
avx512f-klogic-2.c: Fix operand calculation order.

gcc/testsuite/
  * gcc.target/i386/avx512f-klogic-2.c: Fix operand calculation order.

From-SVN: r239966

8 years agoAdd -fdiagnostics-generate-patch
David Malcolm [Fri, 2 Sep 2016 19:41:17 +0000 (19:41 +0000)]
Add -fdiagnostics-generate-patch

gcc/ChangeLog:
* common.opt (fdiagnostics-generate-patch): New option.
* diagnostic.c: Include "edit-context.h".
(diagnostic_initialize): Initialize context->edit_context_ptr.
(diagnostic_finish): Delete context->edit_context_ptr.
(diagnostic_report_diagnostic): Add fix-it hints from the
diagnostic to context->edit_context_ptr, if any.
* diagnostic.h (class edit_context): Add forward decl.
(struct diagnostic_context): Add field "edit_context_ptr".
* doc/invoke.texi (Diagnostic Message Formatting Options): Add
-fdiagnostics-generate-patch.
(-fdiagnostics-generate-patch): New item.
* toplev.c: Include "edit-context.h".
(process_options): Set global_dc->edit_context_ptr to a new
edit_context if the options need one.
(toplev::main): Handle -fdiagnostics-generate-patch by using
global_dc->edit_context_ptr.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c: New
test case.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
diagnostic-test-show-locus-generate-patch.c to the sources
for diagnostic_plugin_test_show_locus.c.

From-SVN: r239965

8 years agore PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
Jakub Jelinek [Fri, 2 Sep 2016 18:38:07 +0000 (20:38 +0200)]
re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)

PR c/65467
* gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
map and firstprivate clauses on target construct for _Atomic
qualified decls.
(gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
on target construct for _Atomic qualified decls.
* omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
decls.
* omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
_Atomic qualified arguments not mentioned in uniform clause.
c/
* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
flag_openmp.
(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
instead of mark_exp_read on low_bound/length expression.
(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
c_parser_omp_clause_priority, c_parser_omp_clause_hint,
c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
instead of mark_expr_read.
(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
* c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
* c-tree.h (c_omp_clause_copy_ctor): New prototype.
* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
array section bases outside of depend clause, for depend clause
use convert_lvalue_to_rvalue on the base.
(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
linear, aligned, map, to and from clauses.
(c_omp_clause_copy_ctor): New function.
c-family/
* c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
(c_finish_omp_for): Reject _Atomic qualified iterators.
testsuite/
* gcc.dg/gomp/_Atomic-1.c: New test.
* gcc.dg/gomp/_Atomic-2.c: New test.
* gcc.dg/gomp/_Atomic-3.c: New test.
* gcc.dg/gomp/_Atomic-4.c: New test.
* gcc.dg/gomp/_Atomic-5.c: New test.

From-SVN: r239964

8 years agoIntroduce class edit_context
David Malcolm [Fri, 2 Sep 2016 18:00:57 +0000 (18:00 +0000)]
Introduce class edit_context

gcc/ChangeLog:
* Makefile.in (OBJS-libcommon): Add edit-context.o.
* diagnostic-color.c (color_dict): Add "diff-filename",
"diff-hunk", "diff-delete", and "diff-insert".
(parse_gcc_colors): Update default value of GCC_COLORS in comment
to reflect above changes.
* doc/invoke.texi (-fdiagnostics-color): Update description of
default GCC_COLORS, and of the supported capabilities.
* edit-context.c: New file.
* edit-context.h: New file.
* input.c (struct fcache): Add field "missing_trailing_newline".
(diagnostics_file_cache_forcibly_evict_file): Initialize it to
true.
(add_file_to_cache_tab): Likewise.
(fcache::fcache): Likewise.
(get_next_line): Update c->missing_trailing_newline.
(location_missing_trailing_newline): New function.
* input.h (location_missing_trailing_newline): New decl.
* selftest-run-tests.c (selftest::run_tests): Call
edit_context_c_tests.
* selftest.h (edit_context_c_tests): New decl.

libcpp/ChangeLog:
* include/line-map.h (rich_location::seen_impossible_fixit_p): New
accessor.

From-SVN: r239963

8 years agore PR tree-optimization/77444 (Bogus assignments in cand_value_at)
Jakub Jelinek [Fri, 2 Sep 2016 17:12:27 +0000 (19:12 +0200)]
re PR tree-optimization/77444 (Bogus assignments in cand_value_at)

PR tree-optimization/77444
* tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
as steptype, remove redundant initialization.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r239962

8 years agore PR sanitizer/77396 (address sanitizer crashes if all static global variables...
Jakub Jelinek [Fri, 2 Sep 2016 17:11:42 +0000 (19:11 +0200)]
re PR sanitizer/77396 (address  sanitizer crashes if all static global variables are optimized)

PR sanitizer/77396
* sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
(sanopt_optimize_walker): Optimize away
__asan_before_dynamic_init (...) followed by
__asan_after_dynamic_init () without intervening memory loads/stores.
* ipa-pure-const.c (special_builtin_state): Handle
BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.

* decl2.c (do_static_initialization_or_destruction): Only
call asan_dynamic_init_call if INITP is true.

* g++.dg/asan/pr77396.C: New test.

From-SVN: r239961

8 years agocfg.c (free_original_copy_tables): Replace second assignment of bb_copy = NULL by...
Prathamesh Kulkarni [Fri, 2 Sep 2016 17:00:38 +0000 (17:00 +0000)]
cfg.c (free_original_copy_tables): Replace second assignment of bb_copy = NULL by bb_original = NULL.

2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* cfg.c (free_original_copy_tables): Replace second assignment of
bb_copy = NULL by bb_original = NULL.

From-SVN: r239960

8 years agore PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
Jakub Jelinek [Fri, 2 Sep 2016 16:18:35 +0000 (18:18 +0200)]
re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)

PR other/77421
* config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
assignment added in r216794.

From-SVN: r239959

8 years agoImprovements to typed_splay_tree
David Malcolm [Fri, 2 Sep 2016 15:22:21 +0000 (15:22 +0000)]
Improvements to typed_splay_tree

This patch adds foreach, max and min methods to
class typed_splay_tree, along with the start of a selftest
suite.

gcc/ChangeLog:
* Makefile.in (OBJS): Add typed-splay-tree.o.
* selftest-run-tests.c (selftest::run_tests): Call
typed_splay_tree_c_tests.
* selftest.h (typed_splay_tree_c_tests): New decl.
* typed-splay-tree.c: New file.
* typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
(typed_splay_tree::max): New method.
(typed_splay_tree::min): New method.
(typed_splay_tree::foreach): New method.
(typed_splay_tree::closure): New struct.
(typed_splay_tree::inner_foreach_fn): New function.

From-SVN: r239958

8 years agoUse setrlimit for testing libstdc++ in cross toolchains
Maxim Kuvyrkov [Fri, 2 Sep 2016 13:42:55 +0000 (13:42 +0000)]
Use setrlimit for testing libstdc++ in cross toolchains

* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
setrlimit on both native and cross targets.
* configure: Regenerate.

From-SVN: r239955

8 years agoipa-cp.c (ipcp_store_bits_results): Change option name from -fipa-cp-bit to -fipa...
Prathamesh Kulkarni [Fri, 2 Sep 2016 09:22:07 +0000 (09:22 +0000)]
ipa-cp.c (ipcp_store_bits_results): Change option name from -fipa-cp-bit to -fipa-bit-cp.

2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* ipa-cp.c (ipcp_store_bits_results): Change option name from
-fipa-cp-bit to -fipa-bit-cp.

From-SVN: r239954

8 years agoPR tree-optimization/71831 - __builtin_object_size poor results with no
Martin Sebor [Fri, 2 Sep 2016 02:14:50 +0000 (02:14 +0000)]
PR tree-optimization/71831 - __builtin_object_size poor results with no

PR tree-optimization/71831 - __builtin_object_size poor results with no
optimization

gcc/testsuite/ChangeLog:

PR tree-optimization/71831
* gcc.dg/builtin-object-size-16.c: New test.
* gcc.dg/builtin-object-size-17.c: New test.

gcc/ChangeLog:

PR tree-optimization/71831
* tree-object-size.h: Return bool instead of the size and add
argument for the size.
* tree-object-size.c (compute_object_offset): Update signature.
(addr_object_size): Same.
(compute_builtin_object_size): Return bool instead of the size
and add argument for the size.  Handle POINTER_PLUS_EXPR when
optimization is disabled.
(expr_object_size): Adjust.
(plus_stmt_object_size): Adjust.
(pass_object_sizes::execute): Adjust.
* builtins.c (fold_builtin_object_size): Adjust.
* doc/extend.texi (Object Size Checking): Update.
* ubsan.c (instrument_object_size): Adjust.

From-SVN: r239953

8 years agoDaily bump.
GCC Administrator [Fri, 2 Sep 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239952

8 years agoc-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it...
Martin Sebor [Thu, 1 Sep 2016 22:47:49 +0000 (22:47 +0000)]
c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function...

gcc/c-family/ChangeLog:

* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
size to guarantee it fits the output of the formatted function
regardless of its arguments.

gcc/cp/ChangeLog:

* mangle.c: Increase buffer size to guarantee it fits the output
of the formatted function regardless of its arguments.

gcc/go/ChangeLog:

* gofrontend/expressions.cc: Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.

gcc/java/ChangeLog:

* decl.c (give_name_to_locals): Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.
* mangle_name.c (append_unicode_mangled_name): Same.

gcc/ChangeLog:

* genmatch.c (parser::parse_expr): Increase buffer size to guarantee
it fits the output of the formatted function regardless of its
arguments.
* gcc/genmodes.c (parser::parse_expr): Same.
* gimplify.c (gimplify_asm_expr): Same.
* passes.c (pass_manager::register_one_dump_file): Same.
* print-tree.c (print_node): Same.

From-SVN: r239949

8 years agors6000: Rename 110 -> VSCR_REGNO
Segher Boessenkool [Thu, 1 Sep 2016 22:28:29 +0000 (00:28 +0200)]
rs6000: Rename 110 -> VSCR_REGNO

* config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.

From-SVN: r239948

8 years agors6000: Rename 109 -> VRSAVE_REGNO
Segher Boessenkool [Thu, 1 Sep 2016 22:27:20 +0000 (00:27 +0200)]
rs6000: Rename 109 -> VRSAVE_REGNO

* config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.

From-SVN: r239947

8 years agors6000: Rename 74 -> CR6_REGNO
Segher Boessenkool [Thu, 1 Sep 2016 22:26:05 +0000 (00:26 +0200)]
rs6000: Rename 74 -> CR6_REGNO

* config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
* config/rs6000/vector.md: Ditto.
* config/rs6000/vsx.md: Ditto.

From-SVN: r239946

8 years agore PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
Jerry DeLisle [Thu, 1 Sep 2016 21:17:42 +0000 (21:17 +0000)]
re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)

2016-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* gfortran.dg/fmt_f0_2.f90: Update tests for available kinds.

From-SVN: r239945

8 years agofloat128-builtin.c, [...]: Use dg-add-options ieee.
Uros Bizjak [Thu, 1 Sep 2016 16:04:17 +0000 (18:04 +0200)]
float128-builtin.c, [...]: Use dg-add-options ieee.

* gcc.dg/torture/float128-builtin.c, gcc.dg/torture/float128-floath.c,
gcc.dg/torture/float128-ieee-nan.c, gcc.dg/torture/float128-tg-2.c,
gcc.dg/torture/float128-tg.c, gcc.dg/torture/float128x-builtin.c,
gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-nan.c,
gcc.dg/torture/float128x-tg-2.c, gcc.dg/torture/float128x-tg.c,
gcc.dg/torture/float16-builtin.c, gcc.dg/torture/float16-floath.c,
gcc.dg/torture/float16-nan.c, gcc.dg/torture/float16-tg-2.c,
gcc.dg/torture/float16-tg.c, gcc.dg/torture/float32-builtin.c,
gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-nan.c,
gcc.dg/torture/float32-tg-2.c, gcc.dg/torture/float32-tg.c,
gcc.dg/torture/float32x-builtin.c, gcc.dg/torture/float32x-floath.c,
gcc.dg/torture/float32x-nan.c, gcc.dg/torture/float32x-tg-2.c,
gcc.dg/torture/float32x-tg.c, gcc.dg/torture/float64-builtin.c,
gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-nan.c,
gcc.dg/torture/float64-tg-2.c, gcc.dg/torture/float64-tg.c,
gcc.dg/torture/float64x-builtin.c, gcc.dg/torture/float64x-floath.c,
gcc.dg/torture/float64x-nan.c, gcc.dg/torture/float64x-tg-2.c,
gcc.dg/torture/float64x-tg.c: Use dg-add-options ieee.

From-SVN: r239944

8 years agoipa-inline-analysis.c (param_change_prob): Get to the base object first in all cases.
Eric Botcazou [Thu, 1 Sep 2016 15:56:13 +0000 (15:56 +0000)]
ipa-inline-analysis.c (param_change_prob): Get to the base object first in all cases.

* ipa-inline-analysis.c (param_change_prob): Get to the base object
first in all cases.

From-SVN: r239943

8 years agors6000: Use LR_REGNO directly in the save/restore patterns
Segher Boessenkool [Thu, 1 Sep 2016 15:07:54 +0000 (17:07 +0200)]
rs6000: Use LR_REGNO directly in the save/restore patterns

Various patterns use "register_operand" "l" (or "=l") although those
patterns are only created refering to LR_REGNO directly.  This patch
changes those patterns to use the hard regs as well.

* config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
*restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
*return_and_restore_gpregs_<mode>_r11,
*return_and_restore_gpregs_<mode>_r12,
*return_and_restore_gpregs_<mode>_r1,
*return_and_restore_fpregs_<mode>_r11,
*return_and_restore_fpregs_<mode>_r12,
*return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
directly instead of via the "l" constraint.  Renumber operands.
Fix whitespace.

From-SVN: r239942

8 years agors6000: Use LR_REGNO instead of constant 65
Segher Boessenkool [Thu, 1 Sep 2016 15:04:11 +0000 (17:04 +0200)]
rs6000: Use LR_REGNO instead of constant 65

Many places still use 65 instead of the symbolic constant LR_REGNO.  This
fixes them all (I looked for the string "65" only, in config/rs6000/ only,
I didn't read all code :-) )

I left it in *restore_world because Iain will remove it there soon.

* config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
*restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
* config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
*call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
*call_value_nonlocal_darwin64, reload_macho_picbase,
reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
* config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
* config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
*save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
*save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
*save_fpregs_<mode>_r1): Ditto.
* config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
*return_and_restore_gpregs_spe): Ditto.

From-SVN: r239941

8 years agors6000: Fix for AIX, for r239866
Segher Boessenkool [Thu, 1 Sep 2016 15:01:02 +0000 (17:01 +0200)]
rs6000: Fix for AIX, for r239866

This should fix r239866 for AIX.  I missed two patterns that refer to LR
as "register_operand" "l" instead of as reg:P LR_REGNO.

* config/rs6000/rs6000.md
(define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
the use of the link register.
(define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.

From-SVN: r239940

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Thu, 1 Sep 2016 14:59:50 +0000 (14:59 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
gcc/c-family/
* c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
FALLTHRU comments.
gcc/c/
* c-typeck.c (composite_type): Add FALLTHRU comment.
gcc/gcc/cp/
* error.c (dump_type): Fix falls through comment.
(dump_decl): Likewise.
(dump_expr): Likewise.

From-SVN: r239939

8 years agore PR target/72827 (gnat bootstrap broken on powerpc64le-linux-gnu)
Bill Schmidt [Thu, 1 Sep 2016 14:43:55 +0000 (14:43 +0000)]
re PR target/72827 (gnat bootstrap broken on powerpc64le-linux-gnu)

2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
    Michael Meissner <meissner@linux.vnet.ibm.com>

PR target/72827
* config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
reg+reg addressing for TImode.
(rs6000_legitimate_address_p): Only allow register indirect
addressing for TImode, even without TARGET_QUAD_MEMORY.

Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
From-SVN: r239938

8 years agore PR middle-end/77436 (Incorrect constant result for summing loop inserted)
Richard Biener [Thu, 1 Sep 2016 13:38:25 +0000 (13:38 +0000)]
re PR middle-end/77436 (Incorrect constant result for summing loop inserted)

2016-09-01  Richard Biener  <rguenther@suse.de>

PR middle-end/77436
* tree-chrec.c (tree_fold_binomial): Use widest_int, properly
check whether the result fits the desired result type.

* gcc.dg/torture/pr77436.c: New testcase.

From-SVN: r239937

8 years ago* config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
Nathan Sidwell [Thu, 1 Sep 2016 12:07:16 +0000 (12:07 +0000)]
* config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.

From-SVN: r239934

8 years agoThis patch adds legitimize_address_displacement hook so that stack accesses...
Wilco Dijkstra [Thu, 1 Sep 2016 11:34:49 +0000 (11:34 +0000)]
This patch adds legitimize_address_displacement hook so that stack accesses...

This patch adds legitimize_address_displacement hook so that stack accesses
with large offsets are split into a more efficient sequence.  Unaligned and
TI/TFmode use a 256-byte range, byte and halfword accesses use a 4KB range,
wider accesses use a 16KB range to maximise the available addressing range
and increase opportunities to share the base address.

int f(int x)
{
  int arr[8192];
  arr[4096] = 0;
  arr[6000] = 0;
  arr[7000] = 0;
  arr[8191] = 0;
  return arr[x];
}

Now generates:

  sub   sp, sp, #32768
  add   x1, sp, 16384
  str   wzr, [x1]
  str   wzr, [x1, 7616]
  str   wzr, [x1, 11616]
  str   wzr, [x1, 16380]
  ldr   w0, [sp, w0, sxtw 2]
  add   sp, sp, 32768
  ret

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
New function.
(TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.

From-SVN: r239923

8 years agoFix more bogus testsuite failures for avr.
Senthil Kumar Selvaraj [Thu, 1 Sep 2016 11:02:55 +0000 (11:02 +0000)]
Fix more bogus testsuite failures for avr.

gcc/testsuite/

2016-09-01  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.dg/pr64252.c: Require int32plus.
        * gcc.dg/pr66299-1.c: Likewise.
        * gcc.dg/pr66299-2.c: Likewise.
        * gcc.dg/torture/20131115-1.c: Skip for avr.

From-SVN: r239921

8 years ago[AArch64] Add ANDS pattern for CMP+ZERO_EXTEND
Kyrylo Tkachov [Thu, 1 Sep 2016 09:03:52 +0000 (09:03 +0000)]
[AArch64] Add ANDS pattern for CMP+ZERO_EXTEND

* config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
for comparisons of integer ZERO_EXTEND against zero.

* gcc.target/aarch64/ands_3.c: New test.

From-SVN: r239919

8 years agoi386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign...
Eric Botcazou [Thu, 1 Sep 2016 07:55:00 +0000 (07:55 +0000)]
i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled.

* config/i386/i386.c (ix86_option_override_internal): Also disable the
STV pass if -mstackrealign is enabled.

From-SVN: r239916

8 years agoPR c++/57728 - adjust testcase
Jason Merrill [Thu, 1 Sep 2016 01:55:47 +0000 (21:55 -0400)]
PR c++/57728 - adjust testcase

* g++.dg/cpp0x/explicit12.C: Add -save-temps.

From-SVN: r239913

8 years agoC: Fix missing spaces in 'struct' fix-it hints
David Malcolm [Thu, 1 Sep 2016 00:50:54 +0000 (00:50 +0000)]
C: Fix missing spaces in 'struct' fix-it hints

In r237714 I added fix-it hints to the C frontend for missing "struct"
keywords e.g.:

spellcheck-typenames.c:69:1: error: unknown type name ‘foo_t’; use
‘struct’ keyword to refer to the type
 foo_t *foo_ptr;
 ^~~~~
 struct

However when using the (not yet in trunk) option
 -fdiagnostics-generate-patch,
the generated patch is nonsensical:

  -foo_t *foo_ptr;
  +structfoo_t *foo_ptr;

Fix the fix-its by adding a trailing space to each one, giving:

  -foo_t *foo_ptr;
  +struct foo_t *foo_ptr;

gcc/c/ChangeLog:
* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
to the insertion fixits for "struct", "union", and "enum".

From-SVN: r239912

8 years agoDaily bump.
GCC Administrator [Thu, 1 Sep 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239911

8 years agoFix detection of AVX512IFMA in host_detect_local_cpu
Ilya Verbin [Wed, 31 Aug 2016 19:49:35 +0000 (19:49 +0000)]
Fix detection of AVX512IFMA in host_detect_local_cpu

gcc/
* config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
AVX512IFMA.

From-SVN: r239908

8 years agodiagnostic-show-locus.c: handle fixits on lines outside the regular ranges
David Malcolm [Wed, 31 Aug 2016 18:54:55 +0000 (18:54 +0000)]
diagnostic-show-locus.c: handle fixits on lines outside the regular ranges

The diagnostic_show_locus implementation determines the set
of line spans that need printing based on the ranges within the
rich_location (in layout::calculate_line_spans).

Currently this doesn't take into account fix-it hints, and hence
we fail to print fix-it hints that are on lines outside of
those ranges.

This patch updates the implementation to take fix-it hints into
account when calculating the pertinent line spans, so that such fix-it
hints do get printed.  It also adds some validation, to ensure that
we don't attempt to print fix-its hints affecting a different source
file.

gcc/ChangeLog:
* diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
(layout_range::intersects_line_p): New method.
(test_range_contains_point_for_single_point): Rename to...
(test_layout_range_for_single_point): ...this, and add testing
for layout_range::intersects_line_p.
(test_range_contains_point_for_single_line): Rename to...
(test_layout_range_for_single_line): ...this,  and add testing
for layout_range::intersects_line_p.
(test_range_contains_point_for_multiple_lines): Rename to...
(test_layout_range_for_multiple_lines): ...this,  and add testing
for layout_range::intersects_line_p.
(layout::layout): Populate m_fixit_hints.
(layout::get_expanded_location): Handle the case of a line-span
for a fix-it hint.
(layout::validate_fixit_hint_p): New method.
(get_line_span_for_fixit_hint): New function.
(layout::calculate_line_spans): Add spans for fixit-hints.
(layout::should_print_annotation_line_p): New method.
(layout::print_any_fixits): Drop param "richloc", instead using
validated fixits in m_fixit_hints.  Add "const" to hint pointers.
(diagnostic_show_locus): Avoid printing blank annotation lines.
(selftest::test_diagnostic_context::test_diagnostic_context):
Initialize show_column and start_span.
(selftest::test_diagnostic_context::start_span_cb): New static
function.
(selftest::test_diagnostic_show_locus_fixit_lines): New function.
(selftest::diagnostic_show_locus_c_tests): Update for function
renamings.  Call test_diagnostic_show_locus_fixit_lines.

libcpp/ChangeLog:
* include/line-map.h (class fixit_remove): Remove stray decl.
(fixit_hint::affects_line_p): Make const.
(fixit_insert::affects_line_p): Likewise.
(fixit_replace::affects_line_p): Likewise.
* line-map.c (fixit_insert::affects_line_p): Likewise.
(fixit_replace::affects_line_p): Likewise.

From-SVN: r239906

8 years agore PR tree-optimization/77352 (ICE: verify_ssa failed)
Jakub Jelinek [Wed, 31 Aug 2016 18:42:55 +0000 (20:42 +0200)]
re PR tree-optimization/77352 (ICE: verify_ssa failed)

PR fortran/77352
* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a
BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns.

* gfortran.dg/gomp/pr77352.f90: New test.

From-SVN: r239904

8 years agore PR fortran/77374 (ICE in resolve_omp_atomic, at fortran/openmp.c:3949)
Jakub Jelinek [Wed, 31 Aug 2016 18:42:08 +0000 (20:42 +0200)]
re PR fortran/77374 (ICE in resolve_omp_atomic, at fortran/openmp.c:3949)

PR fortran/77374
* parse.c (parse_omp_oacc_atomic): Copy over cp->ext.omp_atomic
to cp->block->ext.omp_atomic.
* resolve.c (gfc_resolve_blocks): Assert block with one or two
EXEC_ASSIGNs for EXEC_*_ATOMIC.
* openmp.c (resolve_omp_atomic): Don't assert one or two
EXEC_ASSIGNs, instead return quietly for EXEC_NOPs and otherwise
error unexpected statements.

* gfortran.dg/gomp/pr77374.f08: New test.

From-SVN: r239903

8 years agomatch.pd: Revert a * (1 << b) relaxation.
Marc Glisse [Wed, 31 Aug 2016 18:22:58 +0000 (20:22 +0200)]
match.pd: Revert a * (1 << b) relaxation.

2016-08-31  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/73714
gcc/
* match.pd (a * (1 << b)): Revert change from 2016-05-23.
gcc/testsuite/
* gcc.dg/tree-ssa/pr73714.c: New test.

From-SVN: r239902

8 years agore PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
Jerry DeLisle [Wed, 31 Aug 2016 17:54:32 +0000 (17:54 +0000)]
re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* gfortran.dg/fmt_f0_2.f90: New test.

From-SVN: r239901

8 years agore PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
Jerry DeLisle [Wed, 31 Aug 2016 17:45:26 +0000 (17:45 +0000)]
re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)

2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/77393
* io/write.c (kind_from_size): New function to calculate required buffer
size based on kind type. (select_buffer, select_string): Use new
function. (write_float_0, write_real, write_real_g0, write_complex):
Adjust calls to pass parameters needed by new function.

From-SVN: r239900

8 years agoConstrain std::shared_ptr assignment and resetting
Jonathan Wakely [Wed, 31 Aug 2016 16:57:20 +0000 (17:57 +0100)]
Constrain std::shared_ptr assignment and resetting

* include/bits/shared_ptr.h (_Assignable): New alias template.
(shared_ptr::operator=(const shared_ptr<_Tp1>&))
(shared_ptr::operator=(shared_ptr<_Tp1>&&))
(shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
_Assignable.
* include/bits/shared_ptr_base.h (_Assignable): New alias template.
(__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
(__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
(__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
_Assignable.
(__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
(__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
_Convertible.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
match on any line.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
expected errors. Remove unnecessary code.
* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.

From-SVN: r239898

8 years agoMove comparison object in map/set move assignment
Jonathan Wakely [Wed, 31 Aug 2016 16:57:14 +0000 (17:57 +0100)]
Move comparison object in map/set move assignment

* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
comparison object.
* testsuite/23_containers/set/move_comparison.cc: New test.

From-SVN: r239897

8 years agoAdd test accidentally not added in revision r239121
Jonathan Wakely [Wed, 31 Aug 2016 16:57:09 +0000 (17:57 +0100)]
Add test accidentally not added in revision r239121

* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
New test.

From-SVN: r239896