platform/upstream/gcc.git
6 years agoPR c/81117 - Improve buffer overflow checking in strncpy - part 1
Martin Sebor [Mon, 14 Aug 2017 18:35:13 +0000 (18:35 +0000)]
PR c/81117 - Improve buffer overflow checking in strncpy - part 1

gcc/ChangeLog:

        PR c/81117
* tree-diagnostic.c (default_tree_printer): Handle %G.
* gimple-pretty-print.h (percent_G_format): Declare new function.
* gimple-pretty-print.c (percent_G_format): Define.
* tree-pretty-print.c (percent_K_format): Add argument.

gcc/c/ChangeLog:

PR c/81117
* c-objc-common.c (c_objc_common_init): Handle 'G'.

gcc/c-family/ChangeLog:

PR c/81117
* c-format.h (T89_G): New macro.
* c-format.c (local_gcall_ptr_node): New variable.
(init_dynamic_diag_info): Initialize it.

gcc/cp/ChangeLog:

PR c/81117
* error.c (cp_printer): Handle 'G'.

gcc/testsuite/ChangeLog:

PR c/81117
* gcc.dg/format/gcc_diag-10.c: Exercise %G.

From-SVN: r251098

6 years agoucnid-5.c: Skip on AIX.
David Edelsohn [Mon, 14 Aug 2017 18:04:31 +0000 (18:04 +0000)]
ucnid-5.c: Skip on AIX.

        * gcc.dg/ucnid-5.c: Skip on AIX.
        * gcc.target/powerpc/pr79909.c: Skip on AIX.

From-SVN: r251097

6 years agoPR translation/79998 - typo in diagnostic "specified bound %wu"
Martin Sebor [Mon, 14 Aug 2017 16:47:40 +0000 (16:47 +0000)]
PR translation/79998 - typo in diagnostic "specified bound %wu"

gcc/ChangeLog:
* gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
Remove a stray space.

From-SVN: r251096

6 years agore PR target/46091 (missed optimization: x86 bt/btc/bts instructions)
Uros Bizjak [Mon, 14 Aug 2017 16:42:15 +0000 (18:42 +0200)]
re PR target/46091 (missed optimization: x86 bt/btc/bts instructions)

PR target/46091
* config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
(*iordi_1_bts): Ditto.
(*xordi_1_btc): Ditto.

testsuite/ChangeLog:

PR target/46091
* gcc.target/i386/pr46091-1.c: New test.
* gcc.target/i386/pr46091-2.c: Ditto.
* gcc.target/i386/pr46091-3.c: Ditto.

From-SVN: r251095

6 years ago[AArch64] Fix longbranch test
Wilco Dijkstra [Mon, 14 Aug 2017 16:18:37 +0000 (16:18 +0000)]
[AArch64] Fix longbranch test

Fix longbranch test so it still generates long tbz branches.

    gcc/testsuite/
PR target/81643
* gcc.target/aarch64/long_branch_1.c: Improve testcase.

From-SVN: r251094

6 years agore PR target/79845 (rs6000: make code in rs6000.c more i18n-friendly)
Bill Schmidt [Mon, 14 Aug 2017 14:26:33 +0000 (14:26 +0000)]
re PR target/79845 (rs6000: make code in rs6000.c more i18n-friendly)

[gcc]

2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79845
* config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Likewise.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
quoted strings, and make more translator-friendly.
(darwin_rs6000_override_options): Likewise.
(rs6000_option_override_internal): Likewise.
(rs6000_return_in_memory): Fix overlong line.
(init_cmulative_args): Use quoted strings, and make more
translator-friendly.
(rs6000_pass_by_reference): Fix overlong line.
(def_builtin): Use quoted strings.
(altivec_expand_predicate_builtin): Use quoted strings, and make
more translator-friendly.
(htm_expand_builtin): Use quoted strings.
(cpu_expand_builtin): Use quoted strings, and make more
translator-friendly.
(altivec_expand_builtin): Likewise.
(paired_expand_predicate_builtin): Likewise.
(rs6000_invalid_builtin): Likewise.
(builtin_function_type): Use quoted strings.
(rs6000_expand_split_stack_prologue): Use quoted strings, and make
more translator-friendly.
(rs6000_trampoline_init): Likewise.
(rs6000_handle_altivec_attribute): Likewise.
(rs6000_inner_target_options): Use quoted strings.
(rs6000_disable_incompatible_switches): Likewise.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
strings, and make more translator-friendly.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.

[gcc/testsuite]

2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/79845
* g++.dg/ext/altivec-cell-5.C: Adjust diagnostic strings.
* gcc.target/powerpc/altivec-cell-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-7.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-11.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
* gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-3.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-6.c: Likewise.
* gcc.target/powerpc/bfp/vec-insert-exp-7.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
* gcc.target/powerpc/byte-in-either-range-1.c: Likewise.
* gcc.target/powerpc/byte-in-range-1.c: Likewise.
* gcc.target/powerpc/byte-in-set-1.c: Likewise.
* gcc.target/powerpc/byte-in-set-2.c: Likewise.
* gcc.target/powerpc/cmpb-3.c: Likewise.
* gcc.target/powerpc/crypto-builtin-2.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-1.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-11.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-16.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-21.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-26.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-31.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-36.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-41.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-46.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-51.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-56.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-6.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-61.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-66.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-71.c: Likewise.
* gcc.target/powerpc/dfp/dtstsfi-76.c: Likewise.
* gcc.target/powerpc/no-r11-3.c: Likewise.
* gcc.target/powerpc/pr80098-1.c: Likewise.
* gcc.target/powerpc/pr80098-2.c: Likewise.
* gcc.target/powerpc/pr80098-3.c: Likewise.
* gcc.target/powerpc/pr80098-4.c: Likewise.
* gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-12.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise.
* gcc.target/powerpc/vsu/vec-xlx-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-xrx-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-13.c: Likewise.

From-SVN: r251092

6 years agore PR tree-optimization/81799 (ICE on valid code at -O3: verify_gimple failed)
Bin Cheng [Mon, 14 Aug 2017 11:46:03 +0000 (11:46 +0000)]
re PR tree-optimization/81799 (ICE on valid code at -O3: verify_gimple failed)

PR tree-optimization/81799
* tree-loop-distribution.c (version_loop_by_alias_check): Force
cond_expr to simple gimple operand.

gcc/testsuite
* gcc.dg/tree-ssa/pr81799.c: New.

From-SVN: r251088

6 years agoAdd check_effective_target_autoincdec.
Wilco Dijkstra [Mon, 14 Aug 2017 11:18:50 +0000 (11:18 +0000)]
Add check_effective_target_autoincdec.

Add check_effective_target_autoincdec that returns true if a target
runs the auto_inc_dec optimization pass.

    gcc/
* doc/sourcebuild.texi (autoincdec): Add autoincdec description.

    gcc/testsuite/
PR middle-end/46932
* gcc.dg/pr46932.c: Use dg-require-effective-target autoincdec.
* lib/target-supports.exp: Add check_effective_target_autoincdec.

From-SVN: r251087

6 years ago[AArch64] Fix dbl_mov_immediate_1.c test
Szabolcs Nagy [Mon, 14 Aug 2017 10:28:45 +0000 (10:28 +0000)]
[AArch64] Fix dbl_mov_immediate_1.c test

gcc/testsuite:

* gcc.target/aarch64/dbl_mov_immediate_1.c: Add
-mno-pc-relative-literal-loads.

From-SVN: r251086

6 years agore PR target/81754 (Building of cross compiler avr-elf is broken)
Georg-Johann Lay [Mon, 14 Aug 2017 09:14:16 +0000 (09:14 +0000)]
re PR target/81754 (Building of cross compiler avr-elf is broken)

gcc/
PR target/81754
PR target/81268
* config/avr/avr.opt (mgas-isr-prologues): New Var
avr_gasisr_prologues.
* config/avr/avr.md (gasisr, *gasisr): Use it instead of
TARGET_GASISR_PROLOGUES.
* config/avr/avr.c (avr_option_override): Same.
(avr_pass_pre_proep::execute): Same.

From-SVN: r251085

