gcc.git
7 years agore PR target/72804 (Poor code gen with -mvsx-timode)
Peter Bergner [Thu, 17 Aug 2017 15:56:48 +0000 (10:56 -0500)]
re PR target/72804 (Poor code gen with -mvsx-timode)

gcc/
PR target/72804
* config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
operands residing in integer registers.
(*vsx_le_perm_load_<mode>): Likewise.
(*vsx_le_perm_store_<mode>): Likewise.
(define_peephole2): Add peepholes to optimize the above.

gcc/testsuite/
PR target/72804
* gcc.target/powerpc/pr72804.c: New test.

From-SVN: r251153

7 years agore PR middle-end/81814 (Incorrect behaviour at -O0 (conditional operator))
Marek Polacek [Thu, 17 Aug 2017 14:33:13 +0000 (14:33 +0000)]
re PR middle-end/81814 (Incorrect behaviour at -O0 (conditional operator))

PR middle-end/81814
* fold-const.c (operand_equal_for_comparison_p): Remove code that used
to mimic what shorten_compare did.  Change the return type to bool.
(fold_cond_expr_with_comparison): Update call to
operand_equal_for_comparison_p.
(fold_ternary_loc): Likewise.

* gcc.dg/torture/pr81814.c: New test.

From-SVN: r251152

7 years agore PR ada/81878 (--disable-bootstrap --enable-languages=ada fails)
Richard Biener [Thu, 17 Aug 2017 13:39:58 +0000 (13:39 +0000)]
re PR ada/81878 (--disable-bootstrap --enable-languages=ada fails)

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

PR ada/81878
* Makefile.in (CXX_LFLAGS): Remove.
(TOOLS_FLAGS_TO_PASS_NATIVE): Pass $(CXX) as CXX.
(TOOLS_FLAGS_TO_PASS_RE): Likewise.

From-SVN: r251150

7 years ago[AArch64] Improve SIMD store of zero.
Jackson Woodruff [Thu, 17 Aug 2017 12:54:10 +0000 (12:54 +0000)]
[AArch64] Improve SIMD store of zero.

This patch changes patterns in aarch64-simd.md to replace

    movi    v0.4s, 0
    str    q0, [x0, 16]

With:

    stp xzr, xzr, [x0, 16]

When we are storing zeros to vectors like this:

    void f(uint32x4_t *p) {
      uint32x4_t x = { 0, 0, 0, 0};
      p[1] = x;
    }

gcc/
2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>

