platform/upstream/gcc.git
6 years agoC++: fix ordering of missing std #include suggestion (PR c++/81514)
David Malcolm [Fri, 18 Aug 2017 18:12:47 +0000 (18:12 +0000)]
C++: fix ordering of missing std #include suggestion (PR c++/81514)

gcc/cp/ChangeLog:
PR c++/81514
* name-lookup.c (maybe_suggest_missing_header): Convert return
type from void to bool; return true iff a suggestion was offered.
(suggest_alternative_in_explicit_scope): Move call to
maybe_suggest_missing_header to before use of best_match, and
return true if the former offers a suggestion.

gcc/testsuite/ChangeLog:
PR c++/81514
* g++.dg/lookup/empty.h: New file.
* g++.dg/lookup/missing-std-include-2.C: Replace include of
stdio.h with empty.h and a declaration of a "std::sprintf" not based
on a built-in.

From-SVN: r251186

6 years agoPR libstdc++/81891 fix double-free in hashtable constructor
Jonathan Wakely [Fri, 18 Aug 2017 17:46:57 +0000 (18:46 +0100)]
PR libstdc++/81891 fix double-free in hashtable constructor

PR libstdc++/81891
* include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator,
size_type, const _H1&, const _H2&, const _Hash&, const _Equal&,
const _ExtractKey&, const allocator_type&)): Let destructor do clean
up if an exception is thrown.
* testsuite/23_containers/unordered_map/cons/81891.cc: New.

From-SVN: r251185

6 years agomisc/cgo/test: make cgo tests run on AIX
Ian Lance Taylor [Fri, 18 Aug 2017 14:05:52 +0000 (14:05 +0000)]
misc/cgo/test: make cgo tests run on AIX

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

From-SVN: r251182

6 years agoc-parser.c (c_parser_postfix_expression): Remove unused code.
Marek Polacek [Fri, 18 Aug 2017 12:26:00 +0000 (12:26 +0000)]
c-parser.c (c_parser_postfix_expression): Remove unused code.

* c-parser.c (c_parser_postfix_expression): Remove unused code.  Update
commentary.

From-SVN: r251181

6 years agoAdd warn_if_not_aligned attribute
H.J. Lu [Fri, 18 Aug 2017 09:38:38 +0000 (09:38 +0000)]
Add warn_if_not_aligned attribute

Add warn_if_not_aligned attribute as well as  command line options:
-Wif-not-aligned and -Wpacked-not-aligned.

__attribute__((warn_if_not_aligned(N))) causes compiler to issue a
warning if the field in a struct or union is not aligned to N:

typedef unsigned long long __u64
  __attribute__((aligned(4),warn_if_not_aligned(8)));

struct foo
{
  int i1;
  int i2;
  __u64 x;
};

__u64 is aligned to 4 bytes.  But inside struct foo, __u64 should be
aligned at 8 bytes.  It is used to define struct foo in such a way that
struct foo has the same layout and x has the same alignment when __u64
is aligned at either 4 or 8 bytes.

Since struct foo is normally aligned to 4 bytes, a warning will be issued:

warning: alignment 4 of 'struct foo' is less than 8

Align struct foo to 8 bytes:

struct foo
{
  int i1;
  int i2;
  __u64 x;
} __attribute__((aligned(8)));

silences the warning.  It also warns the field with misaligned offset:

struct foo
{
  int i1;
  int i2;
  int i3;
  __u64 x;
} __attribute__((aligned(8)));

warning: 'x' offset 12 in 'struct foo' isn't aligned to 8

This warning is controlled by -Wif-not-aligned and is enabled by default.

When -Wpacked-not-aligned is used, the same warning is also issued for
the field with explicitly specified alignment in a packed struct or union:

struct __attribute__ ((aligned (8))) S8 { char a[8]; };
struct __attribute__ ((packed)) S {
  struct S8 s8;
};

warning: alignment 1 of 'struct S' is less than 8

This warning is disabled by default and enabled by -Wall.

gcc/