6 years agoDaily bump.
GCC Administrator [Mon, 14 Aug 2017 00:17:20 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r251080

6 years agoi386: Replace frame pointer with stack pointer in debug insns
H.J. Lu [Sun, 13 Aug 2017 18:31:39 +0000 (11:31 -0700)]
i386: Replace frame pointer with stack pointer in debug insns

When we eliminate frame pointer, we should also replace frame pointer
with stack pointer - UNITS_PER_WORD in debug insns.  This patch fixed:

FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b1 == 9
FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b2 == 73
FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b3 == 585
FAIL: gcc.dg/guality/pr58791-5.c   -Os  line pr58791-5.c:20 b4 == 4681
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s1.f == 5.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s1.g == 6.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:17 s2.g == 6.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s1.f == 5.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s1.g == 6.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s2.f == 5.0
FAIL: gcc.dg/guality/pr59776.c   -Os  line pr59776.c:20 s2.g == 6.0

on Linux/i386.

PR target/81820
* config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
frame pointer with stack pointer - UNITS_PER_WORD in debug insns.

From-SVN: r251076

6 years agoi386.md (*load_tp_<mode>): Redefine as define_insn_and_split.
Uros Bizjak [Sun, 13 Aug 2017 16:08:25 +0000 (18:08 +0200)]
i386.md (*load_tp_<mode>): Redefine as define_insn_and_split.

* config/i386/i386.md (*load_tp_<mode>): Redefine as
define_insn_and_split.  Split to a memory load from 0 in
DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
using PTR mode iterator.
(*load_tp_x32_zext"): Redefine as define_insn_and_split.
Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
(*add_tp_<mode>): Redefine as define_insn_and_split.
Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
address space.  Merge with *add_tp_x32 using PTR mode iterator.
(*add_tp_x32_zext"): Redefine as define_insn_and_split.
Split to an add with a  memory load from 0 in
DEFAULT_TLS_SEG_REG address space.

From-SVN: r251075

6 years agogfortran.texi: Document format of unformatted sequential files.
Thomas Koenig [Sun, 13 Aug 2017 10:29:34 +0000 (10:29 +0000)]
gfortran.texi: Document format of unformatted sequential files.

2017-08-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.texi: Document format of unformatted sequential files.

From-SVN: r251074

6 years agoaarch64-option-extensions.def (rdma): Fix feature string to what Linux prints out...
Andrew Pinski [Sun, 13 Aug 2017 00:18:39 +0000 (00:18 +0000)]
aarch64-option-extensions.def (rdma): Fix feature string to what Linux prints out in /proc/cpuinfo.

2017-08-12  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-option-extensions.def (rdma):
        Fix feature string to what Linux prints out in /proc/cpuinfo.

From-SVN: r251073

6 years agoDaily bump.
GCC Administrator [Sun, 13 Aug 2017 00:16:57 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251072

6 years agoRequire -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)
Rainer Orth [Sat, 12 Aug 2017 16:00:00 +0000 (16:00 +0000)]
Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)

PR testsuite/81793
* gcc.dg/pie-static-1.c: Require both static and pie support.
* gcc.dg/pie-static-2.c: Likewise.

From-SVN: r251067

6 years ago[PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inlining
Pierre-Marie de Rodat [Sat, 12 Aug 2017 09:07:12 +0000 (09:07 +0000)]
[PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inlining

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79542 reports an ICE in
dwarf2out.c for an Ada testcase built with optimization.

This crash happens during the late generation pass because
add_gnat_descriptive_type cannot find the type DIE corresponding to some
descriptive type after having tried to generate it. This is because the
DIE was generated during the early generation pass, but then pruned by
the type pruning machinery. So why was it pruned?

We are in a situation where we have cloned types (because of inlining,
IIUC) whose TYPE_NAME have non-null DECL_ABSTRACT_ORIGIN attributes. As
a consequence:

  * In modified_type_die, the "handle C typedef types" part calls
    gen_type_die on the cloned type.

  * gen_type_die matches a typedef variant, and then calls gen_decl_die
    on its TYPE_NAME, which will end up calling gen_typedef_die.

  * gen_typedef_die checks decl_ultimate_origin for this TYPE_DECL, and
    finds one, so it only adds a DW_AT_abstract_origin attribute to the
    DW_TAG_typedef DIE, but the cloned type itself does not get its own
    DIE.

  * Back in modified_type_die, the call to lookup_type_die on the type
    passed to gen_type_die returns NULL.

In the end, whole type trees, i.e. the ones referenced by
DECL_ABSTRACT_ORIGIN attributes, are never referenced from type pruning
"roots" and are thus pruned. The descriptive type at stake here is one
of them, hence the assertion failure.

This patch attemps to fix that with what seems to be the most sensible
thing to do in my opinion: updating the "handle C typedef types" part in
modified_type_die to check decl_ultimate_origin before calling
gen_type_die: if that function returns something not null, then we know
that gen_type_die/gen_typedef_die will not generate a DIE for the input
type, so we try to process the ultimate origin instead. It also updates
in a similar way gen_type_die_with_usage, assert that when
gen_typedef_die is called on nodes that have an ultimate origin, this
origin is themselves.

gcc/
PR ada/79542
* dwarf2out.c (modified_type_die): For C typedef types that have
an ultimate origin, process the ultimate origin instead of the
input type.
(gen_typedef_die): Assert that input DECLs have no ultimate
origin.
(gen_type_die_with_usage): For typedef variants that have an
ultimate origin, just call gen_decl_die on the original DECL.
(process_scope_var): Avoid creating DIEs for local typedefs and
concrete static variables.

gcc/testsuite/

PR ada/79542
* gnat.dg/debug13.ads, gnat.dg/debug13.adb: New testcase.

From-SVN: r251066

6 years ago[RS6000] linux startfile/endfile
Alan Modra [Sat, 12 Aug 2017 00:28:04 +0000 (09:58 +0930)]
[RS6000] linux startfile/endfile

These need to match the gnu-user.h definitions to support
--enable-default-pie.  Otherwise we end up linking the wrong startup
files when defaulting to PIE.

PR target/81170
PR target/81295
* config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
match gnu-user.h startfile.
(ENDFILE_LINUX_SPEC): Similarly.

From-SVN: r251065

6 years agoDaily bump.
GCC Administrator [Sat, 12 Aug 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251064

6 years agore PR c/81795 (Stray "originally defined here" when using -Wc++-compat with #pragma...
Marek Polacek [Fri, 11 Aug 2017 18:02:18 +0000 (18:02 +0000)]
re PR c/81795 (Stray "originally defined here" when using -Wc++-compat with #pragma GCC diagnostic push/pop)

PR c/81795
* c-decl.c (pushtag): Only print inform if the warning was printed.
(grokdeclarator): Likewise.

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

From-SVN: r251056

6 years agoinvoke.texi: Actually commit change about -Ofast.
Thomas Koenig [Fri, 11 Aug 2017 17:48:45 +0000 (17:48 +0000)]
invoke.texi: Actually commit change about -Ofast.

2017-08-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

* invoke.texi:  Actually commit change about -Ofast.

From-SVN: r251055

6 years agore PR fortran/60355 ([F08] constraint C519 for BIND attribute not enforced)
Thomas Koenig [Fri, 11 Aug 2017 17:45:36 +0000 (17:45 +0000)]
re PR fortran/60355 ([F08] constraint C519 for BIND attribute not enforced)

2017-08-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/60355
* resolve.c (resolve_symbol): Adjust (and reformat)
comment.  Perform check if a BIND(C) is declared
at module level regardless of whether it is typed
implicitly or not.

2017-08-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/60355
* gfortran.dg (bind_c_usage_30): New test.

From-SVN: r251054

6 years ago[PR lto/81430] Revert "Add nvptx_override_options_after_change"
Thomas Schwinge [Fri, 11 Aug 2017 15:37:14 +0000 (17:37 +0200)]
[PR lto/81430] Revert "Add nvptx_override_options_after_change"

This reverts r250421; properly fixed by r250852.

PR lto/81430
* config/nvptx/nvptx.c (nvptx_override_options_after_change):
Remove function.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.

From-SVN: r251053

6 years agoCorrect invalid ChangeLog entry
William Schmidt [Fri, 11 Aug 2017 14:11:22 +0000 (14:11 +0000)]
Correct invalid ChangeLog entry

From-SVN: r251052

6 years agoaarch64.md (mov<mode>): Change.
Tamar Christina [Fri, 11 Aug 2017 13:47:57 +0000 (13:47 +0000)]
aarch64.md (mov<mode>): Change.

2017-08-11  Tamar Christina  <tamar.christina@arm.com>
* config/aarch64/aarch64.md (mov<mode>): Change.
(*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
* config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.

From-SVN: r251051

6 years agotree-sra.c (build_access_from_expr_1): Use more precise diagnostics for storage order...
Eric Botcazou [Fri, 11 Aug 2017 13:06:43 +0000 (13:06 +0000)]
tree-sra.c (build_access_from_expr_1): Use more precise diagnostics for storage order barriers.

* tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
for storage order barriers.

From-SVN: r251050

6 years agoDo not instrument void variables with MPX (PR tree-opt/79987).
Martin Liska [Fri, 11 Aug 2017 10:01:13 +0000 (12:01 +0200)]
Do not instrument void variables with MPX (PR tree-opt/79987).

2017-08-11  Martin Liska  <mliska@suse.cz>

PR tree-opt/79987
* tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
variables of void type.
2017-08-11  Martin Liska  <mliska@suse.cz>

PR tree-opt/79987
* gcc.target/i386/mpx/pr79987.c: New test.

From-SVN: r251049

6 years agoIntroduce TARGET_SUPPORTS_ALIASES
Martin Liska [Fri, 11 Aug 2017 08:14:54 +0000 (10:14 +0200)]
Introduce TARGET_SUPPORTS_ALIASES

2017-08-11  Martin Liska  <mliska@suse.cz>

* c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
2017-08-11  Martin Liska  <mliska@suse.cz>

* asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
* cgraph.c (cgraph_node::create_same_body_alias): Likewise.
* ipa-visibility.c (can_replace_by_local_alias): Likewise.
(optimize_weakref): Likewise.
* symtab.c (symtab_node::noninterposable_alias): Likewise.
* varpool.c (varpool_node::create_extra_name_alias): Likewise.
* defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
2017-08-11  Martin Liska  <mliska@suse.cz>

* decl2.c (get_tls_init_fn): Replace ASM_OUTPUT_DEF with
TARGET_SUPPORTS_ALIASES.
(handle_tls_init): Likewise.
(note_mangling_alias): Likewise.  Remove ATTRIBUTE_UNUSED for
both arguments.
* optimize.c (can_alias_cdtor): Likewise.

From-SVN: r251048

6 years agoFix ifunc and resolver (PR ipa/81213).
Martin Liska [Fri, 11 Aug 2017 08:10:42 +0000 (10:10 +0200)]
Fix ifunc and resolver (PR ipa/81213).

2017-08-11  Martin Liska  <mliska@suse.cz>

PR ipa/81213
* config/i386/i386.c (make_resolver_func): Do complete
refactoring of the function.
2017-08-11  Martin Liska  <mliska@suse.cz>

PR ipa/81213
* gcc.target/i386/pr81213.c: New test.

From-SVN: r251047

6 years agoPR c++/81671 - nullptr_t template parameter
Jason Merrill [Fri, 11 Aug 2017 05:35:39 +0000 (01:35 -0400)]
PR c++/81671 - nullptr_t template parameter

* pt.c (convert_nontype_argument): Fix nullptr_t check.

From-SVN: r251046

6 years agoDaily bump.
GCC Administrator [Fri, 11 Aug 2017 00:17:26 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r251045

6 years agoPR libstdc++/81808 skip test if reading directory doesn't fail
Jonathan Wakely [Fri, 11 Aug 2017 00:14:57 +0000 (01:14 +0100)]
PR libstdc++/81808 skip test if reading directory doesn't fail

PR libstdc++/81808
* testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
that allow opening a directory as a FILE and reading from it.

From-SVN: r251041

6 years agore PR target/81708 (The x86 stack canary location should be customizable)
Uros Bizjak [Thu, 10 Aug 2017 20:59:10 +0000 (22:59 +0200)]
re PR target/81708 (The x86 stack canary location should be customizable)

PR target/81708
* config/i386/i386.opt (mstack-protector-guard-symbol=): New option
* config/i386/i386.c (ix86_stack_protect_guard): Use
ix86_stack_protect_guard_symbol_str to generate varible declaration.
* doc/invoke.texi (x86 Options): Document
-mstack-protector-guard-symbol= option.

testsuite/ChangeLog:

PR target/81708
* gcc.target/i386/stack-prot-sym.c: New test.

From-SVN: r251040

6 years agoRename ix86_split_stack_boundary to ix86_split_stack_guard.
Uros Bizjak [Thu, 10 Aug 2017 20:52:50 +0000 (22:52 +0200)]
Rename ix86_split_stack_boundary to ix86_split_stack_guard.

From-SVN: r251039

6 years agoPR81738: Split vect-alias-check-6.c
Richard Sandiford [Thu, 10 Aug 2017 19:58:16 +0000 (19:58 +0000)]
PR81738: Split vect-alias-check-6.c

The second loop in the testcase only vectorises if we can reverse
a vector and if aligned loads aren't required.

2017-08-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/testsuite/
PR testsuite/81738
* gcc.dg/vect/vect-alias-check-6.c: Move second function to...
* gcc.dg/vect/vect-alias-check-7.c: ...this new file.  Require
vect_perm and vect_element_align for vectorization.

From-SVN: r251037

6 years agoPR c++/81359 - Unparsed NSDMI error from SFINAE context.
Jason Merrill [Thu, 10 Aug 2017 19:55:48 +0000 (15:55 -0400)]
PR c++/81359 - Unparsed NSDMI error from SFINAE context.

* method.c (synthesized_method_walk): Don't diagnose lack of
operator delete.

From-SVN: r251036

6 years agoPR c++/80452 - Core 1579, implicit move semantics on return/throw
Jason Merrill [Thu, 10 Aug 2017 19:07:30 +0000 (15:07 -0400)]
PR c++/80452 - Core 1579, implicit move semantics on return/throw

* cp-tree.h (LOOKUP_PREFER_RVALUE): Now means that we've already
tentatively changed the lvalue to an rvalue.
* call.c (reference_binding): Remove LOOKUP_PREFER_RVALUE handling.
(build_over_call): If LOOKUP_PREFER_RVALUE, check that the first
parameter is an rvalue reference.
* except.c (build_throw): Do maybe-rvalue overload resolution twice.
* typeck.c (check_return_expr): Likewise.

From-SVN: r251035

6 years ago* config/i386/i386.c (ix86_split_stack_boundary): Add comment.
Uros Bizjak [Thu, 10 Aug 2017 18:40:39 +0000 (20:40 +0200)]
* config/i386/i386.c (ix86_split_stack_boundary): Add comment.

From-SVN: r251033

6 years agoi386-protos.h (ix86_split_stack_boundary): New prototype.
Uros Bizjak [Thu, 10 Aug 2017 18:27:40 +0000 (20:27 +0200)]
i386-protos.h (ix86_split_stack_boundary): New prototype.

* config/i386/i386-protos.h (ix86_split_stack_boundary): New prototype.
* config/i386/i386.c (ix86_split_stack_boundary): New function.
(ix86_xpand_split_stack_prologue): Call ix86_split_stack_boundary.
(ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
(i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
(optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
* config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
(split_stack_space_check): Call ix86_split_stack_boundary.

From-SVN: r251031

6 years agoprint-tree.c (print_node): Print location using the established format %s:%i%i.
Martin Sebor [Thu, 10 Aug 2017 17:43:28 +0000 (17:43 +0000)]
print-tree.c (print_node): Print location using the established format %s:%i%i.

gcc/ChangeLog:

* print-tree.c (print_node): Print location using the established
format %s:%i%i.
Replace spaces with colons.
(debug_raw, debug): Ditto.

From-SVN: r251030

6 years agoPR c++/81586 - valgrind error in output_buffer_append_r with -Wall
Martin Sebor [Thu, 10 Aug 2017 17:40:11 +0000 (17:40 +0000)]
PR c++/81586 - valgrind error in output_buffer_append_r with -Wall

gcc/ChangeLog:

PR c++/81586
* pretty-print.c (pp_format): Correct the handling of %s precision.

From-SVN: r251029

6 years agoi386: Don't use frame pointer without stack access
H.J. Lu [Thu, 10 Aug 2017 15:29:05 +0000 (15:29 +0000)]
i386: Don't use frame pointer without stack access

When there is no stack access, there is no need to use frame pointer
even if -fno-omit-frame-pointer is used and caller's frame pointer is
unchanged.

gcc/

PR target/81736
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
to ...
(ix86_finalize_stack_frame_flags): This.  Also clear
frame_pointer_needed if -fno-omit-frame-pointer is used without
stack access.
(ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
with ix86_finalize_stack_frame_flags.
(ix86_expand_epilogue): Likewise.
(ix86_expand_split_stack_prologue): Likewise.
* doc/invoke.texi: Add a note for -fno-omit-frame-pointer.

gcc/testsuite/

PR target/81736
* gcc.target/i386/pr81736-1.c: New test.
* gcc.target/i386/pr81736-2.c: Likewise.
* gcc.target/i386/pr81736-3.c: Likewise.
* gcc.target/i386/pr81736-4.c: Likewise.
* gcc.target/i386/pr81736-5.c: Likewise.
* gcc.target/i386/pr81736-6.c: Likewise.
* gcc.target/i386/pr81736-7.c: Likewise.

From-SVN: r251028

6 years agofold-vec-msum-short.c: Fix typo.
Will Schmidt [Thu, 10 Aug 2017 14:05:26 +0000 (14:05 +0000)]
fold-vec-msum-short.c: Fix typo.

[gcc/testsuite]

2017-08-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

        * gcc.target/powerpc/fold-vec-msum-short.c: Fix typo.
        * gcc.target/powerpc/fold-vec/pack-longlong.c: Mark for 64-bit only.

From-SVN: r251027

6 years agoC/C++: show pertinent open token when missing a close token
David Malcolm [Thu, 10 Aug 2017 13:22:27 +0000 (13:22 +0000)]
C/C++: show pertinent open token when missing a close token

gcc/c/ChangeLog:
* c-parser.c (c_parser_error): Rename to...
(c_parser_error_richloc): ...this, making static, and adding
"richloc" parameter, passing it to the c_parse_error call,
rather than calling c_parser_set_source_position_from_token.
(c_parser_error): Reintroduce, reimplementing in terms of the
above, converting return type from void to bool.
(class token_pair): New class.
(struct matching_paren_traits): New struct.
(matching_parens): New typedef.
(struct matching_brace_traits): New struct.
(matching_braces): New typedef.
(get_matching_symbol): New function.
(c_parser_require): Add param MATCHING_LOCATION, using it to
highlight matching "opening" tokens for missing "closing" tokens.
(c_parser_skip_until_found): Likewise.
(c_parser_static_assert_declaration_no_semi): Convert explicit
parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
class matching_parens, so that the pertinent open parenthesis is
highlighted when there are problems locating the close
parenthesis.
(c_parser_struct_or_union_specifier): Likewise.
(c_parser_typeof_specifier): Likewise.
(c_parser_alignas_specifier): Likewise.
(c_parser_simple_asm_expr): Likewise.
(c_parser_braced_init): Likewise, for matching_braces.
(c_parser_paren_condition): Likewise, for matching_parens.
(c_parser_switch_statement): Likewise.
(c_parser_for_statement): Likewise.
(c_parser_asm_statement): Likewise.
(c_parser_asm_operands): Likewise.
(c_parser_cast_expression): Likewise.
(c_parser_sizeof_expression): Likewise.
(c_parser_alignof_expression): Likewise.
(c_parser_generic_selection): Likewise.
(c_parser_postfix_expression): Likewise for cases RID_VA_ARG,
RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR,
RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary.
In case CPP_OPEN_PAREN, pass loc_open_paren to the
c_parser_skip_until_found call.
(c_parser_objc_class_definition): Use class matching_parens as
above.
(c_parser_objc_method_decl): Likewise.
(c_parser_objc_try_catch_finally_statement): Likewise.
(c_parser_objc_synchronized_statement): Likewise.
(c_parser_objc_at_property_declaration): Likewise.
(c_parser_oacc_wait_list): Likewise.
(c_parser_omp_var_list_parens): Likewise.
(c_parser_omp_clause_collapse): Likewise.
(c_parser_omp_clause_default): Likewise.
(c_parser_omp_clause_if): Likewise.
(c_parser_omp_clause_num_threads): Likewise.
(c_parser_omp_clause_num_tasks): Likewise.
(c_parser_omp_clause_grainsize): Likewise.
(c_parser_omp_clause_priority): Likewise.
(c_parser_omp_clause_hint): Likewise.
(c_parser_omp_clause_defaultmap): Likewise.
(c_parser_oacc_single_int_clause): Likewise.
(c_parser_omp_clause_ordered): Likewise.
(c_parser_omp_clause_reduction): Likewise.
(c_parser_omp_clause_schedule): Likewise.
(c_parser_omp_clause_num_teams): Likewise.
(c_parser_omp_clause_thread_limit): Likewise.
(c_parser_omp_clause_aligned): Likewise.
(c_parser_omp_clause_linear): Likewise.
(c_parser_omp_clause_safelen): Likewise.
(c_parser_omp_clause_simdlen): Likewise.
(c_parser_omp_clause_depend): Likewise.
(c_parser_omp_clause_map): Likewise.
(c_parser_omp_clause_device): Likewise.
(c_parser_omp_clause_dist_schedule): Likewise.
(c_parser_omp_clause_proc_bind): Likewise.
(c_parser_omp_clause_uniform): Likewise.
(c_parser_omp_for_loop): Likewise.
(c_parser_cilk_clause_vectorlength): Likewise.
(c_parser_cilk_clause_linear): Likewise.
(c_parser_transaction_expression): Likewise.
* c-parser.h (c_parser_require): Add param matching_location with
default UNKNOWN_LOCATION.
(c_parser_error): Convert return type from void to bool.
(c_parser_skip_until_found): Add param matching_location with
default UNKNOWN_LOCATION.

gcc/c-family/ChangeLog:
* c-common.c (c_parse_error): Add rich_location * param, using it
rather implicitly using input_location.
* c-common.h (c_parse_error): Add rich_location * param.

gcc/cp/ChangeLog:
* parser.c (cp_parser_error): Update for new param to
c_parse_error.
(class token_pair): New class.
(struct matching_paren_traits): New struct.
(matching_parens): New typedef.
(struct matching_brace_traits): New struct.
(matching_braces): New typedef.
(cp_parser_statement_expr): Convert explicit parsing of
CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of
class matching_parens, so that the pertinent open parenthesis is
highlighted when there are problems locating the close
parenthesis.
(cp_parser_primary_expression): Likewise.
(cp_parser_compound_literal_p): Remove consumption of opening
paren.
(cp_parser_postfix_expression): Convert explicit parsing of
CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use matching parens, as
above.  Use it to consume the opening paren previously consumed by
cp_parser_compound_literal_p.
(cp_parser_parenthesized_expression_list): Likewise.
(cp_parser_unary_expression): Likewise.
(cp_parser_new_expression): Likewise.
(cp_parser_cast_expression): Likewise.
(cp_parser_builtin_offsetof): Likewise.
(cp_parser_trait_expr): Likewise.
(cp_parser_lambda_declarator_opt): Likewise.
(cp_parser_lambda_body): Likewise, for matching_braces.
(cp_parser_compound_statement): Likewise.
(cp_parser_selection_statement): Likewise, for matching_parens.
(cp_parser_iteration_statement): Likewise.
(cp_parser_already_scoped_statement): Likewise, for
matching_braces.
(cp_parser_linkage_specification): Likewise.
(cp_parser_static_assert): Likewise, for matching_parens.
(cp_parser_decltype): Likewise.
(cp_parser_operator): Likewise.
(cp_parser_enum_specifier): Likewise.
(cp_parser_namespace_definition): Likewise.
(cp_parser_direct_declarator): Likewise.
(cp_parser_braced_list): Likewise.
(cp_parser_class_specifier_1): Likewise, for matching_braces.
(cp_parser_constant_initializer): Likewise.
(cp_parser_noexcept_specification_opt): Likewise, for
matching_parens.
(cp_parser_exception_specification_opt): Likewise.
(cp_parser_handler): Likewise.
(cp_parser_asm_specification_opt): Likewise.
(cp_parser_asm_operand_list): Likewise.
(cp_parser_gnu_attributes_opt): Likewise.
(cp_parser_std_attribute_spec): Likewise.
(cp_parser_requirement_parameter_list): Likewise.
(cp_parser_requirement_body): Likewise, for matching_braces.
(cp_parser_compound_requirement): Likewise.
(cp_parser_template_introduction): Likewise.
(cp_parser_sizeof_pack): Likewise, for matching_parens.
(cp_parser_sizeof_operand): Likewise; use it to consume the
opening paren previously consumed by cp_parser_compound_literal_p.
(get_matching_symbol): New function.
(cp_parser_required_error): Add param "matching_location".  Remove
calls to cp_parser_error, instead setting a non-NULL gmsgid, and
handling it if set by calling c_parse_error, potentially with a
secondary location if matching_location was set.
(cp_parser_require): Add param "matching_location", with a default
value of UNKNOWN_LOCATION.
(cp_parser_require_keyword): Update for new param of
cp_parser_required_error.
(cp_parser_objc_encode_expression): Update to class matching_parens
as above.
(cp_parser_objc_defs_expression): Likewise.
(cp_parser_objc_protocol_expression): Likewise.
(cp_parser_objc_selector_expression): Likewise.
(cp_parser_objc_typename): Likewise.
(cp_parser_objc_superclass_or_category): Likewise.
(cp_parser_objc_try_catch_finally_statement): Likewise.
(cp_parser_objc_synchronized_statement): Likewise.
(cp_parser_objc_at_property_declaration): Likewise.
(cp_parser_oacc_single_int_clause): Likewise.
(cp_parser_oacc_shape_clause): Likewise.
(cp_parser_omp_clause_collapse): Likewise.
(cp_parser_omp_clause_default): Likewise.
(cp_parser_omp_clause_final): Likewise.
(cp_parser_omp_clause_if): Likewise.
(cp_parser_omp_clause_num_threads): Likewise.
(cp_parser_omp_clause_num_tasks): Likewise.
(cp_parser_omp_clause_grainsize): Likewise.
(cp_parser_omp_clause_priority): Likewise.
(cp_parser_omp_clause_hint): Likewise.
(cp_parser_omp_clause_defaultmap): Likewise.
(cp_parser_omp_clause_ordered): Likewise.
(cp_parser_omp_clause_schedule): Likewise.
(cp_parser_omp_clause_num_teams): Likewise.
(cp_parser_omp_clause_thread_limit): Likewise.
(cp_parser_omp_clause_aligned): Likewise.
(cp_parser_omp_clause_linear): Likewise.
(cp_parser_omp_clause_safelen): Likewise.
(cp_parser_omp_clause_simdlen): Likewise.
(cp_parser_omp_clause_depend): Likewise.
(cp_parser_omp_clause_device): Likewise.
(cp_parser_omp_clause_dist_schedule): Likewise.
(cp_parser_oacc_clause_async): Likewise.
(cp_parser_omp_critical): Likewise.
(cp_parser_omp_for_loop): Likewise.
(cp_parser_omp_sections_scope): Likewise.
(cp_parser_omp_declare_reduction_exprs): Likewise.
Update for new param to cp_parser_required_error.
(cp_parser_oacc_routine): Likewise.
(cp_parser_transaction_expression): Likewise.
(cp_parser_cilk_simd_vectorlength): Likewise.

gcc/testsuite/ChangeLog:
* c-c++-common/missing-close-symbol.c: New test case.
* c-c++-common/missing-symbol.c: New test case.
* gcc.dg/unclosed-init.c: New test case.
* g++.dg/diagnostic/unclosed-extern-c.C: New test case.
* g++.dg/diagnostic/unclosed-function.C: New test case.
* g++.dg/diagnostic/unclosed-namespace.C: New test case.
* g++.dg/diagnostic/unclosed-struct.C: New test case.
* g++.dg/parse/pragma2.C: Update to reflect movement of the
"expected identifier" error.

From-SVN: r251026

6 years agooptions.c (set_dec_flags): Only set legacy standards when value is not zero.
Fritz Reese [Thu, 10 Aug 2017 12:52:01 +0000 (12:52 +0000)]
options.c (set_dec_flags): Only set legacy standards when value is not zero.

2017-08-10  Fritz Reese <fritzoreese@gmail.com>

    gcc/fortran/ChangeLog:

* options.c (set_dec_flags): Only set legacy standards when value
is not zero.

From-SVN: r251025

6 years agooptions.c (set_dec_flags, [...]): Only set flag_d_lines with -fdec when not set by...
Fritz Reese [Thu, 10 Aug 2017 12:36:44 +0000 (12:36 +0000)]
options.c (set_dec_flags, [...]): Only set flag_d_lines with -fdec when not set by user.

2017-08-10  Fritz Reese <Reese-Fritz@zai.com>

    gcc/fortran/ChangeLog:

* options.c (set_dec_flags, gfc_post_options): Only set flag_d_lines
with -fdec when not set by user.

    gcc/testsuite/ChangeLog:

    gfortran.dg/
* dec_d_lines_1.f, dec_d_lines_2.f: New.

From-SVN: r251024

6 years agodecl.c (attr_seen): New static variable.
Fritz Reese [Thu, 10 Aug 2017 12:19:13 +0000 (12:19 +0000)]
decl.c (attr_seen): New static variable.

2017-08-10  Fritz Reese <Reese-Fritz@zai.com>

    gcc/fortran/ChangeLog:

* decl.c (attr_seen): New static variable.
* decl.c (variable_decl): Match %FILL in STRUCTURE body.
* gfortran.texi: Update documentation.

    gcc/testsuite/ChangeLog:

    gfortran.dg/
* dec_structure_18.f90, dec_structure_19.f90, dec_structure_20.f90,
dec_structure_21.f90: New.

From-SVN: r251023

6 years ago* objc.dg/proto-lossage-4.m: Accept int/long int as intptr_t.
Marek Polacek [Thu, 10 Aug 2017 09:26:14 +0000 (09:26 +0000)]
* objc.dg/proto-lossage-4.m: Accept int/long int as intptr_t.

From-SVN: r251022

6 years agore PR testsuite/81784 (gcc.dg/compare2.c fails starting with r250984)
Marek Polacek [Thu, 10 Aug 2017 08:54:04 +0000 (08:54 +0000)]
re PR testsuite/81784 (gcc.dg/compare2.c fails starting with r250984)

PR testsuite/81784
* gcc.dg/compare2.c: Update dg-bogus and dg-warning.

From-SVN: r251021

6 years agoFix target attribute handling (PR c++/81355).
Martin Liska [Thu, 10 Aug 2017 07:43:49 +0000 (09:43 +0200)]
Fix target attribute handling (PR c++/81355).

2017-08-10  Martin Liska  <mliska@suse.cz>

PR c++/81355
* c-attribs.c (handle_target_attribute):
Report warning for an empty string argument of target attribute.
2017-08-10  Martin Liska  <mliska@suse.cz>

PR c++/81355
* g++.dg/other/pr81355.C: New test.

From-SVN: r251020

6 years agore PR c/81687 (Compiler drops label in OpenMP region)
Jakub Jelinek [Thu, 10 Aug 2017 00:33:20 +0000 (02:33 +0200)]
re PR c/81687 (Compiler drops label in OpenMP region)

PR c/81687
* omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
LABEL_DECLs.
* tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
or DECL_NONLOCAL labels.
(move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
or DECL_NONLOCAL labels here.

* testsuite/libgomp.c/pr81687-1.c: New test.
* testsuite/libgomp.c/pr81687-2.c: New test.

From-SVN: r251019

6 years agojit: add gcc_jit_type_get_vector
David Malcolm [Thu, 10 Aug 2017 00:18:19 +0000 (00:18 +0000)]
jit: add gcc_jit_type_get_vector

gcc/jit/ChangeLog:
* docs/cp/topics/types.rst (Vector types): New section.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_8): New tag.
* docs/topics/types.rst (gcc_jit_context_get_type): Fix typo in
example.
(Vector types): New section.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::type::get_vector): New
method.
* jit-playback.h (gcc::jit::playback::type::get_vector): New
method.
* jit-recording.c: In namespace gcc::jit::recording::
(type::get_vector): New method.
(memento_of_get_aligned::write_reproducer): Fix typo
in leading comment.
(memento_of_get_vector::replay_into): New method.
(memento_of_get_vector::make_debug_string): New method.
(memento_of_get_vector::write_reproducer): New method.
* jit-recording.h: In namespace gcc::jit::recording::
(type::get_vector): New
 method.
(class memento_of_get_vector): New class.
* libgccjit++.h (gccjit::type::get_vector): New method.
* libgccjit.c (gcc_jit_type_get_vector): New public entrypoint.
* libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_type_get_vector): New
define.
(gcc_jit_type_get_vector): New decl.
* libgccjit.map (LIBGCCJIT_ABI_8): New ABI tag.

gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add note about
test-vector-types.cc.
* jit.dg/test-error-gcc_jit_type_get_vector-bad-type.c: New test
case.
* jit.dg/test-error-gcc_jit_type_get_vector-non-power-of-two.c:
New test case.
* jit.dg/test-vector-types.cc: New test case.

From-SVN: r251018

6 years agoDaily bump.
GCC Administrator [Thu, 10 Aug 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251017

6 years agovect-xorsign_exec.c: Add --save-temps to the options passed.
Andrew Pinski [Thu, 10 Aug 2017 00:05:30 +0000 (00:05 +0000)]
vect-xorsign_exec.c: Add --save-temps to the options passed.

2017-08-09  Andrew Pinski  <apinski@cavium.com>

        * gcc.target/aarch64/vect-xorsign_exec.c: Add
        --save-temps to the options passed.

From-SVN: r251013

6 years agoThis time with the file added.
Segher Boessenkool [Wed, 9 Aug 2017 21:52:30 +0000 (23:52 +0200)]
This time with the file added.

Testcase for PR81423

gcc/testsuite/
PR rtl-optimization/81423
* gcc.c-torture/execute/pr81423.c: New testcase.

From-SVN: r251011

6 years agopacked8.C: Remove -mstructure-size- boundary option and fix comment.
Michael Collison [Wed, 9 Aug 2017 21:46:10 +0000 (21:46 +0000)]
packed8.C: Remove -mstructure-size- boundary option and fix comment.

2017-08-09  Michael Collison  <michael.collison@arm.com>

* testsuite/g++.dg/ext/packed8.C: Remove -mstructure-size-
boundary option and fix comment.
* testsuite/g++.dg/init/array16.C: Remove -mstructure-size-
boundary option and fix comment.
* testsuite/g++.dg/other/crash-4.C: Remove -mstructure-size-
boundary option and fix comment.
* testsuite/gcc.dg/builtin-stringop-chk-1.c: Remove
-mstructure-size boundary option.

From-SVN: r251010

6 years agoFix test for __has_unique_object_representations support in Clang
Jonathan Wakely [Wed, 9 Aug 2017 21:38:05 +0000 (22:38 +0100)]
Fix test for __has_unique_object_representations support in Clang

* include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP):
Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use
__is_identifier to set it.

From-SVN: r251009

6 years agoFix test for __is_aggregate support in Clang
Katsuhiko Nishimra [Wed, 9 Aug 2017 21:37:52 +0000 (21:37 +0000)]
Fix test for __is_aggregate support in Clang

2017-08-09  Katsuhiko Nishimra  <ktns.87@gmail.com>

* include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use
__is_identifier instead of __has_builtin.

From-SVN: r251008

6 years agors6000.c (rs6000_option_override_internal): Add blurb to indicate when early gimple...
Will Schmidt [Wed, 9 Aug 2017 21:28:39 +0000 (21:28 +0000)]
rs6000.c (rs6000_option_override_internal): Add blurb to indicate when early gimple folding has been disabled.

[gcc]

        2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

        * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
        to indicate when early gimple folding has been disabled.
        (rs6000_gimple_fold_builtin): Add debug content.
        (rs6000_invalid_builtin): Fix whitespace.
        (rs6000_expand_builtin): Fix whitespace.
        * config/rs6000/rs6000.opt: Add option for -mfold-gimple.

From-SVN: r251007

6 years agocompiler: fix buglet in lshift type determination
Ian Lance Taylor [Wed, 9 Aug 2017 21:24:00 +0000 (21:24 +0000)]
compiler: fix buglet in lshift type determination

    It's possible to construct an lshift expression using unsafe.Sizeof
    that is technically a compile-time constant but can't be evaluated
    without going through backend methods. In this case, insure that
    Type::make_non_abstract_type is called on the numeric operand of the
    shift (as opposed to leaving as abstract), to avoid an assert later on
    in the compiler flow.

    Fixes golang/go#21372.

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

From-SVN: r251006

6 years agors6000: Use SAVE_MULTIPLE only if we restore what it saves (PR80938)
Segher Boessenkool [Wed, 9 Aug 2017 21:08:33 +0000 (23:08 +0200)]
rs6000: Use SAVE_MULTIPLE only if we restore what it saves (PR80938)

We can have SAVE_MULTIPLE while we do not have REST_MULTIPLE.  If the
inline restore does not restore all registers, the CFI for the save
and restore can conflict if things are shrink-wrapped.

We could restore all registers that are saved (not ideal), or emit
the CFI notes to say we did (which will work fine, but is also not
so great); instead, let's not save the registers that are unused.

PR target/80938
* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
SAVE_MULTIPLE if not all the registers that saves, should be saved.

From-SVN: r251005

6 years agoTestcase for PR81423
Segher Boessenkool [Wed, 9 Aug 2017 21:05:45 +0000 (23:05 +0200)]
Testcase for PR81423

gcc/testsuite/
PR rtl-optimization/81423
* gcc.c-torture/execute/pr81423.c: New testcase.

From-SVN: r251004

6 years agoAdd falkor pipeline description.
Jim Wilson [Wed, 9 Aug 2017 20:58:35 +0000 (20:58 +0000)]
Add falkor pipeline description.

gcc/
* config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
(qdf24xx): Likewise.
* config/aarch64/aarch64.md: Include falkor.md.
* config/aarch64/falkor.md: New.

From-SVN: r251003

6 years agoPR c++/81525 - wrong constant value with generic lambda
Jason Merrill [Wed, 9 Aug 2017 19:21:49 +0000 (15:21 -0400)]
PR c++/81525 - wrong constant value with generic lambda

* pt.c (tsubst_decl) [VAR_DECL]: Avoid clobbering auto.
(tsubst_copy) [VAR_DECL]: Handle auto.

From-SVN: r250999

6 years agofold-vec-pack-double.c: New.
Will Schmidt [Wed, 9 Aug 2017 19:11:03 +0000 (19:11 +0000)]
fold-vec-pack-double.c: New.

[gcc/testsuite]

2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-pack-double.c: New.
* gcc.target/powerpc/fold-vec-pack-int.c: New.
* gcc.target/powerpc/fold-vec-pack-longlong.c: New.
* gcc.target/powerpc/fold-vec-pack-short.c: New.

From-SVN: r250998

6 years agofold-vec-msum-char.c: New.
Will Schmidt [Wed, 9 Aug 2017 19:06:35 +0000 (19:06 +0000)]
fold-vec-msum-char.c: New.

[gcc/testsuite]

2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-msum-char.c: New.
* gcc.target/powerpc/fold-vec-msum-short.c: New.

From-SVN: r250997

6 years agofold-vec-madd-double.c: New.
Will Schmidt [Wed, 9 Aug 2017 19:02:41 +0000 (19:02 +0000)]
fold-vec-madd-double.c: New.

[gcc/testsuite]

2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-madd-double.c: New.
* gcc.target/powerpc/fold-vec-madd-float.c: New.
* gcc.target/powerpc/fold-vec-madd-short.c: New.

From-SVN: r250996

6 years agofold-vec-cntlz-int.c: New.
Will Schmidt [Wed, 9 Aug 2017 18:58:37 +0000 (18:58 +0000)]
fold-vec-cntlz-int.c: New.

2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-cntlz-int.c: New.
* gcc.target/powerpc/fold-vec-cntlz-char.c: New.
* gcc.target/powerpc/fold-vec-cntlz-short.c: New.
* gcc.target/powerpc/fold-vec-cntlz-longlong.c: New.

From-SVN: r250995

6 years agoPR c++/81359 - Unparsed NSDMI error from SFINAE context.
Jason Merrill [Wed, 9 Aug 2017 18:32:02 +0000 (14:32 -0400)]
PR c++/81359 - Unparsed NSDMI error from SFINAE context.

* init.c (get_nsdmi): Add complain parm.
* typeck2.c (digest_nsdmi_init): Add complain parm.
(process_init_constructor_record): Pass complain to get_nsdmi.
* pt.c (maybe_instantiate_noexcept): Add complain parm, return bool.
* method.c (get_defaulted_eh_spec): Add complain parm.  Pass it into
synthesized_method_walk.
(synthesized_method_walk): Adjust.
(walk_field_subobs): Pass complain to get_nsdmi.
(defaulted_late_check): Skip other checks if deleted.
* decl2.c (mark_used): Pass complain to maybe_instantiate_noexcept.
* call.c (build_aggr_conv): Pass complain to get_nsdmi.
* parser.c (defarg_location): New.
* error.c (location_of): Use it.

From-SVN: r250994

6 years agoPR libstdc++/81751 don't call fflush(NULL)
Jonathan Wakely [Wed, 9 Aug 2017 17:52:10 +0000 (18:52 +0100)]
PR libstdc++/81751 don't call fflush(NULL)

PR libstdc++/79820
PR libstdc++/81751
* config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)):
Call fflush on the stream instead of calling sync() while _M_cfile is
null. Restore original value of errno.
* testsuite/ext/stdio_filebuf/char/79820.cc: New.
* testsuite/ext/stdio_filebuf/char/81751.cc: New.

From-SVN: r250993

6 years agocompiler: handle >32bit exponent in Ldexp
Ian Lance Taylor [Wed, 9 Aug 2017 17:15:02 +0000 (17:15 +0000)]
compiler: handle >32bit exponent in Ldexp

    Libgo's implementation of math.Ldexp declared the libc "ldexp" as
    taking an 'int' exponent argument, which is not quite right for 64-bit
    platforms (exp arg is always int32); this could yield incorrect
    results for exponent values outside the range of Minint32/Maxint32.
    Fix by upating the type for the libc version of ldexp, and adding
    guards to screen for out-of-range exponents.

    Fixes #21323.

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

From-SVN: r250992

6 years ago* g++.dg/asan/asan.exp: Switch on *.cc tests.
Slava Barinov [Wed, 9 Aug 2017 16:26:58 +0000 (16:26 +0000)]
* g++.dg/asan/asan.exp: Switch on *.cc tests.

From-SVN: r250991

6 years agoBoolify some parameters.
Marek Polacek [Wed, 9 Aug 2017 12:34:36 +0000 (12:34 +0000)]
Boolify some parameters.

From-SVN: r250986

6 years agore PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types missing import...
Marek Polacek [Wed, 9 Aug 2017 11:28:22 +0000 (11:28 +0000)]
re PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types missing important detail)

PR c/81233
* c-typeck.c (pedwarn_init): Make the function take a variable list.
Call emit_diagnostic_valist instead of pedwarn.
(convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro.
Print the relevant types in diagnostics.

* diagnostic-core.h (emit_diagnostic_valist): Add declaration.
* diagnostic.c (emit_diagnostic): Add a comment.
(emit_diagnostic_valist): New function.

* gcc.dg/diagnostic-types-1.c: New test.
* gcc.dg/assign-warn-1.c: Update warning messages.
* gcc.dg/assign-warn-2.c: Likewise.
* gcc.dg/c90-const-expr-5.c: Likewise.
* gcc.dg/c99-const-expr-5.c: Likewise.
* gcc.dg/conv-2.c: Likewise.
* gcc.dg/init-bad-7.c: Likewise.
* gcc.dg/overflow-warn-1.c: Likewise.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/overflow-warn-4.c: Likewise.
* gcc.dg/pointer-array-atomic.c: Likewise.
* gcc.dg/pr26865.c: Likewise.
* gcc.dg/pr61162-2.c: Likewise.
* gcc.dg/pr61162.c: Likewise.
* gcc.dg/pr67730-2.c: Likewise.
* gcc.dg/pr69156.c: Likewise.
* gcc.dg/pr70174.c: Likewise.
* objc.dg/proto-lossage-4.m: Likewise.

From-SVN: r250985

6 years agore PR c/81417 (-Wsign-compare should print types being compared)
Marek Polacek [Wed, 9 Aug 2017 08:51:20 +0000 (08:51 +0000)]
re PR c/81417 (-Wsign-compare should print types being compared)

PR c/81417
* c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
build_conditional_expr.
* c-parser.c (c_parser_conditional_expression): Create locations for
EXP1 and EXP2 from their source ranges.  Pass the locations down to
build_conditional_expr.
* c-tree.h (build_conditional_expr): Update declaration.
* c-typeck.c (build_conditional_expr): Add location_t parameters.
For -Wsign-compare, also print the types.

* input.c (make_location): New overload.
* input.h (make_location): Declare.

* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
a call to build_conditional_expr.

* Wsign-compare-1.c: New test.
* gcc.dg/compare1.c: Adjust dg-bogus.
* gcc.dg/compare2.c: Likewise.
* gcc.dg/compare3.c: Likewise.
* gcc.dg/compare7.c: Likewise.
* gcc.dg/compare8.c: Likewise.
* gcc.dg/compare9.c: Likewise.
* gcc.dg/pr11492.c: Likewise.

From-SVN: r250984

6 years agoDaily bump.
GCC Administrator [Wed, 9 Aug 2017 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250983

6 years agoPR driver/81523: Make -static override -pie
H.J. Lu [Tue, 8 Aug 2017 22:06:21 +0000 (15:06 -0700)]
PR driver/81523: Make -static override -pie

-static and -pie together behave differently depending on whether GCC is
configured with --enable-default-pie.  On x86, "-static -pie" fails to
create executable when --enable-default-pie isn't used, but creates a
static executable when --enable-default-pie is used.  This patch makes
-static completely override -pie to create a static executable, regardless
if --enable-default-pie is used to configure GCC.

gcc/

PR driver/81523
* gcc.c (NO_PIE_SPEC): Delete.
(PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
exclusion..
(LINK_PIE_SPEC): ..to here.
(LINK_COMMAND_SPEC): Support -no-pie.
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
chain of crtbegin*.o selection, update for PIE_SPEC changes and
format.
(GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
(ENDFILE_CRTEND_SPEC): Similarly.

gcc/testsuite/

PR driver/81523
* gcc.dg/pie-7.c: New test.
* gcc.dg/pie-static-1.c: Likewise.
* gcc.dg/pie-static-2.c: Likewise.

From-SVN: r250974

6 years agore PR target/81708 (The x86 stack canary location should be customizable)
Uros Bizjak [Tue, 8 Aug 2017 16:48:46 +0000 (18:48 +0200)]
re PR target/81708 (The x86 stack canary location should be customizable)

PR target/81708
* config/i386/i386.opt (mstack-protector-guard-reg=): New option
(mstack-protector-guard-offset=): Ditto.
* config/i386/i386.c (ix86_option_override): Handle
-mstack-protector-guard-reg= and -mstack-protector-guard-offset=
options.
(ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
ix86_stack_protect_guard_offset variables.
(TARGET_STACK_PROTECT_GUARD): Always define.
* doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
and -mstack-protector-guard-offset= options.

testsuite/ChangeLog:

PR target/81708
* gcc.target/i386/stack-prot-guard.c: New test.

From-SVN: r250965

6 years agotree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle boundary case...
Bin Cheng [Tue, 8 Aug 2017 14:52:25 +0000 (14:52 +0000)]
tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle boundary case for the last candidate.

* tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
boundary case for the last candidate.

From-SVN: r250960

6 years agoinvoke.texi: Document -ftree-loop-distribution for O3.
Bin Cheng [Tue, 8 Aug 2017 14:09:10 +0000 (14:09 +0000)]
invoke.texi: Document -ftree-loop-distribution for O3.

* doc/invoke.texi: Document -ftree-loop-distribution for O3.
* opts.c (default_options_table): Add OPT_ftree_loop_distribution.

From-SVN: r250959

6 years agore PR middle-end/19706 (Recognize common Fortran usages of copysign.)
Tamar Christina [Tue, 8 Aug 2017 13:17:41 +0000 (13:17 +0000)]
re PR middle-end/19706 (Recognize common Fortran usages of copysign.)

2017-08-08  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/19706
* config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
* config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
* config/aarch64/aarch64-simd.md: Added xorsign<mode>3.

gcc/testsuite/
2017-08-08  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/xorsign.c: New.
* gcc.target/aarch64/xorsign_exec.c: New.
* gcc.target/aarch64/vect-xorsign_exec.c: New.

From-SVN: r250957

6 years agore PR middle-end/19706 (Recognize common Fortran usages of copysign.)
Tamar Christina [Tue, 8 Aug 2017 13:15:44 +0000 (13:15 +0000)]
re PR middle-end/19706 (Recognize common Fortran usages of copysign.)

2017-08-08  Tamar Christina  <tamar.christina@arm.com>
    Andrew Pinski <pinskia@gmail.com>

PR middle-end/19706
* internal-fn.def (XORSIGN): New.
* optabs.def (xorsign_optab): New.
* tree-ssa-math-opts.c (is_copysign_call_with_1): New.
(convert_expand_mult_copysign): New.
(pass_optimize_widening_mul::execute): Call convert_expand_mult_copysign.

Co-Authored-By: Andrew Pinski <pinskia@gmail.com>
From-SVN: r250956

6 years agore PR tree-optimization/81354 (Segmentation fault in SSA Strength Reduction using...
Bill Schmidt [Tue, 8 Aug 2017 12:52:22 +0000 (12:52 +0000)]
re PR tree-optimization/81354 (Segmentation fault in SSA Strength Reduction using -O3)

[gcc]

2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/81354
* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
Insert on edges rather than explicitly creating landing pads.
(analyze_candidates_and_replace): Commit edge inserts.

[gcc/testsuite]

2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/81354
* g++.dg/torture/pr81354.C: New file.

From-SVN: r250955

6 years agore PR middle-end/81719 (Range-based for loop on short fixed size array generates...
Richard Biener [Tue, 8 Aug 2017 12:51:20 +0000 (12:51 +0000)]
re PR middle-end/81719 (Range-based for loop on short fixed size array generates long unrolled loop)

2017-08-08  Richard Biener  <rguenther@suse.de>

PR middle-end/81719
* tree-ssa-loop-niter.c: Include tree-dfa.h.
(expand_simple_operations): Also look through ADDR_EXPRs with
MEM_REF bases treating them as POINTER_PLUS_EXPR.

* g++.dg/tree-ssa/pr81719.C: New testcase.

From-SVN: r250954

6 years agore PR tree-optimization/81723 (fortran build doesn't terminate on 64bit targets)
Richard Biener [Tue, 8 Aug 2017 12:49:39 +0000 (12:49 +0000)]
re PR tree-optimization/81723 (fortran build doesn't terminate on 64bit targets)

2017-08-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81723
* tree-vect-slp.c (struct bst_traits): New hash traits.
(bst_fail): New global.
(vect_build_slp_tree_2): New worker, split out from ...
(vect_build_slp_tree): ... this now wrapping it with using
bst_fail set to cache SLP tree build fails.  Properly handle
max_tree_size.
(vect_analyze_slp_instance): Allocate and free bst_fail.

* gfortran.dg/pr81723.f: New testcase.

From-SVN: r250953

6 years agoscalar-extract-exp-2.c: Adjust diagnostic string.
Bill Schmidt [Tue, 8 Aug 2017 12:46:08 +0000 (12:46 +0000)]
scalar-extract-exp-2.c: Adjust diagnostic string.

2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust diagnostic
string.
* gcc.target/powerpc/bfp/scalar-extract-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-extract-sig-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-11.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise.
* gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise.
* gcc.target/powerpc/byte-in-set-2.c: Likewise.
* gcc.target/powerpc/cmpb-3.c: Likewise.
* gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise.
* gcc.target/powerpc/vsu/vec-xst-len-13.c: Likewise.

From-SVN: r250952

6 years agoICF: properly handle LABEL_DECLs (PR tree-opt/81696).
Martin Liska [Tue, 8 Aug 2017 11:59:23 +0000 (13:59 +0200)]
ICF: properly handle LABEL_DECLs (PR tree-opt/81696).

2017-08-08  Martin Liska  <mliska@suse.cz>

PR tree-opt/81696
* ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
LABEL_DECLs that can be from a different function.
2017-08-08  Martin Liska  <mliska@suse.cz>

PR tree-opt/81696
* gcc.dg/ipa/pr81696.c: New test.

From-SVN: r250951

6 years agore PR tree-optimization/81744 (ICE: verify_ssa failed, at tree-ssa.c:1186)
Bin Cheng [Tue, 8 Aug 2017 11:32:05 +0000 (11:32 +0000)]
re PR tree-optimization/81744 (ICE: verify_ssa failed, at tree-ssa.c:1186)

PR tree-optimization/81744
* tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
loop's number of iterations.

gcc/testsuite
* gcc.dg/tree-ssa/pr81744.c: New.

From-SVN: r250950

6 years agoAdd missing include of attribs.h in lto.c
Tom de Vries [Tue, 8 Aug 2017 10:40:42 +0000 (10:40 +0000)]
Add missing include of attribs.h in lto.c

2017-08-08  Tom de Vries  <tom@codesourcery.com>

* lto.c: Include attribs.h.

From-SVN: r250949

6 years agore PR c++/81607 (Conditional operator: "type mismatch in shift expression" error)
Marek Polacek [Tue, 8 Aug 2017 08:55:43 +0000 (08:55 +0000)]
re PR c++/81607 (Conditional operator: "type mismatch in shift expression" error)

PR c++/81607
* cp-gimplify.c (cp_fold): If folding exposed a branch of
a COND_EXPR, convert it to the original type of the COND_EXPR, if
they differ.

* g++.dg/other/bitfield6.C: New test.

From-SVN: r250948

6 years agotrans.c: Include header files.
Martin Liska [Tue, 8 Aug 2017 04:46:51 +0000 (06:46 +0200)]
trans.c: Include header files.

.
2017-08-08  Martin Liska  <mliska@suse.cz>

* gcc-interface/trans.c: Include header files.
2017-08-08  Martin Liska  <mliska@suse.cz>

* objc-gnu-runtime-abi-01.c: Include header files.
* objc-next-runtime-abi-01.c: Likewise.
* objc-next-runtime-abi-02.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* asan.c: Include header files.
* attribs.c (build_decl_attribute_variant): New function moved
from tree.[ch].
(build_type_attribute_qual_variant): Likewise.
(cmp_attrib_identifiers): Likewise.
(simple_cst_list_equal): Likewise.
(omp_declare_simd_clauses_equal): Likewise.
(attribute_value_equal): Likewise.
(comp_type_attributes): Likewise.
(build_type_attribute_variant): Likewise.
(lookup_ident_attribute): Likewise.
(remove_attribute): Likewise.
(merge_attributes): Likewise.
(merge_type_attributes): Likewise.
(merge_decl_attributes): Likewise.
(merge_dllimport_decl_attributes): Likewise.
(handle_dll_attribute): Likewise.
(attribute_list_equal): Likewise.
(attribute_list_contained): Likewise.
* attribs.h (lookup_attribute): New function moved from tree.[ch].
(lookup_attribute_by_prefix): Likewise.
* bb-reorder.c: Include header files.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfgexpand.c: Likewise.
* cgraph.c: Likewise.
* cgraphunit.c: Likewise.
* convert.c: Likewise.
* dwarf2out.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gimple-expr.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple.c: Likewise.
* gimplify.c: Likewise.
* hsa-common.c: Likewise.
* hsa-gen.c: Likewise.
* internal-fn.c: Likewise.
* ipa-chkp.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-fnsummary.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-visibility.c: Likewise.
* ipa.c: Likewise.
* lto-cgraph.c: Likewise.
* omp-expand.c: Likewise.
* omp-general.c: Likewise.
* omp-low.c: Likewise.
* omp-offload.c: Likewise.
* omp-simd-clone.c: Likewise.
* opts-global.c: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* sancov.c: Likewise.
* sanopt.c: Likewise.
* symtab.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-chkp.c: Likewise.
* tree-eh.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-object-size.c: Likewise.
* tree-parloops.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tsan.c: Likewise.
* ubsan.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* tree.c: Remove functions moved to attribs.[ch].
* tree.h: Likewise.
* config/aarch64/aarch64.c: Add attrs.h header file.
* config/alpha/alpha.c: Likewise.
* config/arc/arc.c: Likewise.
* config/arm/arm.c: Likewise.
* config/avr/avr.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/cr16/cr16.c: Likewise.
* config/cris/cris.c: Likewise.
* config/darwin.c: Likewise.
* config/epiphany/epiphany.c: Likewise.
* config/fr30/fr30.c: Likewise.
* config/frv/frv.c: Likewise.
* config/ft32/ft32.c: Likewise.
* config/h8300/h8300.c: Likewise.
* config/i386/winnt.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/lm32/lm32.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/m32r/m32r.c: Likewise.
* config/m68k/m68k.c: Likewise.
* config/mcore/mcore.c: Likewise.
* config/microblaze/microblaze.c: Likewise.
* config/mips/mips.c: Likewise.
* config/mmix/mmix.c: Likewise.
* config/mn10300/mn10300.c: Likewise.
* config/moxie/moxie.c: Likewise.
* config/msp430/msp430.c: Likewise.
* config/nds32/nds32-isr.c: Likewise.
* config/nds32/nds32.c: Likewise.
* config/nios2/nios2.c: Likewise.
* config/nvptx/nvptx.c: Likewise.
* config/pa/pa.c: Likewise.
* config/pdp11/pdp11.c: Likewise.
* config/powerpcspe/powerpcspe.c: Likewise.
* config/riscv/riscv.c: Likewise.
* config/rl78/rl78.c: Likewise.
* config/rx/rx.c: Likewise.
* config/s390/s390.c: Likewise.
* config/sh/sh.c: Likewise.
* config/sol2.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/spu/spu.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/tilegx/tilegx.c: Likewise.
* config/tilepro/tilepro.c: Likewise.
* config/v850/v850.c: Likewise.
* config/vax/vax.c: Likewise.
* config/visium/visium.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* call.c: Include header files.
* cp-gimplify.c: Likewise.
* cp-ubsan.c: Likewise.
* cvt.c: Likewise.
* init.c: Likewise.
* search.c: Likewise.
* semantics.c: Likewise.
* typeck.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* lto-lang.c: Include header files.
* lto-symtab.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* c-convert.c: Include header files.
* c-typeck.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* c-ada-spec.c: Include header files.
* c-ubsan.c: Likewise.
* c-warn.c: Likewise.
2017-08-08  Martin Liska  <mliska@suse.cz>

* trans-types.c: Include header files.

From-SVN: r250946

6 years agoDaily bump.
GCC Administrator [Tue, 8 Aug 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250940

6 years agore PR target/81593 (Optimize PowerPC vector set from vector extract)
Michael Meissner [Mon, 7 Aug 2017 23:51:27 +0000 (23:51 +0000)]
re PR target/81593 (Optimize PowerPC vector set from vector extract)

[gcc]
2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/81593
* config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
constraints since the -mupper-regs-* switches have been
eliminated.
(vsx_concat_<mode>_1): New combiner insns to recognize inserting
into a vector from a double word element that was extracted from
another vector, and eliminate extra XXPERMDI instructions.
(vsx_concat_<mode>_2): Likewise.
(vsx_concat_<mode>_3): Likewise.
(vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
concat to allow optimizing inserts from previous extracts.

[gcc/testsuite]
2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/81593
* gcc.target/powerpc/vec-setup.h: New tests to test various
combinations of setting up vectors of 2 double word elements.
* gcc.target/powerpc/vec-setup-long.c: Likewise.
* gcc.target/powerpc/vec-setup-double.c: Likewise.
* gcc.target/powerpc/vec-setup-be-long.c: Likewise.
* gcc.target/powerpc/vec-setup-be-double.c: Likewise.
* gcc.target/powerpc/vsx-extract-6.c: New tests for optimzing
vector inserts from vector extracts.
* gcc.target/powerpc/vsx-extract-7.c: Likewise.

From-SVN: r250936

7 years agoi386.c (ix86_stack_protect_guard): Generate memory reference to a SSP offset in TLS...
Uros Bizjak [Mon, 7 Aug 2017 20:35:00 +0000 (22:35 +0200)]
i386.c (ix86_stack_protect_guard): Generate memory reference to a SSP offset in TLS address space.

* config/i386/i386.c (ix86_stack_protect_guard): Generate
memory reference to a SSP offset in TLS address space.
(ix86_print_operand) <case '@'>: Remove.
(ix86_print_operand_punct_valid_p): Remove '@' code.
* config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
UNSPEC_SP_TLS_TEST.
(stack_tls_protect_set_<mode>): Remove.
(stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
(stack_tls_protect_test_<mode>): Remove.
(stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.

From-SVN: r250932

7 years agoOlivier Hainque <hainque@adacore.com>
Olivier Hainque [Mon, 7 Aug 2017 20:13:53 +0000 (20:13 +0000)]
Olivier Hainque  <hainque@adacore.com>

PR target/81755
* config/vxworksae.h (VXWORKS_HAVE_TLS): Define.

From-SVN: r250931

7 years agoMakefile.in (install-mkheaders): Fix typo, where the multi_dir variable was reference...
Doug Rupp [Mon, 7 Aug 2017 19:55:55 +0000 (19:55 +0000)]
Makefile.in (install-mkheaders): Fix typo, where the multi_dir variable was referenced as multidir in command.

2017-08-07  Douglas Rupp  <rupp@adacore.com>

* Makefile.in (install-mkheaders): Fix typo, where the multi_dir
variable was referenced as multidir in command.

From-SVN: r250930

7 years agore PR c/69389 (bit field incompatible with OpenMP atomic update)
Jakub Jelinek [Mon, 7 Aug 2017 18:34:29 +0000 (20:34 +0200)]
re PR c/69389 (bit field incompatible with OpenMP atomic update)

PR c/69389
* gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
BIT_FIELD_REF.

* c-omp.c (c_finish_omp_atomic): Handle atomics on bitfields.

* testsuite/libgomp.c/pr69389.c: New test.
* testsuite/libgomp.c++/pr69389.C: New test.

From-SVN: r250929

7 years agoAdd missing header file attribs.h to couple of targets.
Martin Liska [Mon, 7 Aug 2017 17:12:52 +0000 (19:12 +0200)]
Add missing header file attribs.h to couple of targets.

2017-08-07  Martin Liska  <mliska@suse.cz>

* config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
* config/rl78/rl78.c: Add include of attribs.h.
* config/sh/sh.c: Likewise.
* config/v850/v850.c: Likewise.

From-SVN: r250926

7 years agoFix diff_type in expand_oacc_for char iter_type
Tom de Vries [Mon, 7 Aug 2017 17:06:11 +0000 (17:06 +0000)]
Fix diff_type in expand_oacc_for char iter_type

2017-08-07  Tom de Vries  <tom@codesourcery.com>

PR middle-end/78266
* omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.

* testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.

From-SVN: r250925