* aarch64-simd.md (mov<mode>): No longer force zero immediate into
register.
(*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.

gcc/testsuite/
2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>

* gcc.target/aarch64/simd/vect_str_zero.c: New testcase.

From-SVN: r251149

7 years agocp-tree.h (struct lang_type): Remove template_info field.
Nathan Sidwell [Thu, 17 Aug 2017 12:47:30 +0000 (12:47 +0000)]
cp-tree.h (struct lang_type): Remove template_info field.

* cp-tree.h (struct lang_type): Remove template_info field.
(CLASSTYPE_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
(TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.

From-SVN: r251148

7 years agoAdd the missing ChangeLog for r251076
H.J. Lu [Thu, 17 Aug 2017 12:34:40 +0000 (05:34 -0700)]
Add the missing ChangeLog for r251076

From-SVN: r251147

7 years agotree-ssa-structalias.c (solve_graph): When propagating to successors update the graph...
Richard Biener [Thu, 17 Aug 2017 12:10:11 +0000 (12:10 +0000)]
tree-ssa-structalias.c (solve_graph): When propagating to successors update the graphs succ edges and avoid duplicate...

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

* tree-ssa-structalias.c (solve_graph): When propagating
to successors update the graphs succ edges and avoid duplicate work.

From-SVN: r251146

7 years agore PR target/81861 (ASan pr64820.c testcase segfaults with LTO and -fstack-protector...
Maxim Ostapenko [Thu, 17 Aug 2017 11:58:13 +0000 (11:58 +0000)]
re PR target/81861 (ASan pr64820.c testcase segfaults with LTO and -fstack-protector-strong)

2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>

PR target/81861
* config/i386/i386.c (ix86_option_override_internal): Save target
specific options after ix86_stack_protector_guard_reg was changed.

From-SVN: r251145

7 years agoRequire effective target nonlocal_goto for ipa/pr81696.c
Tom de Vries [Thu, 17 Aug 2017 11:27:29 +0000 (11:27 +0000)]
Require effective target nonlocal_goto for ipa/pr81696.c

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

* gcc.dg/ipa/pr81696.c: Require effective target nonlocal_goto.

From-SVN: r251144

7 years agore PR fortran/81827 (Large compile time with derived-type rrays)
Richard Biener [Thu, 17 Aug 2017 10:04:04 +0000 (10:04 +0000)]
re PR fortran/81827 (Large compile time with derived-type rrays)

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

PR tree-optimization/81827
* tree-ssa-structalias.c (struct variable_info): Add is_reg_var
flag.
(new_var_info): Initialize it conservatively.
(get_call_vi): Mark register vars.
(new_scalar_tmp_constraint_exp): Likewise.
(handle_rhs_call): Likewise.
(handle_const_call): Likewise.
(create_function_info_for): Likewise.
(solve_constraints): Sort varinfos to separate register from
non-register vars to pack points-to solution bitmaps during
iteration.

From-SVN: r251143

7 years agogimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
Marek Polacek [Thu, 17 Aug 2017 09:35:46 +0000 (09:35 +0000)]
gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.

* gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of
1.

From-SVN: r251142

7 years agotree-vrp.c (vrp_int_const_binop): Do not set *overflow_p to true when overflow is...
Richard Biener [Thu, 17 Aug 2017 07:16:30 +0000 (07:16 +0000)]
tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p to true when overflow is undefined and we saturated the...

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

* tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
to true when overflow is undefined and we saturated the
result.

* gcc.dg/tree-ssa/vrp117.c: New testcase.

From-SVN: r251141

7 years ago[RS6000] PR 80938, Don't emit frame info for regs that don't need saving
Alan Modra [Thu, 17 Aug 2017 02:03:03 +0000 (11:33 +0930)]
[RS6000] PR 80938, Don't emit frame info for regs that don't need saving

It is possible when using out-of-line register saves or store multiple
to save some registers unnecessarily, for example one reg in the block
saved might be unused.  We don't need to emit frame info for those
registers as that just bloats the info, and also can result in an ICE
when shrink-wrap gives multiple paths through the function saving
different sets of registers.  Join points need to have identical frame
register save state regardless of the path taken.

This patch reverts the previous fix for PR80939 "Use SAVE_MULTIPLE
only if we restore what it saves (PR80938)" and instead fixes the PR
by correcting the frame info.  The change to rs6000_savres_strategy
is an optimization, but note that it hides the underlying problem in
the PR testcase.

PR target/80938
* config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
Don't use store multiple if only one reg needs saving.
(interesting_frame_related_regno): New function.
(rs6000_frame_related): Don't emit frame info for regs that
don't need saving.
(rs6000_emit_epilogue): Likewise.

From-SVN: r251140

7 years agoDaily bump.
GCC Administrator [Thu, 17 Aug 2017 00:16:37 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251139

7 years agoruntime: better implementation of netpoll for AIX
Ian Lance Taylor [Wed, 16 Aug 2017 20:58:26 +0000 (20:58 +0000)]
runtime: better implementation of netpoll for AIX

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

From-SVN: r251133

7 years ago* fr.po: Update.
Joseph Myers [Wed, 16 Aug 2017 20:21:28 +0000 (21:21 +0100)]
* fr.po: Update.

From-SVN: r251131

7 years agotree-core.h (tree_type_non_common): Rename binfo to lang_1.
Nathan Sidwell [Wed, 16 Aug 2017 19:42:28 +0000 (19:42 +0000)]
tree-core.h (tree_type_non_common): Rename binfo to lang_1.

* tree-core.h (tree_type_non_common): Rename binfo to lang_1.
* tree.h (TYPE_BINFO): Use type_non_common.maxval.
(TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
* tree.c (free_lang_data_in_type): Use else-if chain.  Always
clear TYPE_LANG_1.  Remove obsolete member-function stripping.
(find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
(verify_type): Adjust for TYPE_BINFO move.
* lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
process TYPE_BINFO directly.
(hash_tree): Likewise.
* tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
Likewise.
* tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
Likewise.

lto/
* lto.c (mentions_vars_p_type): Use TYPE_LANG_SLOT_1.
(compare_tree_sccs_1): No need to compare TYPE_BINFO directly.
(lto_fixup_prevailing_decls): Use TYPE_LANG_SLOT_1.

From-SVN: r251129

7 years agodiagnostic-show-locus.c: remove unused field from class colorizer
David Malcolm [Wed, 16 Aug 2017 19:08:16 +0000 (19:08 +0000)]
diagnostic-show-locus.c: remove unused field from class colorizer

gcc/ChangeLog:
* diagnostic-show-locus.c (colorizer::m_caret): Remove unused
field.

From-SVN: r251128

7 years agoruntime: improvements for signal registers
Ian Lance Taylor [Wed, 16 Aug 2017 19:04:00 +0000 (19:04 +0000)]
runtime: improvements for signal registers

    Fix dumpregs on i386, implement dumpregs for PPC Linux/AIX, get PC on AIX.

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

From-SVN: r251127

7 years agopatchable_function_entry-decl.c (dg-final): Adapt scan-assembler-times for alpha...
Uros Bizjak [Wed, 16 Aug 2017 18:44:28 +0000 (20:44 +0200)]
patchable_function_entry-decl.c (dg-final): Adapt scan-assembler-times for alpha*-*-*.

* c-c++-common/patchable_function_entry-decl.c (dg-final): Adapt
scan-assembler-times for alpha*-*-*.
* c-c++-common/patchable_function_entry-default.c (dg-final): Ditto.
* c-c++-common/patchable_function_entry-definition.c (dg-final): Ditto.

From-SVN: r251126

7 years agore PR fortran/81116 (Last character of allocatable-length string reset to blank in...
Thomas Koenig [Wed, 16 Aug 2017 17:21:22 +0000 (17:21 +0000)]
re PR fortran/81116 (Last character of allocatable-length string reset to blank in an assigment)

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

PR fortran/81116
* frontend-passes.c (realloc_string_callback): If expression is a
concatenation, also check for dependency.
(constant_string_length): Check for presence of symtree.

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

PR fortran/81116
* gfortran.dg/realloc_on_assignment_29.f90:  New test.

From-SVN: r251125

7 years agore PR target/46091 (missed optimization: x86 bt/btc/bts instructions)
Uros Bizjak [Wed, 16 Aug 2017 15:25:34 +0000 (17:25 +0200)]
re PR target/46091 (missed optimization: x86 bt/btc/bts instructions)

PR target/46091
* config/i386/i386.md (*anddi_1_btr): Change predicates of
operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
Add ix86_binary_operator_ok to insn constraint.
(*iordi_1_bts): Ditto.
(*xordi_1_btc): Ditto.
(*btsq): Change predicate of operand 0 to nonimmediate_operand.
Update corresponding peephole2 pattern.
(*btrq): Ditto.
(*btcq): Ditto.

testsuite/ChangeLog:

PR target/46091
* gcc.target/i386/pr46091-1.c: Update scan-assembler-times.
(testm): New test function.
* gcc.target/i386/pr46091-2.c: Ditto.
* gcc.target/i386/pr46091-3.c: Ditto.

From-SVN: r251124

7 years agore PR middle-end/81832 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2273)
Bin Cheng [Wed, 16 Aug 2017 15:02:03 +0000 (15:02 +0000)]
re PR middle-end/81832 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2273)

PR tree-optimization/81832
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
copy loop header which has IFN_LOOP_DIST_ALIAS call.

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

From-SVN: r251123

7 years agore PR middle-end/81695 (internal compiler error: in size_binop_loc, at fold-const...
Marek Polacek [Wed, 16 Aug 2017 11:26:41 +0000 (11:26 +0000)]
re PR middle-end/81695 (internal compiler error: in size_binop_loc, at fold-const.c:1768)

PR middle/81695
* fold-const.c (fold_indirect_ref_1): Restore original behavior
regarding size_zero_node.

From-SVN: r251119

7 years agoFix building of cross compiler (PR target/81753).
Martin Liska [Wed, 16 Aug 2017 07:51:55 +0000 (09:51 +0200)]
Fix building of cross compiler (PR target/81753).

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

PR target/81753
* config.gcc: Respect previously set extra_objs in case
of darwin target.

From-SVN: r251118

7 years agoPR81815: Invalid conditional reduction
Richard Sandiford [Wed, 16 Aug 2017 07:51:13 +0000 (07:51 +0000)]
PR81815: Invalid conditional reduction

We weren't checking whether the phi in a conditional reduction was
used by the condition itself (which isn't a case we handle).

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

gcc/
PR tree-optimization/81835
* tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
the phi SSA_NAME.  Check that the condition in a COND_EXPR does
not depend on the phi.

gcc/testsuite/
PR tree-optimization/81835
* gcc.dg/vect/pr81815.c: New test.

From-SVN: r251117

7 years ago[RS6000] Delete code made dead by r250482
Alan Modra [Wed, 16 Aug 2017 01:28:04 +0000 (10:58 +0930)]
[RS6000] Delete code made dead by r250482

* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
dead code.

From-SVN: r251116

7 years ago[RS6000] Merge rs6000_reg_live_or_pic_offset_p into save_reg_p
Alan Modra [Wed, 16 Aug 2017 01:19:59 +0000 (10:49 +0930)]
[RS6000] Merge rs6000_reg_live_or_pic_offset_p into save_reg_p

rs6000_reg_live_or_pic_offset_p is just save_reg_p with special
handling for the pic register and eh_return.  This merge also
simplifies the eh_return handling.  The intent of
https://gcc.gnu.org/ml/gcc-patches/2010-09/msg01838.html was to say
the PIC reg needed to be saved for eh_return, not all gprs.  Of
course, it doesn't hurt to say all gprs need to be saved for eh_return
as that is what the target-independent code does by setting DF live,
but it's unnecessary in the backend.

* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
(save_reg_p): ..into this.  Update all callers.
(first_reg_to_save): Simplify.

From-SVN: r251115

7 years ago[RS6000] Don't restore fixed regs
Alan Modra [Wed, 16 Aug 2017 01:06:35 +0000 (10:36 +0930)]
[RS6000] Don't restore fixed regs

* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
fixed regs.

From-SVN: r251114

7 years agoDaily bump.
GCC Administrator [Wed, 16 Aug 2017 00:18:45 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r251113

7 years agoLimit SH strncmp inline expansion (PR target/78460).
Joseph Myers [Tue, 15 Aug 2017 23:42:23 +0000 (00:42 +0100)]
Limit SH strncmp inline expansion (PR target/78460).

GCC mainline built for sh4-linux-gnu runs out of memory building a
glibc test, which calls strncmp with very large constant size
argument, resulting in the SH inline strncmp expansion trying to
inline a fully unrolled expansion of strncmp for that size.

This patch limits that fully unrolled expansion to the case of less
than 32 bytes.  This is explicitly *not* trying to be optimal in any
way (very likely a lower threshold makes sense), just to limit enough
to avoid the out-of-memory issue in the glibc testsuite.

I have *not* run the GCC testsuite for SH.  I have verified that this
allows the glibc testsuite to build OK, with both GCC mainline and GCC
7 branch (and that the included test builds quickly with patched GCC,
runs out of memory with unpatched GCC).

PR target/78460
PR target/67712
gcc:
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
constant count if that count is less than 32.

gcc/testsuite:
* gcc.c-torture/compile/string-large-1.c: New test.

From-SVN: r251108

7 years agoUpdate .po files.
Joseph Myers [Tue, 15 Aug 2017 20:38:31 +0000 (21:38 +0100)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r251106

7 years agogcc.c (execute): Emit friendlier message if inferior is killed by an external cause.
Nathan Sidwell [Tue, 15 Aug 2017 12:44:58 +0000 (12:44 +0000)]
gcc.c (execute): Emit friendlier message if inferior is killed by an external cause.

* gcc.c (execute): Emit friendlier message if inferior is killed
by an external cause.

From-SVN: r251104

7 years agore PR tree-optimization/81790 (ICE in vn_nary_build_or_lookup_1, at tree-ssa-sccvn...
Richard Biener [Tue, 15 Aug 2017 11:26:32 +0000 (11:26 +0000)]
re PR tree-optimization/81790 (ICE in vn_nary_build_or_lookup_1, at tree-ssa-sccvn.c:1738)

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

PR tree-optimization/81790
* tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
CONSTRUCTORs from simplifying and VN.

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

From-SVN: r251103

7 years agobuiltin-attrs.def: Add comments.
Martin Sebor [Mon, 14 Aug 2017 21:32:07 +0000 (21:32 +0000)]
builtin-attrs.def: Add comments.

gcc/ChangeLog:

* builtin-attrs.def: Add comments.

From-SVN: r251101

7 years agoPR c/81117 - Improve buffer overflow checking in strncpy - part 2
Martin Sebor [Mon, 14 Aug 2017 20:21:44 +0000 (20:21 +0000)]
PR c/81117 - Improve buffer overflow checking in strncpy - part 2

gcc/ChangeLog:

PR c/81117
* doc/extend.texi (attribute nonstring): Document new attribute.

gcc/c-family/ChangeLog:

PR c/81117
* c-attribs.c (c_common_attribute_table): Add nonstring entry.
(handle_nonstring_attribute): New function.

gcc/testsuite/ChangeLog:

PR c/81117
* c-c++-common/attr-nonstring-1.c: New test.

From-SVN: r251100

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

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

From-SVN: r251080

7 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

7 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

7 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

7 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

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

From-SVN: r251072

7 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

7 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

7 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

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

From-SVN: r251064

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

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

From-SVN: r251045

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

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

From-SVN: r251017

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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