PR c/53037
* print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
and TYPE_WARN_IF_NOT_ALIGN.
* stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
(handle_warn_if_not_align): New.
(place_union_field): Call handle_warn_if_not_align.
(place_field): Call handle_warn_if_not_align.  Copy
TYPE_WARN_IF_NOT_ALIGN.
(finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
(layout_type): Likewise.
* tree-core.h (tree_type_common): Add warn_if_not_align.  Set
spare to 18.
(tree_decl_common): Add warn_if_not_align.
* tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
* tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
(SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
(DECL_WARN_IF_NOT_ALIGN): Likewise.
(SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
* doc/extend.texi: Document warn_if_not_aligned attribute.
* doc/invoke.texi: Document -Wif-not-aligned and
-Wpacked-not-aligned.

gcc/c-family/

PR c/53037
* c-attribs.c (handle_warn_if_not_aligned_attribute): New.
(c_common_attribute_table): Add warn_if_not_aligned.
(handle_aligned_attribute): Renamed to ...
(common_handle_aligned_attribute): Remove argument, name, and add
argument, warn_if_not_aligned.  Handle warn_if_not_aligned.
(handle_aligned_attribute): New.
* c.opt: Add -Wif-not-aligned and -Wpacked-not-aligned.

gcc/c/

PR c/53037
* c-decl.c (merge_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
(check_bitfield_type_and_width): Don't allow bit-field with
warn_if_not_aligned type.

gcc/cp/

PR c/53037
* decl.c (duplicate_decls): Also merge DECL_WARN_IF_NOT_ALIGN.
* decl2.c (grokbitfield): Don't allow bit-field with
warn_if_not_aligned type.

gcc/testsuite/

PR c/53037
* c-c++-common/pr53037-5.c: New test.
* g++.dg/pr53037-1.C: Likewise.
* g++.dg/pr53037-2.C: Likewise.
* g++.dg/pr53037-3.C: Likewise.
* g++.dg/pr53037-4.C: Likewise.
* gcc.dg/pr53037-1.c: Likewise.
* gcc.dg/pr53037-2.c: Likewise.
* gcc.dg/pr53037-3.c: Likewise.
* gcc.dg/pr53037-4.c: Likewise.

From-SVN: r251180

6 years agocmd/go: pass -funwind-tables when compiling C code
Ian Lance Taylor [Fri, 18 Aug 2017 04:40:42 +0000 (04:40 +0000)]
cmd/go: pass -funwind-tables when compiling C code

    Using -funwind-tables is necessary to permit Go code to correctly
    throw a panic through C code.  This hasn't been necessary in the past
    as -funwind-tables is the default on x86.  However, it is not the
    default for PPC AIX.

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

From-SVN: r251179

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

From-SVN: r251178

6 years agoFix build of --enable-gather-detailed-mem-stats (PR bootstrap/81864).
Martin Liska [Thu, 17 Aug 2017 19:56:46 +0000 (21:56 +0200)]
Fix build of --enable-gather-detailed-mem-stats (PR bootstrap/81864).

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

PR bootstrap/81864
* tree-loop-distribution.c (ddrs_table): Change type to pointer
type.
(get_data_dependence): Use it as pointer type.
(distribute_loop): Likewise.

From-SVN: r251165

6 years agoaltivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
Bill Schmidt [Thu, 17 Aug 2017 19:31:54 +0000 (19:31 +0000)]
altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.

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

* config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
(p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
(p8_vmrgow_<mode>_direct): New define_insn.
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
handle endianness for vmrgew and vmrgow permute patterns.

From-SVN: r251161

6 years agocp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment.
Nathan Sidwell [Thu, 17 Aug 2017 18:57:03 +0000 (18:57 +0000)]
cp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment.

* cp-tree.def (TEMPLATE_TEMPLATE_PARM): Remove stale comment.
* cp-tree.h (ENUM_TEMPLATE_INFO): Delete.
(TYPE_TEMPLATE_INFO): Simplify.
(SET_TYPE_TEMPLATE_INFO): Simplify.

From-SVN: r251159

6 years agoaltivec.md (VParity): Remove TARGET_VSX_TIMODE.
Peter Bergner [Thu, 17 Aug 2017 17:58:31 +0000 (12:58 -0500)]
altivec.md (VParity): Remove TARGET_VSX_TIMODE.

gcc/
* config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
* config/rs6000/rs6000-cpus.def: Remove comment.
(ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
use of TARGET_VSX_TIMODE.
(rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_option_override_internal): Remove dead code.
(rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
(rs6000_legitimize_reload_address): Likewise.
(rs6000_legitimate_address_p): Likewise.
(rs6000_opt_masks): Delete "vsx-timode".
(rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
from function comment.
* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
* config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
(V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
condition.
* config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
* config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
* config/rs6000/vsx.md (VSX_LE_128): Likewise.
(VSX_TI): Likewise.
(VSX_M): Likewise.
(define_peephole2): Likewise.

gcc/testsuite/
* gcc.target/powerpc/p8vector-int128-1.c: Remove use of -mvsx-timode.
* gcc.target/powerpc/p9-vparity.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.
* gcc.target/powerpc/pr80098-4.c: Remove useless test case.

From-SVN: r251158

6 years agoPR c/81859 - [8 Regression] valgrind error from warn_about_normalization
Martin Sebor [Thu, 17 Aug 2017 16:50:06 +0000 (16:50 +0000)]
PR c/81859 - [8 Regression] valgrind error from warn_about_normalization

gcc/ChangeLog:

PR c/81859
* pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
past the end of an array.
(test_pp_format): Add test cases.

From-SVN: r251157

6 years agoAdd missing ECF_NOTHROW flags to internal.def
Richard Sandiford [Thu, 17 Aug 2017 16:31:09 +0000 (16:31 +0000)]
Add missing ECF_NOTHROW flags to internal.def

This patch adds missing ECF_NOTHROW flags to the vectorisable
integer internal functions.

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

gcc/
* internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
missing ECF_NOTHROW flags.

From-SVN: r251155

6 years agolex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs don't need lang_type.
Nathan Sidwell [Thu, 17 Aug 2017 15:56:49 +0000 (15:56 +0000)]
lex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs don't need lang_type.

* lex.c (maybe_add_lang_type_raw): BOUND_TEMPLATE_TEMPLATE_PARMs
don't need lang_type.
(cxx_make_type): Use maybe_add_lang_type_raw return value.
* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Don't rely on
TYPE_LANG_SPECIFIC.

From-SVN: r251154

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

From-SVN: r251139

6 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

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

From-SVN: r251131

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

From-SVN: r251113

6 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

6 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

6 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

6 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

6 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

6 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

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