platform/upstream/gcc.git
6 years agoDocument that -Wreturn-type is enabled by default for C++
Jonathan Wakely [Thu, 26 Apr 2018 13:52:15 +0000 (14:52 +0100)]
Document that -Wreturn-type is enabled by default for C++

* doc/invoke.texi (-Wreturn-type): Document default status for C++.

From-SVN: r259679

6 years ago[nvptx, libgomp] Add GOMP_NVPTX_JIT=-O[0-4] in nvptx libgomp plugin
Tom de Vries [Thu, 26 Apr 2018 13:27:04 +0000 (13:27 +0000)]
[nvptx, libgomp] Add GOMP_NVPTX_JIT=-O[0-4] in nvptx libgomp plugin

2018-04-26  Tom de Vries  <tom@codesourcery.com>

PR libgomp/84020
* plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
* plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
(process_GOMP_NVPTX_JIT): New function.
(link_ptx): Use process_GOMP_NVPTX_JIT.

From-SVN: r259678

6 years ago[nvptx] Verify bar.sync position
Tom de Vries [Thu, 26 Apr 2018 13:26:48 +0000 (13:26 +0000)]
[nvptx] Verify bar.sync position

2018-04-26  Tom de Vries  <tom@codesourcery.com>

PR target/84952
* config/nvptx/nvptx.c (verify_neutering_jumps)
(verify_neutering_labels): New function
(nvptx_single): Use verify_neutering_jumps and verify_neutering_labels.

From-SVN: r259677

6 years ago[nvptx] Fix branch-around-nothing
Tom de Vries [Thu, 26 Apr 2018 13:26:38 +0000 (13:26 +0000)]
[nvptx] Fix branch-around-nothing

2018-04-26  Tom de Vries  <tom@codesourcery.com>

PR target/84025
* config/nvptx/nvptx.c (needs_neutering_p): New function.
(nvptx_single): Use needs_neutering_p to skip over insns that do not
need neutering.

From-SVN: r259676

6 years ago[lto] Fixup loops before lto write-out
Richard Biener [Thu, 26 Apr 2018 13:26:25 +0000 (13:26 +0000)]
[lto] Fixup loops before lto write-out

2018-04-26  Richard Biener <rguenther@suse.de>
    Tom de Vries  <tom@codesourcery.com>

PR lto/85422
* lto-streamer-out.c (output_function): Fixup loops if required to match
discovery done in the reader.

* testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r259675

6 years ago[nvptx, libgomp, testsuite] Reduce recursion depth in declare_target-{1,2}.f90
Tom de Vries [Thu, 26 Apr 2018 13:26:09 +0000 (13:26 +0000)]
[nvptx, libgomp, testsuite] Reduce recursion depth in declare_target-{1,2}.f90

2018-04-26  Tom de Vries  <tom@codesourcery.com>

PR target/85519
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
recursion depth from 25 to 23.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.

From-SVN: r259674

6 years agore PR libstdc++/85116 (std::min_element does not optimize well with inlined predicate)
Richard Biener [Thu, 26 Apr 2018 12:18:58 +0000 (12:18 +0000)]
re PR libstdc++/85116 (std::min_element does not optimize well with inlined predicate)

2018-04-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/85116
* tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should
have a loop exit from the single latch predecessor.  Remove
case of header with just condition.
(ch_base::copy_headers): Exclude infinite loops from any
processing.
(pass_ch::execute): Record exits.

* gcc.dg/tree-ssa/copy-headers-2.c: New testcase.
* gcc.dg/tree-ssa/copy-headers-3.c: Likewise.
* gcc.dg/tree-ssa/copy-headers-4.c: Likewise.
* gcc.dg/tree-ssa/loadpre6.c: Adjust.

From-SVN: r259672

6 years agoMakefile.tpl (STAGE1_TFLAGS): Add -fno-checking.
Richard Biener [Thu, 26 Apr 2018 08:47:31 +0000 (08:47 +0000)]
Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking.

2018-04-26  Richard Biener  <rguenther@suse.de>

* Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking.
(STAGE2_CFLAGS): Likewise.
(STAGE2_TFLAGS): Likewise.
(STAGE3_CFLAGS): Add -fchecking.
(STAGE3_TFLAGS): Likewise.
(STAGEtrain_CFLAGS): Filter out -fchecking.
(STAGEtrain_TFLAGS): Likewise.
* Makefile.in: Re-generate.

From-SVN: r259669

6 years agotree-vect-data-refs.c (vect_get_data_access_cost): Get prologue cost vector and pass...
Richard Biener [Thu, 26 Apr 2018 07:30:55 +0000 (07:30 +0000)]
tree-vect-data-refs.c (vect_get_data_access_cost): Get prologue cost vector and pass it to vect_get_load_cost.

2018-04-26  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_get_data_access_cost): Get
prologue cost vector and pass it to vect_get_load_cost.
(vect_get_peeling_costs_all_drs): Likewise.
(vect_peeling_hash_get_lowest_cost): Likewise.
(vect_enhance_data_refs_alignment): Likewise.

From-SVN: r259668

6 years agore PR middle-end/85450 (ICE: invalid types in nop conversion during GIMPLE pass:...
Richard Biener [Thu, 26 Apr 2018 07:21:42 +0000 (07:21 +0000)]
re PR middle-end/85450 (ICE: invalid types in nop conversion during GIMPLE pass: ompexp)

2018-04-26  Richard Biener  <rguenther@suse.de>

PR middle-end/85450
* tree-cfg.c (verify_gimple_assign_unary): Restore proper
checking of integer<->pointer conversions.
* omp-expand.c (expand_omp_for_static_nochunk): Avoid
sign-/zero-extending pointer types.
(expand_omp_for_static_chunk): Likewise.

From-SVN: r259667

6 years agomips.c (mips_asan_shadow_offset): New function.
Hans-Peter Nilsson [Thu, 26 Apr 2018 01:21:32 +0000 (01:21 +0000)]
mips.c (mips_asan_shadow_offset): New function.

* config/mips/mips.c (mips_asan_shadow_offset): New function.
(TARGET_ASAN_SHADOW_OFFSET): Define.
* config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be
true for -fsanitize=address.

Co-Authored-By: Jean Lee <xiaoyur347@gmail.com>
From-SVN: r259666

6 years agoIf someone has access to a 64-bit mips-linux system to test this (with the obvious...
Hans-Peter Nilsson [Thu, 26 Apr 2018 01:16:47 +0000 (01:16 +0000)]
If someone has access to a 64-bit mips-linux system to test this (with the obvious edit), that'd be really nice.

If someone has access to a 64-bit mips-linux system to test
this (with the obvious edit), that'd be really nice.  Until
then, best to not introduce possible build failures.

* configure.tgt <mips*-*-linux*>: Enable build, excluding
mips*64*-*-linux*.

From-SVN: r259665

6 years agoAs mentioned in <http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html> the bogus adjustmen...
Hans-Peter Nilsson [Thu, 26 Apr 2018 01:12:56 +0000 (01:12 +0000)]
As mentioned in <gcc.gnu.org/ml/gcc/2018-03/msg00133.html> the bogus adjustment to 160 from 144 (which is reverted here)...

As mentioned in <http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html>
the bogus adjustment to 160 from 144 (which is reverted here),
is a single-token commit in upstream r301307, an attempt to
correct a failed build due to an upstream change to compile the
runtime with D_FILE_OFFSET_BITS=64.  The correct fix is here:
just use the right include.  Yes, user-struct-stat64-as-stat is
actually 160 for MIPS o32 and I hear user-struct-stat is also
160 for n32.  There are additional fields appended for
user-struct-stat!  I guess for MIPS it's as bad as it gets for
mixing up kernel and user struct stat.  The context of the patch
doesn't show that in the #else there's the correct include, the
one for <asm/stat.h> to get the kernel-struct-stat.  If you
can't compile it, IMHO the kernel headers are just too old; 3.2
is fine for example.

* sanitizer_common/sanitizer_platform_limits_linux.cc: Do not
take the shortcut to #include <sys/stat.h> for MIPS instead of
the kernel <asm/stat.h>.  Explain why sys/stat.h is misleading
or wrong to get the kernel struct stat.
* sanitizer_common/sanitizer_platform_limits_posix.h [__mips__]:
Correct the value for 32-bit non-android struct_kernel_stat_sz.

From-SVN: r259664

6 years agoThis appears to be present in compiler-rt upstream, but as part of more intrusive...
Hans-Peter Nilsson [Thu, 26 Apr 2018 01:09:27 +0000 (01:09 +0000)]
This appears to be present in compiler-rt upstream, but as part of more intrusive changes.

This appears to be present in compiler-rt upstream, but as part
of more intrusive changes.  For gcc, the lack of this results in
a fatal warning (-Werror) at build-time.

* sanitizer_common/sanitizer_atomic_clang_other.h [_MIPS_SIM
&& _MIPS_SIM == _ABIO32] (lock): Add initializer for .pad member.

From-SVN: r259663

6 years agoDaily bump.
GCC Administrator [Thu, 26 Apr 2018 00:16:35 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259662

6 years agoMAINTAINERS (mips): Remove myself as MIPS maintainer.
Catherine Moore [Wed, 25 Apr 2018 22:40:04 +0000 (18:40 -0400)]
MAINTAINERS (mips): Remove myself as MIPS maintainer.

2018-04-25  Catherine Moore <clm@codesourcery.com>

        * MAINTAINERS (mips): Remove myself as MIPS maintainer.

From-SVN: r259658

6 years agoDWARF sort longer dirs before shorter ones in directory table.
Mark Wielaard [Wed, 25 Apr 2018 17:34:00 +0000 (17:34 +0000)]
DWARF sort longer dirs before shorter ones in directory table.

When gcc dwarf2out generates the .debug_line table itself (for example
when generating one for a split DWARF .dwo) it uses natural sorting for
the directory table. Shorter directory paths come before longer directory
paths with the same prefix. This causes the files in the line table to
pick the shorter dir. Creating slightly ineffecient line tables because
the longer directory paths will never be used.

Fix this by changing file_info_cmp () to pick longer directory prefixes
before shorter ones. We still sort files (the compilation unit) without
any directory path before all entries with a directory path, so they
will still use dir entry 0 (the working directory).

A hello.c program would get the following dir and line table before:

Directory table:
 /opt/local/install/gcc/lib/gcc/x86_64-pc-linux-gnu/8.0.1/include
 /usr/include
 /usr/include/bits

File name table:
 Entry Dir   Time      Size      Name
 1     0     0         0         hello.c
 2     1     0         0         stddef.h
 3     2     0         0         bits/types.h
 4     2     0         0         libio.h
 5     2     0         0         stdio.h
 6     2     0         0         bits/sys_errlist.h

Note that the last directory table entry is never used.
After this patch it looks as follows:

Directory table:
 /opt/local/install/gcc/lib/gcc/x86_64-pc-linux-gnu/8.0.1/include
 /usr/include/bits
 /usr/include

File name table:
 Entry Dir   Time      Size      Name
 1     0     0         0         hello.c
 2     1     0         0         stddef.h
 3     2     0         0         types.h
 4     3     0         0         libio.h
 5     3     0         0         stdio.h
 6     2     0         0         sys_errlist.h

Which is similar to what gas would output.

gcc/ChangeLog:

* dwarf2out.c (file_info_cmp): Sort longer dir prefixes before
shorter ones.

From-SVN: r259655

6 years agoi386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather than "alu"...
Jakub Jelinek [Wed, 25 Apr 2018 13:11:03 +0000 (15:11 +0200)]
i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather than "alu"...

* config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather
than "alu", remove explicit "memory" and "imm_disp" attributes.
(*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise.

From-SVN: r259650

6 years agore PR middle-end/85414 (ICE: in ix86_expand_prologue, at config/i386/i386.c:13810...
Jakub Jelinek [Wed, 25 Apr 2018 13:10:01 +0000 (15:10 +0200)]
re PR middle-end/85414 (ICE: in ix86_expand_prologue, at config/i386/i386.c:13810 with -Og -fgcse)

PR middle-end/85414
* simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND,
case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to
gen_lowpart_no_emit.

From-SVN: r259649

6 years agore PR target/85473 (internal compiler error: in emit_move_insn, at expr.c:3722)
Sebastian Peryt [Wed, 25 Apr 2018 12:39:57 +0000 (14:39 +0200)]
re PR target/85473 (internal compiler error: in emit_move_insn, at expr.c:3722)

2018-04-25  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/ChangeLog:

PR target/85473
* config/i386/i386.c (ix86_expand_builtin): Change memory
operand to XI, extend p0 to Pmode.
* config/i386/i386.md: Change unspec volatile and operand
1 mode to XI, change operand 0 mode to P.

gcc/testsuite/ChangeLog:

PR target/85473
* gcc.target/i386/pr85473-1.c: New test.
* gcc.target/i386/pr85473-2.c: New test.

From-SVN: r259648

6 years ago[NDS32] Fix bug in bit-instruction checking functions.
Chung-Ju Wu [Wed, 25 Apr 2018 12:32:19 +0000 (12:32 +0000)]
[NDS32] Fix bug in bit-instruction checking functions.

gcc/
* config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
GET_MODE_MASK before any checking.
(nds32_can_use_bset_p): Likewise.
(nds32_can_use_btgl_p): Likewise.

From-SVN: r259647

6 years ago[NDS32] Split movdi/df if reigster number is illegal.
Chung-Ju Wu [Wed, 25 Apr 2018 12:17:29 +0000 (12:17 +0000)]
[NDS32] Split movdi/df if reigster number is illegal.

gcc/
* config/nds32/nds32-doubleword.md: New define_split pattern for
illegal register number.

From-SVN: r259646

6 years ago[NDS32] Fix incorrect settings in sfp-machine.h and t-nds32-newlib for hard fp.
Chung-Ju Wu [Wed, 25 Apr 2018 12:08:14 +0000 (12:08 +0000)]
[NDS32] Fix incorrect settings in sfp-machine.h and t-nds32-newlib for hard fp.

libgcc/
* config/nds32/sfp-machine.h: Fix settings for NDS32_ABI_2FP_PLUS.
* config/nds32/t-nds32-newlib (HOST_LIBGCC2_CFLAGS): Use -fwrapv.

From-SVN: r259645

6 years ago[NDS32] Fix print operand for cctl register.
Chung-Ju Wu [Wed, 25 Apr 2018 11:22:55 +0000 (11:22 +0000)]
[NDS32] Fix print operand for cctl register.

gcc/
* config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.

From-SVN: r259643

6 years ago[NDS32] Add missing newline character into ASM_APP_ON macro.
Chung-Ju Wu [Wed, 25 Apr 2018 10:24:49 +0000 (10:24 +0000)]
[NDS32] Add missing newline character into ASM_APP_ON macro.

gcc/
* config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.

From-SVN: r259642

6 years agore PR sanitizer/84307 (asan blocks dead-store elimination)
Jakub Jelinek [Wed, 25 Apr 2018 10:02:24 +0000 (12:02 +0200)]
re PR sanitizer/84307 (asan blocks dead-store elimination)

PR sanitizer/84307
* c-decl.c (build_compound_literal): Call pushdecl (decl) even when
it is not TREE_STATIC.
* c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
its COMPOUND_LITERAL_EXPR_DECL.

From-SVN: r259641

6 years agore PR ada/85007 (-b flag to gnatlink not recognized)
Eric Botcazou [Wed, 25 Apr 2018 10:01:13 +0000 (10:01 +0000)]
re PR ada/85007 (-b flag to gnatlink not recognized)

PR ada/85007
* gnat_ugn.texi: Regenerate.

From-SVN: r259639

6 years agolto-streamer.h (LTO_major_version): Bump to 8.
Richard Biener [Wed, 25 Apr 2018 08:14:36 +0000 (08:14 +0000)]
lto-streamer.h (LTO_major_version): Bump to 8.

2018-04-25  Richard Biener  <rguenther@suse.de>

* lto-streamer.h (LTO_major_version): Bump to 8.

From-SVN: r259638

6 years ago* crontab: Enable snapshots from gcc-8-branch.
Jakub Jelinek [Wed, 25 Apr 2018 07:46:31 +0000 (09:46 +0200)]
* crontab: Enable snapshots from gcc-8-branch.

From-SVN: r259637

6 years ago* BASE-VER: Set to 9.0.0.
Jakub Jelinek [Wed, 25 Apr 2018 07:42:00 +0000 (09:42 +0200)]
* BASE-VER: Set to 9.0.0.

From-SVN: r259635

6 years agore PR c++/85437 (member pointer static upcast rejected in a constexpr context)
Jakub Jelinek [Wed, 25 Apr 2018 07:10:16 +0000 (09:10 +0200)]
re PR c++/85437 (member pointer static upcast rejected in a constexpr context)

PR c++/85437
PR c++/49171
* cp-tree.h (REINTERPRET_CAST_P): New.
* constexpr.c (cxx_eval_constant_expression) <case NOP_EXPR>:
Reject REINTERPET_CAST_P conversions.  Use cplus_expand_constant
for non-trivial PTRMEM_CST cases.
* typeck.c (build_nop_reinterpret): New.
(build_reinterpret_cast_1): Use it.  Set REINTERPRET_CAST_P on
NOP_EXPRs returned by cp_convert.

* g++.dg/cpp0x/addressof1.C: Make reinterpret cases runtime checks.
* g++.dg/cpp0x/constexpr-cast.C: Remove xfails
* g++.dg/cpp0x/constexpr-nullptr-2.C: Likewise.
* g++.dg/cpp0x/constexpr-pmf1.C: Check when optimized.
* g++.dg/cpp0x/pr85437-1.C: New.
* g++.dg/cpp0x/pr85437-2.C: New.
* g++.dg/cpp0x/pr85437-3.C: New.
* g++.dg/cpp0x/pr85437-4.C: New.

From-SVN: r259629

6 years agoDaily bump.
GCC Administrator [Wed, 25 Apr 2018 00:16:37 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259628

6 years agore PR fortran/85520 (Out of memory when declaring a character with len << 0)
Steven G. Kargl [Tue, 24 Apr 2018 23:17:29 +0000 (23:17 +0000)]
re PR fortran/85520 (Out of memory when declaring a character with len << 0)

2018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85520
* decl.c (gfc_match_char_spec): Check for negative length and set to 0.

2018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/85520
* gfortran.dg/pr85520.f90: New test.

From-SVN: r259623

6 years agors6000: Fix __powikf2 and __abskf2 spelling
Segher Boessenkool [Tue, 24 Apr 2018 22:49:41 +0000 (00:49 +0200)]
rs6000: Fix __powikf2 and __abskf2 spelling

Both of these libfuncs had a "tkf" misspelling, which caused
gcc.target/powerpc/pr85456.c to fail (there is no test for __abskf2).

* config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
in __abskf2 and __powikf2.

From-SVN: r259622

6 years agox86: Update __CET__ check
H.J. Lu [Tue, 24 Apr 2018 22:15:51 +0000 (22:15 +0000)]
x86: Update __CET__ check

__CET__ has been changed by revision 259522:

commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Apr 20 13:30:13 2018 +0000

    Define __CET__ for -fcf-protection and remove -mibt

to

    (__CET__ & 1) != 0: -fcf-protection=branch or -fcf-protection=full
    (__CET__ & 2) != 0: -fcf-protection=return or -fcf-protection=full

We should check (__CET__ & 2) != 0 for shadow stack.

libgcc/

* config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check
when including "config/i386/shadow-stack-unwind.h".

libitm/

* config/x86/sjlj.S (_ITM_beginTransaction): Add
(__CET__ & 2) != 0 check for shadow stack.
(GTM_longjmp): Likewise.

From-SVN: r259621

6 years agox86/CET: Add -fcf-protection to STAGE4_CFLAGS
H.J. Lu [Tue, 24 Apr 2018 22:12:46 +0000 (22:12 +0000)]
x86/CET: Add -fcf-protection to STAGE4_CFLAGS

Since profiledbootstrap uses

STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use

add

STAGE4_CFLAGS += -fcf-protection -mcet

to bootstrap-cet.mk to support profiledbootstrap with CET.

PR bootstrap/85490
* bootstrap-cet.mk (STAGE4_CFLAGS): New.

From-SVN: r259620

6 years ago[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints
Kyrylo Tkachov [Tue, 24 Apr 2018 16:58:49 +0000 (16:58 +0000)]
[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints

In this testcase it is possible to generate an invalid SISD shift of zero:
Error: immediate value out of range 1 to 64 at operand 3 -- `sshr v9.2s,v0.2s,0'

The SSHR and USHR instructions require a shift from 1 up to the element size.
However our constraints on the scalar shifts that generate these patterns
allow a shift amount of zero as well. The pure GP-reg ASR and LSR instructions allow a shift amount of zero.

It is unlikely that a shift of zero will survive till the end of compilation, but it's not impossible, as this PR shows.

The patch tightens up the constraints in the offending patterns by adding two new constraints
that allow shift amounts [1,32] and [1,64] and using them in *aarch64_ashr_sisd_or_int_<mode>3
and *aarch64_lshr_sisd_or_int_<mode>3.
The left-shift SISD instructions SHL and USHL allow a shift amount of zero so don't need adjustment
The vector shift patterns that map down to SSHR and USHR already enforce the correct immediate range.

        PR target/85512
        * config/aarch64/constraints.md (Usg, Usj): New constraints.
        * config/aarch64/iterators.md (cmode_simd): New mode attribute.
        * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
        Use the above on operand 2.  Reindent.
        (*aarch64_lshr_sisd_or_int_<mode>3): Likewise.

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

From-SVN: r259614

6 years agox86/CET: Remove the -mcet command-lint option
H.J. Lu [Tue, 24 Apr 2018 16:56:04 +0000 (16:56 +0000)]
x86/CET: Remove the -mcet command-lint option

With revision 259496:

commit b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Apr 19 15:15:04 2018 +0000

    x86: Enable -fcf-protection with multi-byte NOPs

-fcf-protection no longer depens on -mcet and with revision 259522:

commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Apr 20 13:30:13 2018 +0000

    Define __CET__ for -fcf-protection and remove -mibt

-mcet becomes an alias for -mshstk.  Since all usages of -mcet and
-mno-cet have either been removed or replaced, we can remove the -mcet
command-lint option.

PR target/85485
* common/config/i386/i386-common.c (ix86_handle_option): Don't
handle OPT_mcet.
* config/i386/i386.opt (mcet): Removed.
* doc/install.texi: Remove -mcet documentation.
* doc/invoke.texi: Likewise.

From-SVN: r259613

6 years agox86/CET tests: Remove -mcet/-mno-cet or replace -mcet with -mshstk
H.J. Lu [Tue, 24 Apr 2018 16:54:35 +0000 (09:54 -0700)]
x86/CET tests: Remove -mcet/-mno-cet or replace -mcet with -mshstk

With revision 259496:

commit b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Apr 19 15:15:04 2018 +0000

    x86: Enable -fcf-protection with multi-byte NOPs

-fcf-protection no longer depens on -mcet and with revision 259522:

commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Apr 20 13:30:13 2018 +0000

    Define __CET__ for -fcf-protection and remove -mibt

-mcet becomes an alias for -mshstk.

We can remove -mcet/-mno-cet where they are unused and replace -mcet
with -mshstk where -mcet is used as an alias for -mshstk.

PR target/85485
* g++.dg/cet-notrack-1.C (dg-options): Remove -mcet.
* g++.dg/torture/pr85334.C (dg-additional-options): Likwise.
* gcc.dg/pr85388-1.c (dg-options): Likwise.
* gcc.dg/pr85388-2.c (dg-options): Likwise.
* gcc.dg/pr85388-3.c (dg-options): Likwise.
* gcc.dg/pr85388-4.c (dg-options): Likwise.
* gcc.dg/pr85388-5.c (dg-options): Likwise.
* gcc.dg/pr85388-6.c (dg-options): Likwise.
* gcc.dg/torture/pr85397-1.c (dg-additional-options): Likwise.
* gcc.target/i386/attr-nocf-check-1a.c (dg-options): Likwise.
* gcc.target/i386/attr-nocf-check-3a.c (dg-options): Likwise.
* gcc.target/i386/cet-label.c (dg-options): Likwise.
* gcc.target/i386/cet-label-2.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-1b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-2a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-2b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-3.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-4b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-5a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-5b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-6a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-6b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-7.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-icf-2.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-icf-4.c (dg-options): Likwise.
* gcc.target/i386/cet-property-1.c (dg-options): Likwise.
* gcc.target/i386/cet-property-2.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-1.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-2.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-3.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-4.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-5.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-6a.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-6b.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-1.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-2.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-3.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-11.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-12.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-12.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-13.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-14.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-15.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-16.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-8.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-9.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-10.c (dg-options): Likwise.
* gcc.target/i386/pr82659-1.c (dg-options): Likwise.
* gcc.target/i386/pr82659-2.c (dg-options): Likwise.
* gcc.target/i386/pr82659-3.c (dg-options): Likwise.
* gcc.target/i386/pr82659-4.c (dg-options): Likwise.
* gcc.target/i386/pr82659-5.c (dg-options): Likwise.
* gcc.target/i386/pr82659-6.c (dg-options): Likwise.
* gcc.target/i386/pr84146.c (dg-options): Likwise.
* gcc.target/i386/pr85403.c (dg-options): Likwise.
* gcc.target/i386/pr85404.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-3.c (dg-options): Replace -mcet
with -mshstk.
* gcc.target/i386/cet-intrin-5.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-6.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-7.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-8.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-9.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-10.c (dg-options): Likwise.
* gcc.target/i386/cet-rdssp-1.c (dg-options): Likwise.
* (dg-options): Likwise.
* gcc.target/i386/cet-notrack-1a.c (dg-options): Remove
-mno-cet.
* gcc.target/i386/cet-notrack-4a.c (dg-options): Likwise.
* gcc.target/i386/cet-label-3.c: Removed.
* gcc.target/i386/cet-property-3.c: Likwise.
* gcc.target/i386/cet-sjlj-7.c: Likwise.

From-SVN: r259612

6 years agoDon't bootstrap GCC with -mcet
H.J. Lu [Tue, 24 Apr 2018 16:47:24 +0000 (16:47 +0000)]
Don't bootstrap GCC with -mcet

With revision 259496:

commit b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Apr 19 15:15:04 2018 +0000

    x86: Enable -fcf-protection with multi-byte NOPs

-fcf-protection no longer requires -mcet.

config/

PR target/85485
* bootstrap-cet.mk (STAGE2_CFLAGS): Remove -mcet.
(STAGE3_CFLAGS): Likewise.

gcc/

PR target/85485
* doc/install.texi: Remove -mcet from bootstrap-cet.

From-SVN: r259611

6 years agoRegenerate configure of target libraries
H.J. Lu [Tue, 24 Apr 2018 16:45:26 +0000 (16:45 +0000)]
Regenerate configure of target libraries

* configure: Regenerated.

From-SVN: r259610

6 years agore PR target/85511 ([X86] Using __builtin_ia32_writeeflags_u32 in 64-bit mode causes...
Jakub Jelinek [Tue, 24 Apr 2018 16:42:59 +0000 (18:42 +0200)]
re PR target/85511 ([X86] Using __builtin_ia32_writeeflags_u32 in 64-bit mode causes internal compiler error)

PR target/85511
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
__builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
if TARGET_64BIT.

* gcc.target/i386/pr85511.c: New test.

From-SVN: r259609

6 years agox86/CET: Build target libraries with -mshstk
H.J. Lu [Tue, 24 Apr 2018 16:41:01 +0000 (09:41 -0700)]
x86/CET: Build target libraries with -mshstk

With revision 259522:

commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Apr 20 13:30:13 2018 +0000

    Define __CET__ for -fcf-protection and remove -mibt

-mcet becomes an alias for -mshstk.

PR target/85485
* cet.m4 (GCC_CET_FLAGS): Replace -mcet with -mshstk.

From-SVN: r259608

6 years agore PR target/85503 (ICE in replace_swapped_load_constant, at config/rs6000/rs6000...
Jakub Jelinek [Tue, 24 Apr 2018 16:05:19 +0000 (18:05 +0200)]
re PR target/85503 (ICE in replace_swapped_load_constant, at config/rs6000/rs6000-p8swap.c:1853 on powerpc64le-linux-gnu)

PR target/85503
* config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
containing a CONST_VECTOR.

* g++.dg/ext/pr85503.C: New test.

From-SVN: r259607

6 years agoTestsuite fixes for C++11 alignof change.
Jason Merrill [Tue, 24 Apr 2018 15:54:56 +0000 (11:54 -0400)]
Testsuite fixes for C++11 alignof change.

gcc/testsuite:
* c-c++-common/attr-aligned-1.c: Use __alignof__ in C++11.
* g++.dg/cpp0x/alignas4.C: Expect 4-byte alignment on x86.

From-SVN: r259606

6 years ago[nvptx] Update newlib dependency.
Cesar Philippidis [Tue, 24 Apr 2018 14:36:15 +0000 (07:36 -0700)]
[nvptx] Update newlib dependency.

gcc/
* doc/install.texi: Update newlib dependency for nvptx.

From-SVN: r259596

6 years agore PR target/85508 (runtime error in config/i386/i386.c)
Jakub Jelinek [Tue, 24 Apr 2018 13:20:20 +0000 (15:20 +0200)]
re PR target/85508 (runtime error in config/i386/i386.c)

PR target/85508
* config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
instead of INTVAL when shifting x left.

* gcc.target/i386/pr85508.c: New test.

From-SVN: r259594

6 years agore PR tree-optimization/85478 (ICE with single element vector)
Andreas Krebbel [Tue, 24 Apr 2018 12:18:26 +0000 (12:18 +0000)]
re PR tree-optimization/85478 (ICE with single element vector)

Fix PR85478

gcc/ChangeLog:

2018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>

PR tree-optimization/85478
* tree-vect-loop.c (vect_analyze_loop_2): Do not call
vect_grouped_store_supported for single element vectors.

gcc/testsuite/ChangeLog:

2018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>

PR tree-optimization/85478
* g++.dg/pr85478.C: New test.

From-SVN: r259593

6 years agore PR target/85491 (nbench LU Decomposition test 15% slower than GCC 7, 30% slower...
Richard Biener [Tue, 24 Apr 2018 08:46:55 +0000 (08:46 +0000)]
re PR target/85491 (nbench LU Decomposition test 15% slower than GCC 7, 30% slower than peak)

2018-04-24  Richard Biener  <rguenther@suse.de>

PR target/85491
* config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
load cost increase to the case of non-constant step.

From-SVN: r259592

6 years agore PR target/84828 (ICE in verify_flow_info at gcc/cfghooks.c:265)
Jakub Jelinek [Tue, 24 Apr 2018 07:40:04 +0000 (09:40 +0200)]
re PR target/84828 (ICE in verify_flow_info at gcc/cfghooks.c:265)

PR target/84828
* reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
destination if any_malformed_asm.

From-SVN: r259591

6 years agoDaily bump.
GCC Administrator [Tue, 24 Apr 2018 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259589

6 years agoPR c++/69560 - wrong alignof(double) on x86.
Jason Merrill [Mon, 23 Apr 2018 20:49:38 +0000 (16:49 -0400)]
PR c++/69560 - wrong alignof(double) on x86.

CWG 1879 - Inadequate definition of alignment requirement.
* cp-tree.h (ALIGNOF_EXPR_STD_P): New.
* typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm.
(cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr)
(cxx_alignof_expr): Pass it.
* parser.c (cp_parser_unary_expression): Pass it.
* pt.c (tsubst_copy): Copy it.
(tsubst_copy_and_build): Pass it.
* decl.c (fold_sizeof_expr): Pass it.

From-SVN: r259578

6 years agoRegenerate .pot files.
Joseph Myers [Mon, 23 Apr 2018 20:27:02 +0000 (21:27 +0100)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r259575

6 years agore PR middle-end/85496 (internal compiler error: in emit_move_insn, at expr.c:3722)
Eric Botcazou [Mon, 23 Apr 2018 20:19:39 +0000 (20:19 +0000)]
re PR middle-end/85496 (internal compiler error: in emit_move_insn, at expr.c:3722)

PR middle-end/85496
* expr.c (store_field): In the bitfield case, if the value comes from
a function call and is returned in registers by means of a PARALLEL,
do not change the mode of the temporary unless BLKmode and VOIDmode.

From-SVN: r259574

6 years agoPR c++/85470 - wrong error with static data member.
Jakub Jelinek [Mon, 23 Apr 2018 19:11:22 +0000 (21:11 +0200)]
PR c++/85470 - wrong error with static data member.

* decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P.
* typeck2.c (store_init_value): Likewise.

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

6 years agoAdd myself to MAINTAINERS.
Paul Clarke [Mon, 23 Apr 2018 18:53:34 +0000 (18:53 +0000)]
Add myself to MAINTAINERS.

* MAINTAINERS (write after approval): Add myself.

From-SVN: r259570

6 years agore PR rtl-optimization/85423 (ICE in code_motion_process_successors, at sel-sched...
Andrey Belevantsev [Mon, 23 Apr 2018 15:19:06 +0000 (18:19 +0300)]
re PR rtl-optimization/85423 (ICE in code_motion_process_successors, at sel-sched.c:6403)

        PR rtl-optimization/85423

        * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
        dependencies to debug insns when the previous insn is non-debug.

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

From-SVN: r259563

6 years agox86/cet: Use unsigned integer to unwind shadow stack
H.J. Lu [Mon, 23 Apr 2018 12:29:00 +0000 (12:29 +0000)]
x86/cet: Use unsigned integer to unwind shadow stack

Use unsigned integer to unwind shadow stack by replacing jle with jbe and
jg with ja.

PR target/85489
* config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja.

From-SVN: r259559

6 years ago[ARC] Fix FLS, SETI patterns.
Claudiu Zissulescu [Mon, 23 Apr 2018 09:55:14 +0000 (11:55 +0200)]
[ARC] Fix FLS, SETI patterns.

Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
enums into a single definition.
(fls): Fix predicates and printing.
(seti): Likewise.

From-SVN: r259558

6 years ago[ARC] Update sleep builtin.
Claudiu Zissulescu [Mon, 23 Apr 2018 09:54:59 +0000 (11:54 +0200)]
[ARC] Update sleep builtin.

gcc/
2018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
* config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
and short u6 immediate.
(check_if_valid_sleep_operand): Remove.
* config/arc/arc.md (Sleep): Accepts registers and u6 immediates.

changelog

From-SVN: r259557

6 years agoDaily bump.
GCC Administrator [Mon, 23 Apr 2018 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259556

6 years ago[NDS32] Add new option -malways-save-lp.
Chung-Ju Wu [Sun, 22 Apr 2018 10:10:00 +0000 (10:10 +0000)]
[NDS32] Add new option -malways-save-lp.

gcc/
* config/nds32/nds32.c (nds32_compute_stack_frame): Consider
flag_always_save_lp condition.
* config/nds32/nds32.opt (malways-save-lp): New option.

From-SVN: r259553

6 years ago[NDS32] Implment USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT, USE_STORE_POST_DEC...
Shiva Chen [Sun, 22 Apr 2018 09:05:10 +0000 (09:05 +0000)]
[NDS32] Implment USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT, USE_STORE_POST_DECREMENT and USE_STORE_POST_INCREMENT.

gcc/
* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
* config/nds32/nds32.c (nds32_use_load_post_increment): New.
* config/nds32/nds32.h
(USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
(USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.

From-SVN: r259552

6 years ago[NDS32] Remove unused function: nds32_ls_333_p().
Shiva Chen [Sun, 22 Apr 2018 08:51:26 +0000 (08:51 +0000)]
[NDS32] Remove unused function: nds32_ls_333_p().

gcc/
* config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
* config/nds32/nds32.c (nds32_ls_333_p): Remove.

From-SVN: r259551

6 years ago[NDS32] Refine CASE_VECTOR_SHORTEN_MODE to function.
Shiva Chen [Sun, 22 Apr 2018 08:42:18 +0000 (08:42 +0000)]
[NDS32] Refine CASE_VECTOR_SHORTEN_MODE to function.

gcc/
* config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
Declare.
* config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
* config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r259550

6 years ago[NDS32] Fix wrong input value of parameter from stack for variable-length function.
Chung-Ju Wu [Sun, 22 Apr 2018 08:25:47 +0000 (08:25 +0000)]
[NDS32] Fix wrong input value of parameter from stack for variable-length function.

gcc/
* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.

From-SVN: r259549

6 years ago[NDS32] Implement DATA_ALIGNMENT, LOCAL_ALIGNMENT and TARGET_CONSTANT_ALIGNMENT.
Chung-Ju Wu [Sun, 22 Apr 2018 08:19:38 +0000 (08:19 +0000)]
[NDS32] Implement DATA_ALIGNMENT, LOCAL_ALIGNMENT and TARGET_CONSTANT_ALIGNMENT.

gcc/
* config/nds32/nds32-protos.h (nds32_data_alignment,
nds32_local_alignment): Declare.
* config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
nds32_local_alignment): New functions.
(TARGET_CONSTANT_ALIGNMENT): Define.
* config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.

From-SVN: r259548

6 years ago[NDS32] Move some target hooks to the bottom of nds32.c file.
Chung-Ju Wu [Sun, 22 Apr 2018 08:07:08 +0000 (08:07 +0000)]
[NDS32] Move some target hooks to the bottom of nds32.c file.

gcc/
* config/nds32/nds32.c
(TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
(TARGET_MODES_TIEABLE_P): Likewise.

From-SVN: r259547

6 years ago[NDS32] Consider -Ofast and -Og in nds32_asm_file_start function.
Chung-Ju Wu [Sun, 22 Apr 2018 07:57:06 +0000 (07:57 +0000)]
[NDS32] Consider -Ofast and -Og in nds32_asm_file_start function.

gcc/
* config/nds32/nds32.c (nds32_asm_file_start): Display optimization
level Ofast and Og.

From-SVN: r259546

6 years ago[NDS32] Add unaligned access support.
Monk Chiang [Sun, 22 Apr 2018 07:46:39 +0000 (07:46 +0000)]
[NDS32] Add unaligned access support.

gcc/
* config/nds32/constants.md (unspec_volatile_element): Add enum values
for unaligned access.
* config/nds32/nds32-intrinsic.c: Implementation of expanding
unaligned access.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32_intrinsic.h: Likewise.
* config/nds32/nds32.h (nds32_builtins): Likewise.
* config/nds32/nds32.opt (munaligned-access): New option.
* config/nds32/nds32.c (nds32_asm_file_start): Display
flag_unaligned_access status.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r259545

6 years agoDaily bump.
GCC Administrator [Sun, 22 Apr 2018 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259544

6 years agoRISC-V: Pass --no-relax to linker if -mno-relax is present.
Kito Cheng [Sat, 21 Apr 2018 01:03:30 +0000 (01:03 +0000)]
RISC-V: Pass --no-relax to linker if -mno-relax is present.

gcc/
2018-04-20  Kito Cheng  <kito.cheng@gmail.com>
* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
-mno-relax is present.
* config/riscv/linux.h (LINK_SPEC): Ditto.

From-SVN: r259540

6 years agoDaily bump.
GCC Administrator [Sat, 21 Apr 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259539

6 years agoPR c/85365 - -Wrestrict false positives with -fsanitize=undefined
Martin Sebor [Fri, 20 Apr 2018 23:43:51 +0000 (23:43 +0000)]
PR c/85365 -  -Wrestrict false positives with -fsanitize=undefined

gcc/ChangeLog:

PR c/85365
* gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
for null pointers.
(gimple_fold_builtin_stxcpy_chk): Same.
* gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.

gcc/testsuite/ChangeLog:

PR c/85365
* gcc.dg/Wrestrict-15.c: New test.

From-SVN: r259535

6 years agore PR target/85456 (PowerPC: Using -mabi=ieeelongdouble calls wrong function for...
Michael Meissner [Fri, 20 Apr 2018 21:27:08 +0000 (21:27 +0000)]
re PR target/85456 (PowerPC: Using -mabi=ieeelongdouble calls wrong function for __builtin_powi.)

[libgcc]
2018-04-20  Michael Meissner  <meissner@linux.ibm.com>

PR target/85456
* config/rs6000/_powikf2.c: New file.  Add support for the
__builtin_powil function when long double is IEEE 128-bit floating
point.
* config/rs6000/float128-ifunc.c (__powikf2_resolve): Add
__powikf2 support.
(__powikf2): Likewise.
* config/rs6000/quad-float128.h (__powikf2_sw): Likewise.
(__powikf2_hw): Likewise.
(__powikf2): Likewise.
* config/rs6000/t-float128 (fp128_ppc_funcs): Likewise.
* config/rs6000/t-float128-hw (fp128_hw_func): Likewise.
(_powikf2-hw.c): Likewise.

[gcc]
2018-04-20  Michael Meissner  <meissner@linux.ibm.com>

PR target/85456
* config/rs6000/rs6000.c (init_float128_ieee): Add support to call
__powikf2 when long double is IEEE 128-bit.

[gcc/testsuite]
2018-04-20  Michael Meissner  <meissner@linux.ibm.com>

PR target/85456
* gcc.target/powerpc/pr85456.c: New test.

From-SVN: r259533

6 years agoundef-bool-1.C: Require lp64.
Bill Schmidt [Fri, 20 Apr 2018 21:00:41 +0000 (21:00 +0000)]
undef-bool-1.C: Require lp64.

[gcc/testsuite]

2018-04-20  Bill Schmidt  <wschmidt@linux.ibm.com>

* g++.dg/ext/undef-bool-1.C: Require lp64.
* gcc.target/powerpc/undef-bool-2.c: Likewise.

From-SVN: r259532

6 years agogotest: only use [TD] on big-endian PPC64 non-AIX systems
Ian Lance Taylor [Fri, 20 Apr 2018 20:40:27 +0000 (20:40 +0000)]
gotest: only use [TD] on big-endian PPC64 non-AIX systems

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

From-SVN: r259531

6 years agoRISC-V: Make sure stack is always aligned during adjusting stack.
Kito Cheng [Fri, 20 Apr 2018 19:03:19 +0000 (19:03 +0000)]
RISC-V: Make sure stack is always aligned during adjusting stack.

gcc/
2018-04-20  Kito Cheng  <kito.cheng@gmail.com>
* config/riscv/riscv.c (riscv_first_stack_step): Round up min
step to make sure stack always aligned.

From-SVN: r259530

6 years agostack-check-5.c: Improve dg-skip-if selector for the stack protector.
Jeff Law [Fri, 20 Apr 2018 17:20:46 +0000 (11:20 -0600)]
stack-check-5.c: Improve dg-skip-if selector for the stack protector.

       * gcc.dg/stack-check-5.c: Improve dg-skip-if selector for the
        stack protector.
        * gcc.dg/stack-check-6.c: Likewise.
        * gcc.dg/stack-check-6a.c: Likewise.
        * gcc.target/i386/stack-check-17.c: Add dg-skip-if selector.
        * gcc.target/i386/stack-check-18.c: Likewise.
        * gcc.target/i386/stack-check-19.c: Likewise.

From-SVN: r259528

6 years agoFix missing hunk from previous commit
Kyrylo Tkachov [Fri, 20 Apr 2018 16:33:53 +0000 (16:33 +0000)]
Fix missing hunk from previous commit

From-SVN: r259527

6 years agoPR testsuite/85483: Move aarch64/sve/vcond_1.c test to g++.dg/other/
Kyrylo Tkachov [Fri, 20 Apr 2018 16:31:19 +0000 (16:31 +0000)]
PR testsuite/85483: Move aarch64/sve/vcond_1.c test to g++.dg/other/

I totally botched up this sve test file in 259437.
It needs C++, so move it to g++.dg/other and make it a .C file.
Also adds the target guards to prevent it from running on non-aarch64 targets.

Tested that it passes on aarch64-none-elf and doesn't get run on arm-none-eabi.

Committing to trunk as obvious.

PR testsuite/85483
* gcc.target/aarch64/sve/vcond_1.c: Move to...
* g++.dg/other/sve_vcond_1.C: ... Here.  Add target directives.
* gcc.target/aarch64/sve/vcond_1_run.c: Move to...
* g++.dg/other/sve_vcond_1_run.C: ... Here.  Change include file name.

From-SVN: r259526

6 years agore PR target/83402 (PPC64 implementation of ./rs6000/emmintrin.h gives out of range...
Carl Love [Fri, 20 Apr 2018 15:18:24 +0000 (15:18 +0000)]
re PR target/83402 (PPC64 implementation of ./rs6000/emmintrin.h gives out of range for _mm_slli_epi32)

gcc/ChangeLog:

2018-04-20  Carl Love  <cel@us.ibm.com>

        PR target/83402
        * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add
        size check for arg0.

From-SVN: r259524

6 years ago[nvptx] Fix calls to vector and worker routines
Nathan Sidwell [Fri, 20 Apr 2018 13:46:07 +0000 (13:46 +0000)]
[nvptx] Fix calls to vector and worker routines

2018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

PR target/85445
* config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining):
Emit insns for calls too.
(nvptx_find_par): Always look for worker-level predecessor insn.
(nvptx_propagate): Add is_call parm, return bool.  Copy frame for
calls.
(nvptx_vpropagate, nvptx_wpropagate): Adjust.
(nvptx_process_pars): Propagate frames for calls.

* testsuite/libgomp.oacc-c++/ref-1.C: New.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r259523

6 years agoDefine __CET__ for -fcf-protection and remove -mibt
H.J. Lu [Fri, 20 Apr 2018 13:30:13 +0000 (13:30 +0000)]
Define __CET__ for -fcf-protection and remove -mibt

With revision 259496:

commit b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Apr 19 15:15:04 2018 +0000

    x86: Enable -fcf-protection with multi-byte NOPs

-mibt does nothing and can be removed.  Define __CET__ to indicate level
protection with -fcf-protection:

(__CET__ & 1) != 0: -fcf-protection=branch or -fcf-protection=full
(__CET__ & 2) != 0: -fcf-protection=return or -fcf-protection=full

gcc/

PR target/85469
* common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET):
Removed.
(OPTION_MASK_ISA_IBT_UNSET): Likewise.
(ix86_handle_option): Don't handle OPT_mibt.
* config/i386/cet.h: Check __CET__ instead of __IBT__ and
__SHSTK__.
* config/i386/driver-i386.c (host_detect_local_cpu): Remove
has_ibt and ibt.
* config/i386/i386-c.c (ix86_target_macros_internal): Don't
check OPTION_MASK_ISA_IBT nor flag_cf_protection.
(ix86_target_macros): Define __CET__ with flag_cf_protection
for -fcf-protection.
* config/i386/i386.c (isa2_opts): Remove -mibt.
* config/i386/i386.h (TARGET_IBT): Removed.
(TARGET_IBT_P): Likewise.
(ix86_valid_target_attribute_inner_p): Don't check OPT_mibt.
* config/i386/i386.md (nop_endbr): Don't check TARGET_IBT.
* config/i386/i386.opt (mcet): Update help message.
(mshstk): Likewise.
(mibt): Removed.
* doc/invoke.texi: Remove -mibt.  Document __CET__.  Document
-mcet as an alias for -mshstk.

gcc/testsuite/

PR target/85469
* gcc.target/i386/pr85044.c (dg-options): Remove -mibt.
* gcc.target/i386/sse-26.c (dg-options): Remove -mno-ibt.

From-SVN: r259522

6 years agoDo not overflow string buffer (PR objc/85476).
Martin Liska [Fri, 20 Apr 2018 12:55:36 +0000 (14:55 +0200)]
Do not overflow string buffer (PR objc/85476).

2018-04-20  Martin Liska  <mliska@suse.cz>

PR objc/85476
* objc-act.c (finish_class): Do not overflow string buffer.

From-SVN: r259521

6 years agore PR tree-optimization/85475 (Compile time hog w/ -O1 -fpeel-loops)
Richard Biener [Fri, 20 Apr 2018 10:31:23 +0000 (10:31 +0000)]
re PR tree-optimization/85475 (Compile time hog w/ -O1 -fpeel-loops)

2018-04-20  Richard Biener <rguenther@suse.de>

PR middle-end/85475
* match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential
complexity by forcing a single use of the multiply operand.

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

From-SVN: r259519

6 years agoFix IPA-CP test for self-feeding recursive dependency
Martin Jambor [Fri, 20 Apr 2018 09:35:33 +0000 (11:35 +0200)]
Fix IPA-CP test for self-feeding recursive dependency

2018-04-20  Martin Jambor  <mjambor@suse.cz>

ipa/85449
* ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding
recursion dependency to only apply to non-clones.

testsuite/
* gcc.dg/ipa/pr85449.c: New test.

From-SVN: r259518

6 years agoCheck that clones of edges exist during IPA-CP
Martin Jambor [Fri, 20 Apr 2018 09:19:39 +0000 (11:19 +0200)]
Check that clones of edges exist during IPA-CP

2018-04-20  Martin Jambor  <mjambor@suse.cz>

ipa/85447
* ipa-cp.c (create_specialized_node): Check that clones of
self-recursive edges exist during IPA-CP.

testsuite/
* g++.dg/ipa/pr85447.C: New file.
* gcc.dg/ipa/ipcp-self-recursion-1.c: Likewise.

From-SVN: r259517

6 years agore PR c++/85462 (internal compiler error: in inc_refcount_use, at cp/pt.c:8955)
Jakub Jelinek [Fri, 20 Apr 2018 07:56:52 +0000 (09:56 +0200)]
re PR c++/85462 (internal compiler error: in inc_refcount_use, at cp/pt.c:8955)

PR c++/85462
* cp-tree.h (tinst_level): Remove in_system_header_p member,
change refcount member from unsigned char to unsigned short,
add refcount_infinity static data member, adjust comments.
* pt.c (tinst_level::refcount_infinity): Define.
(inc_refcount_use): Remove assert, don't increment if refcount
is already refcount_infinity, adjust comment.
(dec_refcount_use): Remove assert, don't decrement if refcount
is refcount_infinity, adjust comment.
(push_tinst_level_loc): Formatting fix.

* g++.dg/cpp0x/pr85462.C: New test.

From-SVN: r259516

6 years agoDaily bump.
GCC Administrator [Fri, 20 Apr 2018 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259515

6 years agoinvoke.texi: Add -floop-unroll-and-jam to options enabled by -O3.
Toon Moene [Thu, 19 Apr 2018 19:29:26 +0000 (19:29 +0000)]
invoke.texi: Add -floop-unroll-and-jam to options enabled by -O3.

2018-04-19  Toon Moene  <toon@moene.org>

* doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
by -O3.

From-SVN: r259509

6 years agoRequire CET target on gcc.target/i386/pr85404.c
H.J. Lu [Thu, 19 Apr 2018 19:20:37 +0000 (19:20 +0000)]
Require CET target on gcc.target/i386/pr85404.c

Need a working CET assembler to assemble the compiler output.

* gcc.target/i386/pr85404.c: Require CET target.

From-SVN: r259508

6 years agore PR tree-optimization/85467 (ICE: verify_gimple failed: non-trivial conversion...
Jakub Jelinek [Thu, 19 Apr 2018 19:16:18 +0000 (21:16 +0200)]
re PR tree-optimization/85467 (ICE: verify_gimple failed: non-trivial conversion at assignment with -O2 -fno-tree-ccp --param=sccvn-max-scc-size=10)

PR tree-optimization/85467
* fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use
VECTOR_TYPE_P macro.  If type is vector type, VIEW_CONVERT_EXPR the
VECTOR_CST element to type.

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

From-SVN: r259507

6 years agore PR c++/84611 (ICE in operator[], at vec.h:826 (local_class_index()))
Paolo Carlini [Thu, 19 Apr 2018 18:09:45 +0000 (18:09 +0000)]
re PR c++/84611 (ICE in operator[], at vec.h:826 (local_class_index()))

/cp
2018-04-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84611
* pt.c (lookup_template_class_1): Check pushtag return value for
error_mark_node.

/testsuite
2018-04-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84611
* g++.dg/parse/crash68.C: New.

From-SVN: r259505

6 years agolibgcc/CET: Skip signal frames when unwinding shadow stack
H.J. Lu [Thu, 19 Apr 2018 17:05:39 +0000 (17:05 +0000)]
libgcc/CET: Skip signal frames when unwinding shadow stack

When -fcf-protection -mcet is used, I got

FAIL: g++.dg/eh/sighandle.C

(gdb) bt
 #0  _Unwind_RaiseException (exc=exc@entry=0x416ed0)
    at /export/gnu/import/git/sources/gcc/libgcc/unwind.inc:140
 #1  0x00007ffff7d9936b in __cxxabiv1::__cxa_throw (obj=<optimized out>,
    tinfo=0x403dd0 <typeinfo for int@@CXXABI_1.3>, dest=0x0)
    at /export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++/eh_throw.cc:90
 #2  0x0000000000401255 in sighandler (signo=11, si=0x7fffffffd6f8,
    uc=0x7fffffffd5c0)
    at /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/eh/sighandle.C:9
 #3  <signal handler called> <<<< Signal frame which isn't on shadow stack
 #4  dosegv ()
    at /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/eh/sighandle.C:14
 #5  0x00000000004012e3 in main ()
    at /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/eh/sighandle.C:30
(gdb) p frames
$6 = 5
(gdb)

frame count should be 4, not 5.  This patch skips signal frames when
unwinding shadow stack.

gcc/testsuite/

PR libgcc/85334
* g++.dg/torture/pr85334.C: New test.

libgcc/

PR libgcc/85334
* unwind-generic.h (_Unwind_Frames_Increment): New.
* config/i386/shadow-stack-unwind.h (_Unwind_Frames_Increment):
Likewise.
* unwind.inc (_Unwind_RaiseException_Phase2): Increment frame
count with _Unwind_Frames_Increment.
(_Unwind_ForcedUnwind_Phase2): Likewise.

From-SVN: r259502

6 years agoPR c++/85464 - missing location for -Wignored-qualifiers diagnostic
Jonathan Wakely [Thu, 19 Apr 2018 17:00:37 +0000 (18:00 +0100)]
PR c++/85464 - missing location for -Wignored-qualifiers diagnostic

* g++.dg/diagnostic/pr85464.C: New.

From-SVN: r259501

6 years agoi386: Add save_stack_nonlocal and restore_stack_nonlocal
H.J. Lu [Thu, 19 Apr 2018 16:36:34 +0000 (16:36 +0000)]
i386: Add save_stack_nonlocal and restore_stack_nonlocal

Define STACK_SAVEAREA_MODE to hold both shadow stack and stack pointers.
Replace builtin_setjmp_setup and builtin_longjmp with save_stack_nonlocal
and restore_stack_nonlocal to support both builtin setjmp/longjmp as well
as non-local goto in nested functions.

gcc/

PR target/85397
* config/i386/i386.h (STACK_SAVEAREA_MODE): New.
* config/i386/i386.md (builtin_setjmp_setup): Removed.
(builtin_longjmp): Likewise.
(save_stack_nonlocal): New pattern.
(restore_stack_nonlocal): Likewise.

gcc/testsuite/

PR target/85397
* gcc.dg/torture/pr85397-1.c: New test.
* gcc.target/i386/cet-sjlj-6a.c: Adjusted.
* gcc.target/i386/cet-sjlj-6b.c: Likewise.

From-SVN: r259500

6 years agox86/cet: Properly output labels in property note section
H.J. Lu [Thu, 19 Apr 2018 15:24:53 +0000 (15:24 +0000)]
x86/cet: Properly output labels in property note section

Replace ASM_OUTPUT_LABEL with fprintf so that internal labels in property
note section are unchanged by -fleading-underscore.

gcc/

PR target/85404
* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
Replace ASM_OUTPUT_LABEL with fprintf.

gcc/testsuite/

PR target/85404
* gcc.target/i386/pr85404.c: New test.

From-SVN: r259498

6 years agolibgcc/CET: Add _CET_ENDBR to __stack_split_initialize
H.J. Lu [Thu, 19 Apr 2018 15:22:27 +0000 (15:22 +0000)]
libgcc/CET: Add _CET_ENDBR to __stack_split_initialize

Program received signal SIGSEGV, Segmentation fault.
__stack_split_initialize ()
    at /export/gnu/import/git/sources/gcc/libgcc/config/i386/morestack.S:751
751 leaq -16000(%rsp),%rax # We should have at least 16K.
Missing separate debuginfos, use: dnf debuginfo-install libgcc-8.0.1-0.21.0.fc28.x86_64
(gdb) disass
Dump of assembler code for function __stack_split_initialize:
=> 0x0000000000402858 <+0>: lea    -0x3e80(%rsp),%rax
   0x0000000000402860 <+8>: mov    %rax,%fs:0x70
   0x0000000000402869 <+17>: sub    $0x8,%rsp
   0x000000000040286d <+21>: mov    %rsp,%rdi
   0x0000000000402870 <+24>: mov    $0x3e80,%esi
   0x0000000000402875 <+29>: callq  0x401810 <__generic_morestack_set_initial_sp>
   0x000000000040287a <+34>: add    $0x8,%rsp
   0x000000000040287e <+38>: retq
End of assembler dump.
(gdb)

This patch adds the missing ENDBR to __stack_split_initialize.

PR libgcc/85379
* config/i386/morestack.S (__stack_split_initialize): Add
_CET_ENDBR.

From-SVN: r259497

6 years agox86: Enable -fcf-protection with multi-byte NOPs
H.J. Lu [Thu, 19 Apr 2018 15:15:04 +0000 (15:15 +0000)]
x86: Enable -fcf-protection with multi-byte NOPs

-fcf-protection -mcet can't be used with IFUNC features, like symbol
multiversioning or target clone, since IBT/SHSTK are applied to the whole
program and they may be disabled in some functions.  But -fcf-protection
is implemented with multi-byte NOPs on all 64-bit processors as well as
32-bit processors starting with Pentium Pro.  If -fcf-protection requires
-mcet, IFUNC features can't be used on Linux when -fcf-protection is
enabled by default.

This patch changes -fcf-protection to implement indirect branch and
return address tracking with multi-byte NOPs.  -mibt and -mshstk are
changed to only enable CET built-in functions.  CET tests are updated
to allow -fcf-protection without -mibt, -mshstk and -mcet on x86.
-fcf-protection=none are also added to tests which fail with
-fcf-protection so that -fcf-protection can be added to RUNTESTFLAGS
to verify -fcf-protection implementation.

gcc/

PR target/85417
* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK.
* config/i386/i386-c.c (ix86_target_macros_internal): Also
define __IBT__ and __SHSTK__ for -fcf-protection.
* config/i386/i386.c (pass_insert_endbranch::gate): Don't check
TARGET_IBT.
(ix86_trampoline_init): Likewise.
(x86_output_mi_thunk): Likewise.
(ix86_notrack_prefixed_insn_p): Likewise.
(ix86_option_override_internal): Don't disallow -fcf-protection.
* config/i386/i386.md (rdssp<mode>): Also enable for
-fcf-protection.
(incssp<mode>): Likewise.
(nop_endbr): Likewise.
* config/i386/i386.opt (mcet): Change help message to built-in
functions only.
(mibt): Likewise.
(mshstk): Likewise.
* doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition
on -fcf-protection.  Change -mcet, -mibt and -mshstk to only
enable CET built-in functions.

gcc/testsuite/

PR target/85417
* c-c++-common/attr-nocf-check-1.c: Compile with
-fcf-protection=none.
* c-c++-common/attr-nocf-check-3.c: Likewise.
* gcc.dg/march-generic.c: Likewise.
* gcc.target/i386/align-limit.c: Likewise.
* gcc.target/i386/cet-notrack-icf-1.c: Likewise.
* gcc.target/i386/cet-notrack-icf-3.c: Likewise.
* gcc.target/i386/cet-property-2.c: Likewise.
* gcc.target/i386/ret-thunk-26.c: Likewise.
* c-c++-common/fcf-protection-1.c: Remove dg-error for x86
targets.
* c-c++-common/fcf-protection-2.c: Likewise.
* c-c++-common/fcf-protection-3.c: Likewise.
* c-c++-common/fcf-protection-5.c: Likewise.
* c-c++-common/fcf-protection-6.c: Likewise.
* c-c++-common/fcf-protection-7.c: Likewise.
* gcc.target/i386/cet-label-3.c: New test.
* gcc.target/i386/cet-property-3.c: Likewise.
* gcc.target/i386/cet-sjlj-7.c: Likewise.
* gcc.target/i386/pr85417-1.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-7.c: Also expect
__x86_indirect_thunk_nt_(r|e)ax
* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
* gcc.target/i386/pr85403.c: Remove dg-error,

From-SVN: r259496