gcc.git
6 years ago* es.po: Update.
Joseph Myers [Wed, 2 May 2018 17:01:16 +0000 (18:01 +0100)]
* es.po: Update.

From-SVN: r259845

6 years agoPR libstdc++/83860 avoid dangling references in valarray closure types
Jonathan Wakely [Wed, 2 May 2018 16:41:46 +0000 (17:41 +0100)]
PR libstdc++/83860 avoid dangling references in valarray closure types

Store nested closures by value not by reference, to prevent holding
invalid references to temporaries that have been destroyed. This
changes the layout of the closure types, so change their linkage names,
but moving them to a different namespace.

PR libstdc++/57997
PR libstdc++/83860
* include/bits/gslice_array.h (gslice_array): Define default
constructor as deleted, as per C++11 standard.
* include/bits/mask_array.h (mask_array): Likewise.
* include/bits/slice_array.h (slice_array): Likewise.
* include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
to namespace __detail.
(_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
members.
* include/bits/valarray_before.h (_ValArrayRef): New helper for type
of data members in closure objects.
(_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
(_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
__detail.
(_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
(_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
(_SBase::_M_expr): Use _ValArrayRef for type of data members.
* include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
(_ValFunClos, _RefFunClos): Move to namespace __detail and add
using-declarations to namespace std.
* testsuite/26_numerics/valarray/83860.cc: New.

From-SVN: r259844

6 years agoRemove duplicate function call in test
Jonathan Wakely [Wed, 2 May 2018 16:27:01 +0000 (17:27 +0100)]
Remove duplicate function call in test

* testsuite/backward/strstream_move.cc: Remove duplicate function
call.

From-SVN: r259843

6 years agoPR libstdc++/69608 Move semantics for strstreambuf
Jonathan Wakely [Wed, 2 May 2018 16:25:44 +0000 (17:25 +0100)]
PR libstdc++/69608 Move semantics for strstreambuf

In libstdc++ the deprecated char* streams are non-copyable, as was
required pre-C++11.

Since C++11 the standard implies that those streams should be copyable,
but doesn't specify the effects of copying them. This is surely a
defect, so for consistency with other implementations this change makes
them movable, but not copyable.

PR libstdc++/69608
* include/backward/strstream (strstreambuf): Define move constructor
and move assignment operator.
(istrstream, ostrstream, strstream): Likewise.
* testsuite/backward/strstream_move.cc: New.

From-SVN: r259842

6 years agore PR tree-optimization/85597 (internal compiler error: in compute_live_loop_exits...
Richard Biener [Wed, 2 May 2018 14:19:51 +0000 (14:19 +0000)]
re PR tree-optimization/85597 (internal compiler error: in compute_live_loop_exits, at tree-ssa-loop-manip.c:229)

2018-05-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/85597
* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
do not use split vect_get_vec_defs call but call vect_get_slp_defs
directly.

* gcc.dg/vect/pr85597.c: New testcase.

From-SVN: r259840

6 years ago[testsuite] Add scan-ltrans-tree-dump
Tom de Vries [Wed, 2 May 2018 12:16:32 +0000 (12:16 +0000)]
[testsuite] Add scan-ltrans-tree-dump

2018-05-02  Tom de Vries  <tom@codesourcery.com>

PR testsuite/85106
* gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump.
* lib/scanltranstree.exp: New file.
* lib/target-supports.exp (scan-ltrans-tree-dump_required_options)
(scan-ltrans-tree-dump-times_required_options)
(scan-ltrans-tree-dump-not_required_options)
(scan-ltrans-tree-dump-dem_required_options)
(scan-ltrans-tree-dump-dem-not_required_options): New proc.
* lib/gcc-dg.exp: Include scanltranstree.exp.

* testsuite/lib/libatomic.exp: Include scanltranstree.exp.

* testsuite/lib/libgomp.exp: Include scanltranstree.exp.

* testsuite/lib/libitm.exp: Include scanltranstree.exp.

* testsuite/lib/libvtv.exp: Include scanltranstree.exp.

* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
dump files): Add ltrans-tree.

From-SVN: r259838

6 years ago[testsuite] Add scan-wpa-ipa-dump
Tom de Vries [Wed, 2 May 2018 12:16:15 +0000 (12:16 +0000)]
[testsuite] Add scan-wpa-ipa-dump

2018-05-02  Tom de Vries  <tom@codesourcery.com>

PR testsuite/85106
* gcc.dg/ipa/ipa-icf-38.c: New test.
* gcc.dg/ipa/ipa-icf-38a.c: New test.
* lib/scandump.exp (dump-base): New proc.
(scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem)
(scan-dump-dem-not): Add and handle parameter for suffix of the dump
base.
* lib/scanipa.exp: Add "" argument to scan-dump calls.
* lib/scanlang.exp: Same.
* lib/scanrtl.exp: Same.
* lib/scantree.exp: Same.
* lib/scanwpaipa.exp: New file.
* lib/gcc-dg.exp: Include scanwpaipa.exp.

* testsuite/lib/libatomic.exp: Include scanwpaipa.exp.

* testsuite/lib/libgomp.exp: Include scanwpaipa.exp.

* testsuite/lib/libitm.exp: Include scanwpaipa.exp.

* testsuite/lib/libvtv.exp: Include scanwpaipa.exp.

* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
dump files): Add wpa-ipa.

From-SVN: r259837

6 years agors6000: Remove paired single
Segher Boessenkool [Wed, 2 May 2018 10:46:00 +0000 (12:46 +0200)]
rs6000: Remove paired single

This removes paired single (used on the 750CL and friends).  It was
deprecated in GCC 8.  Removing it means we only have one vector model
to deal with (VMX+VSX, 16-byte vectors).

* config.gcc (powerpc*-*-*): Remove paired.h.  Unsupport the
powerpc*-*-linux*paired* target.
* config/rs6000/750cl.h: Delete.
* config/rs6000/paired.h: Delete.
* config/rs6000/paired.md: Delete.
* config/rs6000/predicates.md (easy_vector_constant): Remove paired
float support.
* config/rs6000/rs6000-builtin.def: Remove paired float support.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
comment.  Remove paired float support.
* config/rs6000/rs6000-modes.def: Remove V2SF and V2SI.
* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
VECTOR_PAIRED.
* config/rs6000/rs6000-protos.h (paired_expand_vector_init,
paired_emit_vector_cond_expr, paired_expand_vector_move): Delete
declarations.
* config/rs6000/rs6000.c: Remove paired float support.
(paired_expand_vector_init, paired_expand_vector_move,
paired_emit_vector_compare, paired_emit_vector_cond_expr,
(paired_expand_lv_builtin, paired_expand_stv_builtin,
paired_expand_builtin, paired_expand_predicate_builtin,
paired_init_builtins): Delete.
* config/rs6000/rs6000.h: Remove paired float support.
* config/rs6000/rs6000.md: Remove paired float support.
(move_from_CR_ov_bit): Delete.
* config/rs6000/rs6000.opt (mpaired): Delete.
* config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired.

From-SVN: r259833

6 years agoansidecl.h (ATTRIBUTE_NONSTRING): Define.
Alan Modra [Wed, 2 May 2018 09:51:45 +0000 (19:21 +0930)]
ansidecl.h (ATTRIBUTE_NONSTRING): Define.

ATTRIBUTE_NONSTRING

* ansidecl.h (ATTRIBUTE_NONSTRING): Define.

From-SVN: r259832

6 years ago* gennews (files): Add files for GCC 8.
Jakub Jelinek [Wed, 2 May 2018 08:12:23 +0000 (10:12 +0200)]
* gennews (files): Add files for GCC 8.

From-SVN: r259828

6 years agore PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at gimplify...
Richard Biener [Wed, 2 May 2018 07:59:34 +0000 (07:59 +0000)]
re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at gimplify.c:5797 when using sincos())

2018-05-02  Richard Biener  <rguenther@suse.de>

PR middle-end/85567
* gimplify.c (gimplify_save_expr): When in SSA form allow
SAVE_EXPRs to compute to SSA vars.

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

From-SVN: r259826

6 years agore PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode)
Jakub Jelinek [Wed, 2 May 2018 07:52:08 +0000 (09:52 +0200)]
re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode)

PR target/85582
* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
*<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't
clobber operands[2], instead use a new pseudo.  Formatting fixes.

* gcc.c-torture/execute/pr85582-1.c: New test.
* gcc.c-torture/execute/pr85582-2.c: New test.

From-SVN: r259825

6 years agoTighten early exit in vect_analyze_data_ref_dependence (PR85586)
Richard Sandiford [Wed, 2 May 2018 07:40:22 +0000 (07:40 +0000)]
Tighten early exit in vect_analyze_data_ref_dependence (PR85586)

The problem in this PR was that we didn't consider aliases between
writes in the same strided group.  After tightening the early exit
we get the expected abs(step) >= 2 versioning check.

2018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/85586
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
exit early for statements in the same group if the accesses are
not strided.

gcc/testsuite/
PR tree-optimization/85586
* gcc.dg/vect/pr85586.c: New test.

From-SVN: r259822

6 years ago[lto] Add "could not find mkoffload" error message to lto-wrapper
Tom de Vries [Wed, 2 May 2018 07:12:15 +0000 (07:12 +0000)]
[lto] Add "could not find mkoffload" error message to lto-wrapper

2018-05-02  Tom de Vries  <tom@codesourcery.com>

PR lto/85451
* lto-wrapper.c (compile_offload_image): Add "could not find mkoffload"
error message.

From-SVN: r259821

6 years agoPlugin API to get the list of wrap symbols.
Sriraman Tallam [Wed, 2 May 2018 00:53:48 +0000 (00:53 +0000)]
Plugin API to get the list of wrap symbols.

This was approved for the binutils gold linker.
2018-05-01  Sriraman Tallam  <tmsriram@google.com>

* plugin-api.h: Add plugin API to get the list of wrap
symbols.

From-SVN: r259820

6 years agoAdd support for gcc as git submodule of another repository.
Jim Wilson [Wed, 2 May 2018 00:24:45 +0000 (00:24 +0000)]
Add support for gcc as git submodule of another repository.

contrib/
* gcc_update: Check for .git as a file.

From-SVN: r259819

6 years agoDaily bump.
GCC Administrator [Wed, 2 May 2018 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259818

6 years agoPR libstdc++/84654 Disable __float128 specializations for -mno-float128
Tulio Magno Quites Machado Filho [Tue, 1 May 2018 22:47:33 +0000 (22:47 +0000)]
PR libstdc++/84654 Disable __float128 specializations for -mno-float128

2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>

PR libstdc++/84654
* acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
* config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
* configure: Regenerate.
* include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
based on ENABLE_FLOAT128.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
[!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
_GLIBCXX_USE_FLOAT128.

From-SVN: r259813

6 years agoGeneralize a<b&a<c -> a<min(b,c)
Marc Glisse [Tue, 1 May 2018 21:41:05 +0000 (23:41 +0200)]
Generalize a<b&a<c -> a<min(b,c)

2018-05-01  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/85143
gcc/
* match.pd (A<B&A<C): Extend to BIT_IOR_EXPR.

gcc/testsuite/
* gcc.dg/tree-ssa/minmax-loopend.c: Extend and split...
* gcc.dg/tree-ssa/minmax-loopend-2.c: ... here.

From-SVN: r259812

6 years ago* gcc.pot: Regenerate.
Joseph Myers [Tue, 1 May 2018 20:33:44 +0000 (21:33 +0100)]
* gcc.pot: Regenerate.

From-SVN: r259810

6 years ago[nvptx] Improve "offload compiler not found" message in mkoffload
Tom de Vries [Tue, 1 May 2018 19:52:57 +0000 (19:52 +0000)]
[nvptx] Improve "offload compiler not found" message in mkoffload

2018-05-01  Tom de Vries  <tom@codesourcery.com>

PR lto/85451
* config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler
not found" error message.

From-SVN: r259809

6 years agoAdd VEC_ORDERED_REMOVE_IF
Tom de Vries [Tue, 1 May 2018 19:16:43 +0000 (19:16 +0000)]
Add VEC_ORDERED_REMOVE_IF

2018-05-01  Tom de Vries  <tom@codesourcery.com>

PR other/83786
* vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define.
* vec.c (test_ordered_remove_if): New function.
(vec_c_tests): Call test_ordered_remove_if.
* dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO.
* lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF.
* tree-vect-patterns.c (vect_pattern_recog_1): Use
VEC_ORDERED_REMOVE_IF.

From-SVN: r259808

6 years ago-Wformat: fix nonsensical "wide character" message (PR c/84258)
David Malcolm [Tue, 1 May 2018 18:51:15 +0000 (18:51 +0000)]
-Wformat: fix nonsensical "wide character" message (PR c/84258)

gcc/c-family/ChangeLog:
PR c/84258
* c-format.c (struct format_check_results): Add field
"number_non_char".
(check_format_info): Initialize it, and warn if encountered.
(check_format_arg): Distinguish between wide char and
everything else when detecting arrays of non-char.

gcc/testsuite/ChangeLog:
PR c/84258
* c-c++-common/Wformat-pr84258.c: New test.

From-SVN: r259807

6 years agore PR tree-optimization/82665 (missing value range optimization for memchr)
Prathamesh Kulkarni [Tue, 1 May 2018 18:20:39 +0000 (18:20 +0000)]
re PR tree-optimization/82665 (missing value range optimization for memchr)

PR tree-optimization/82665
* vr-values.c (vr_values::extract_range_from_binary_expr): Handle
pointer subtraction where arguments come from a memchr call.

        PR tree-optimization/82665
* gcc.dg/tree-ssa/pr82665.c: New test.

From-SVN: r259806

6 years agoPR c++/85587 - error with scoped enum in template.
Jason Merrill [Tue, 1 May 2018 18:11:53 +0000 (14:11 -0400)]
PR c++/85587 - error with scoped enum in template.

* semantics.c (finish_qualified_id_expr): Don't return an
unqualified IDENTIFIER_NODE.

From-SVN: r259805

6 years agoconfigure.ac (LD_AS_NEEDED_OPTION, [...]): Use --push-state --as-needed and --pop...
Jakub Jelinek [Tue, 1 May 2018 17:04:52 +0000 (19:04 +0200)]
configure.ac (LD_AS_NEEDED_OPTION, [...]): Use --push-state --as-needed and --pop-state instead of --as-needed and...

* configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
--push-state --as-needed and --pop-state instead of --as-needed and
--no-as-needed if ld supports it.
* configure: Regenerated.

From-SVN: r259803

6 years agoAdd the Netronome Flow Processor (nfp) as a build target to the top-level configure...
Francois H. Theron [Tue, 1 May 2018 15:26:51 +0000 (15:26 +0000)]
Add the Netronome Flow Processor (nfp) as a build target to the top-level configure.ac file.

* configure.ac: Added "nfp" target.
* configure: Regenerate.

From-SVN: r259800

6 years agore PR web/85578 (broken links in gcc-8.0.1-RC-20180427/INSTALL/specific.html, and...
Jakub Jelinek [Tue, 1 May 2018 15:26:36 +0000 (17:26 +0200)]
re PR web/85578 (broken links in gcc-8.0.1-RC-20180427/INSTALL/specific.html, and out of date prerequisites.html)

PR web/85578
* doc/install.texi2html: Replace _002d with - and _002a with * in
generated html files using sed.

From-SVN: r259799

6 years agore PR go/85429 (Several gotools tests FAIL with Solaris as)
Ian Lance Taylor [Tue, 1 May 2018 14:08:44 +0000 (14:08 +0000)]
re PR go/85429 (Several gotools tests FAIL with Solaris as)

PR go/85429
    cmd/go: support more Solaris assembler syntaxes

    Patch by Rainer Orth.

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

From-SVN: r259797

6 years agoPR c++/85580 - extern "C" and local variables
Jason Merrill [Tue, 1 May 2018 12:45:49 +0000 (08:45 -0400)]
PR c++/85580 - extern "C" and local variables

* name-lookup.c (check_extern_c_conflict): Ignore local decls.

From-SVN: r259793

6 years agoDaily bump.
GCC Administrator [Tue, 1 May 2018 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r259787

6 years agoAdd gcc_rich_location::add_fixit_insert_formatted
David Malcolm [Tue, 1 May 2018 00:10:10 +0000 (00:10 +0000)]
Add gcc_rich_location::add_fixit_insert_formatted

This patch adds a support function to class gcc_rich_location
to make it easier for fix-it hints to use idiomatic C/C++
indentation, for use by the patch for PR c++/85523.

gcc/ChangeLog:
PR c++/85523
* gcc-rich-location.c (blank_line_before_p): New function.
(use_new_line): New function.
(gcc_rich_location::add_fixit_insert_formatted): New function.
* gcc-rich-location.h
(gcc_rich_location::add_fixit_insert_formatted): New function.

gcc/testsuite/ChangeLog:
PR c++/85523
* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
(test_add_fixit_insert_formatted_single_line): New function.
(test_add_fixit_insert_formatted_multiline): New function.
Extend expected output of generated patch to include fix-it hints
for these.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include
"gcc-rich-location.h".  Add test coverage for
gcc_rich_location::add_fixit_insert_formatted.

From-SVN: r259783

6 years agoselftest: remove "Yoda ordering" in assertions
David Malcolm [Tue, 1 May 2018 00:02:49 +0000 (00:02 +0000)]
selftest: remove "Yoda ordering" in assertions

gcc/ChangeLog:
* selftest.c (assert_streq): Rename "expected" and "actual" to
"val1" and "val2".  Extend NULL-handling to cover both inputs
symmetrically, while still requiring both to be non-NULL for a pass.
* selftest.h (assert_streq): Rename "expected" and "actual" to
"val1" and "val2".
(ASSERT_EQ): Likewise.
(ASSERT_EQ_AT): Likewise.
(ASSERT_KNOWN_EQ): Likewise.
(ASSERT_KNOWN_EQ_AT): Likewise.
(ASSERT_NE): Likewise.
(ASSERT_MAYBE_NE): Likewise.
(ASSERT_MAYBE_NE_AT): Likewise.
(ASSERT_STREQ): Likewise.  Clarify that both must be non-NULL for
the assertion to pass.
(ASSERT_STREQ_AT): Likewise.

From-SVN: r259782

6 years agoPR c++/84701 - unsigned typeof.
Jason Merrill [Mon, 30 Apr 2018 21:21:32 +0000 (17:21 -0400)]
PR c++/84701 - unsigned typeof.

* decl.c (grokdeclarator): Overhaul diagnostics for invalid use
of long/short/signed/unsigned.

From-SVN: r259780

6 years agoPR c++/85305 - pack in lambda init-capture.
Jason Merrill [Mon, 30 Apr 2018 21:21:25 +0000 (17:21 -0400)]
PR c++/85305 - pack in lambda init-capture.

* parser.c (cp_parser_initializer): Add subexpression_p parm; don't
check_for_bare_parameter_packs in a subexpression.
(cp_parser_lambda_introducer): Use it.

From-SVN: r259779

6 years agoargv.c (expandargv): Fix memory leak for expanded arguments.
Daniel van Gerpen [Mon, 30 Apr 2018 18:00:49 +0000 (18:00 +0000)]
argv.c (expandargv): Fix memory leak for expanded arguments.

       * argv.c (expandargv): Fix memory leak for expanded
        arguments.

From-SVN: r259775

6 years agoClarify documentation for -fpie and -fPIE
Jonathan Wakely [Mon, 30 Apr 2018 16:55:12 +0000 (17:55 +0100)]
Clarify documentation for -fpie and -fPIE

* doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify
interaction with -pie.

From-SVN: r259774

6 years agoselftest.h: fix alphabetization of per-source-file selftest declarations
David Malcolm [Mon, 30 Apr 2018 15:32:32 +0000 (15:32 +0000)]
selftest.h: fix alphabetization of per-source-file selftest declarations

gcc/ChangeLog:
* selftest.h: Fix alphabetization of per-source-file selftest
declarations.

From-SVN: r259773

6 years agoPR c++/61982 - dead stores to destroyed objects.
Jason Merrill [Mon, 30 Apr 2018 15:21:01 +0000 (11:21 -0400)]
PR c++/61982 - dead stores to destroyed objects.

gcc/cp/
* call.c (build_trivial_dtor_call): New, assigns a clobber.
(build_over_call, build_special_member_call): Use it.
* cp-tree.h: Declare it.
* init.c (build_delete): Remove trivial path.
gcc/
* gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS
of clobber.

From-SVN: r259772

6 years agoinit.c (build_dtor_call): Use build_special_member_call.
Jason Merrill [Mon, 30 Apr 2018 15:20:56 +0000 (11:20 -0400)]
init.c (build_dtor_call): Use build_special_member_call.

* init.c (build_dtor_call): Use build_special_member_call.

(build_delete): Remove redundant uses of save_addr.

From-SVN: r259771

6 years agotree.c (build_clobber): New.
Jason Merrill [Mon, 30 Apr 2018 15:20:46 +0000 (11:20 -0400)]
tree.c (build_clobber): New.

* tree.c (build_clobber): New.

* tree.h: Declare it.
* gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it.

From-SVN: r259770

6 years agoUse char_span for return type of location_get_source_line
David Malcolm [Mon, 30 Apr 2018 15:01:56 +0000 (15:01 +0000)]
Use char_span for return type of location_get_source_line

location_get_source_line returns a const char * that isn't 0-terminated,
writing back a length through an int * param.

This is error-prone, as all call-sites have to take into account the
lack of 0-termination, and respect the length of the buffer.

It's cleaner to bundle together this pointer+length state into a class,
so this patch does so, reusing the "char_span" class that I introduced
in r250187 (as part of the fix for PR c/81405).

The patch also adds assertions to all access to the char_span.

gcc/c-family/ChangeLog:
* c-format.c (get_corrected_substring): Update for
location_get_source_line returning a char_span.  Use a char_span
when handling the prefix of the correction.
* c-indentation.c (get_visual_column): Update for
location_get_source_line returning a char_span.
(get_first_nws_vis_column): Likewise.

gcc/ChangeLog:
* diagnostic-show-locus.c (layout::layout): Update for
location_get_source_line returning a char_span.
(struct char_span): Move to input.h.
(struct correction): Update for fields in char_span becoming
private.
(struct source_line): Update for location_get_source_line
returning a char_span.
(layout::print_line): Likewise.
* edit-context.c (edited_file::print_content): Likewise.
(edited_file::print_diff_hunk): Likewise.
(edited_file::print_run_of_changed_lines): Likewise.
(edited_file::get_num_lines): Likewise.
(edited_line::edited_line): Likewise.
* final.c (asm_show_source): Likewise.
* input.c (location_get_source_line): Convert return type
from const char * to char_span, losing the final "line_len"
param.
(dump_location_info): Update for the above.
(get_substring_ranges_for_loc): Likewise.  Use a char_span
when handling the literal within the line.
(test_reading_source_line): Update for location_get_source_line
returning a char_span.
* input.h (class char_span): Move here from
diagnostic-show-locus.c, converting from a struct to a class.
Make data members private.
(char_span::operator bool): New.
(char_span::length): New.
(char_span::get_buffer): New.
(char_span::operator[]): New.
(char_span::subspan): Make const.
(char_span::xstrdup): New.
(location_get_source_line): Convert return type from const char *
to char_span, losing the final "line_size" param.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Update for location_get_source_line returning a
char_span.  Use char_span for handling words in the
"test_many_nested_locations" fix-it example.

From-SVN: r259768

6 years agolto-wrapper.c (ltrans_priorities): New static var.
Jan Hubicka [Mon, 30 Apr 2018 14:40:10 +0000 (16:40 +0200)]
lto-wrapper.c (ltrans_priorities): New static var.

* lto-wrapper.c (ltrans_priorities): New static var.
(cmp_priority): New.
(run_gcc): Read priorities and if doing parallel build order
the Makefile by them.

* lto.c (cmp_partitions_size): Remove.
(lto_wpa_write_files): Also output priorities; do not sort partitions.
(cmp_partition_order): Move to ...
* lto-partition.c (cmp_partition_order): ...
(lto_1_to_1_map): Sort partitions.

From-SVN: r259767

6 years agoinput.h: use STATIC_ASSERT
David Malcolm [Mon, 30 Apr 2018 13:50:22 +0000 (13:50 +0000)]
input.h: use STATIC_ASSERT

gcc/ChangeLog:
* input.h (builtins_location_check): Convert to a STATIC_ASSERT.

From-SVN: r259766

6 years agotree-cfg.c (verify_address): Remove base argument, add flag whether to check TREE_ADD...
Richard Biener [Mon, 30 Apr 2018 13:18:59 +0000 (13:18 +0000)]
tree-cfg.c (verify_address): Remove base argument, add flag whether to check TREE_ADDRESSABLE and do that.

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

* tree-cfg.c (verify_address): Remove base argument, add
flag whether to check TREE_ADDRESSABLE and do that.
(verify_expr): Remove.
(verify_types_in_gimple_reference): Add pieces from verify_expr.
(verify_gimple_assign_single): Likewise.
(verify_gimple_switch): Likewise.
(verify_expr_location_1): Dereference tp once.  Add (disabled)
piece from verify_expr.
(verify_gimple_in_cfg): Do not call verify_expr on all ops.

From-SVN: r259765

6 years ago[ARC] Clear the instruction cache using syscalls.
Claudiu Zissulescu [Mon, 30 Apr 2018 13:16:24 +0000 (15:16 +0200)]
[ARC] Clear the instruction cache using syscalls.

Clear the instruction cache from `beg' to `end'.  This makes an inline
system call to SYS_cacheflush.

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/linux.h (CLEAR_INSN_CACHE): Define.

From-SVN: r259764

6 years ago[ARC] Cleanup sdata handling.
Claudiu Zissulescu [Mon, 30 Apr 2018 13:16:09 +0000 (15:16 +0200)]
[ARC] Cleanup sdata handling.

Clean up how we handle small data load/store operations.

gcc/
2018-01-18  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (prepare_extend_operands): Remove.
(small_data_pattern): Likewise.
(arc_rewrite_small_data): Likewise.
* config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove.
(LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise.
(get_symbol_alignment): New function.
(legitimate_small_data_address_p): Likewise.
(legitimate_scaled_address): Update, call
legitimate_small_data_address_p.
(output_sdata): New static variable.
(arc_print_operand): Update how we handle small data operands.
(arc_print_operand_address): Likewise.
(arc_legitimate_address_p): Update, use
legitimate_small_data_address_p.
(arc_rewrite_small_data_p): Remove.
(arc_rewrite_small_data_1): Likewise.
(arc_rewrite_small_data): Likewise.
(small_data_pattern): Likewise.
(compact_sda_memory_operand): Update to use
legitimate_small_data_address_p and get_symbol_alignment.
(prepare_move_operands): Don't rewite sdata pattern.
(prepare_extend_operands): Remove.
* config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata
pattern.
(zero_extendqisi2): Likewise.
(zero_extendhisi2): Likewise.
(extendqihi2): Likewise.
(extendqisi2): Likewise.
(extendhisi2): Likewise.
(addsi3): Likewise.
(subsi3): Likewise.
(andsi3): Likewise.
* config/arc/constraints.md (Usd): Change it to memory constraint.

gcc/testsuite
2018-01-18  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/interrupt-8.c: Update test.
* gcc.target/arc/loop-4.c: Likewise.
* gcc.target/arc/loop-hazard-1.c: Likewise.
* gcc.target/arc/sdata-3.c: Likewise.

From-SVN: r259763

6 years ago[ARC] Update movhi and movdi patterns.
Claudiu Zissulescu [Mon, 30 Apr 2018 13:15:35 +0000 (15:15 +0200)]
[ARC] Update movhi and movdi patterns.

Allow signed 6-bit short immediates into st[d] instructions.

2017-10-19  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_split_move): Allow signed 6-bit constants
as source of std instructions.
* config/arc/arc.md (movsi_insn): Update pattern predicate to
allow 6-bit constants as source for store instructions.
(movdi_insn): Update instruction pattern to allow 6-bit constants
as source for store instructions.

testsuite/
2017-10-19  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/store-merge-1.c: New test.
* gcc.target/arc/add_n-combine.c: Update test.

From-SVN: r259762

6 years ago* doc/invoke.texi (-fdebug-types-section): Fix grammar.
Jonathan Wakely [Mon, 30 Apr 2018 12:17:32 +0000 (13:17 +0100)]
* doc/invoke.texi (-fdebug-types-section): Fix grammar.

From-SVN: r259761

6 years ago[patch] allow '-' for stdout dump
Nathan Sidwell [Mon, 30 Apr 2018 11:47:04 +0000 (11:47 +0000)]
[patch] allow '-' for stdout dump

https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01303.html
* dumpfile.c (dump_open): Allow '-' for stdout.
* doc/invoke.texi (Developer Options): Document dump filename
determination early.  Document stdin/stdout selection.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
From-SVN: r259760

6 years ago* lto-partition.c (lto_balanced_map): Fix sanity check.
Jan Hubicka [Mon, 30 Apr 2018 11:40:47 +0000 (13:40 +0200)]
* lto-partition.c (lto_balanced_map): Fix sanity check.

From-SVN: r259759

6 years agoMicroblaze Target: PIC data text relative
Andrew Sadek [Mon, 30 Apr 2018 11:16:55 +0000 (11:16 +0000)]
Microblaze Target: PIC data text relative
2018-04-30 Andrew Sadek  <andrew.sadek.se@gmail.com>

gcc/ChangeLog:
* config/microblaze/microblaze.opt: add new option -mpic-data-text-rel.
* config/microblaze/microblaze-protos.h (microblaze_constant_address_p):
Add declaration.
* gcc/config/microblaze/microblaze.h (microblaze_constant_address_p):
CONSTANT_ADDRESS_P definition to microblaze_constant_address_p.
* config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL):
New addressing mode for data-text relative position indepenedent code.
(microblaze_classify_unspec): add 'UNSPEC_TEXT' case ->
'ADDRESS_SYMBOLIC_TXT_REL'.
(microblaze_classify_address): Add handling for UNSPEC + CONST_INT.
(microblaze_legitimate_pic_operand): Exclude function calls from
pic operands in case of TARGET_PIC_DATA_TEXT_REL option.
(microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible
addresses cases.
(microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
(print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
(print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling
for 'address + offset'.
(microblaze_expand_prologue): Add new function prologue call for
'r20' assignation.
(microblaze_asm_generate_pic_addr_dif_vec): Override new target hook
'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector
table in case of TARGET_PIC_DATA_TEXT_REL.
(expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'.
* gcc/config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL):
Add new macros 'UNSPEC_TEXT',
'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue
+ exclude function calls from 'UNSPEC_PLT' in case of data text
relative mode.
* doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
new target hook for generating address diff vector tables in case of
flag_pic.
* doc/tm.texi : Regenerate.
* stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition
'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case
of addr diff vector generation.
* target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
target hook definition.
* targhooks.h, gcc/targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
Add default function for generate_pic_addr_diff_vec -> flag_pic.
* doc/invoke.texi (Add new pic option): Add new microblaze pic
option for data text relative.

testsuite/ChangeLog:
* gcc.target/microblaze/others/data_var1.c: Include
PIC case of r20 base register.
* gcc.target/microblaze/others/data_var2.c: Ditto.
* gcc.target/microblaze/others/picdtr.c: Add new
test case for -mpic-is-data-text-relative.
* gcc.target/microblaze/others/sdata_var1.c: Add
* gcc.target/microblaze/others/sdata_var2.c: Ditto.
* gcc.target/microblaze/others/sdata_var3.c: Ditto.
* gcc.target/microblaze/others/sdata_var4.c: Ditto.
* gcc.target/microblaze/others/sdata_var5.c: Ditto.
* gcc.target/microblaze/others/sdata_var6.c: Ditto.
* gcc.target/microblaze/others/string_cst1_gpopt.c: Ditto.
* gcc.target/microblaze/others/string_cst2_gpopt.c: Ditto.

From-SVN: r259758

6 years agotree-chrec.h (evolution_function_is_constant_p): Remove redundant check.
Richard Biener [Mon, 30 Apr 2018 10:16:11 +0000 (10:16 +0000)]
tree-chrec.h (evolution_function_is_constant_p): Remove redundant check.

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

* tree-chrec.h (evolution_function_is_constant_p): Remove
redundant check.
* tree-cfg.c (tree_node_can_be_shared): Re-order checks.

From-SVN: r259756

6 years agore PR bootstrap/85571 (non-bootstrap-debug miscompare with trunk)
Richard Biener [Mon, 30 Apr 2018 08:18:03 +0000 (08:18 +0000)]
re PR bootstrap/85571 (non-bootstrap-debug miscompare with trunk)

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

PR bootstrap/85571
* Makefile.tpl (STAGE3_CFLAGS): Use -fchecking=1.
(STAGE3_TFLAGS): Likewise.
(STAGEtrain_CFLAGS): Filter out -fchecking=1.
(STAGEtrain_TFLAGS): Likewise.
* Makefile.in: Regenerate.

* dwarf2out.c (gen_producer_string): Ignore -fchecking[=].

From-SVN: r259755

6 years agore PR tree-optimization/28364 (poor optimization choices when iterating over a std...
Richard Biener [Mon, 30 Apr 2018 07:23:36 +0000 (07:23 +0000)]
re PR tree-optimization/28364 (poor optimization choices when iterating over a std::string (probably not c++-specific))

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

PR tree-optimization/28364
PR tree-optimization/85275
* tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after
copying first exit test.

* gcc.dg/tree-ssa/copy-headers-5.c: New testcase.
* gcc.dg/tree-ssa/predcom-8.c: Likewise.
* gcc.dg/tree-ssa/cunroll-13.c: Rewrite to gimple testcase.
* gcc.dg/tree-ssa/ivopt_mult_1.c: XFAIL.
* gcc.dg/tree-ssa/ivopt_mult_1g.c: Add gimple variant that
still passes.
* gcc.dg/tree-ssa/ivopt_mult_2.c: XFAIL.
* gcc.dg/tree-ssa/ivopt_mult_2g.c: Add gimple variant that
still passes.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust.
* gcc.dg/tree-ssa/20030710-1.c: Likewise.
* gcc.dg/tree-ssa/20030711-1.c: Likewise.

From-SVN: r259754

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

From-SVN: r259753

6 years agolto-partition.c: Include sreal.h
Jan Hubicka [Sun, 29 Apr 2018 16:22:35 +0000 (18:22 +0200)]
lto-partition.c: Include sreal.h

* lto-partition.c: Include sreal.h
(add_symbol_to_partition_1): Use size instead of self_size
for size estimate.
(account_reference_p): New.
(lto_balanced_map): Use 64bit arithmetics for size calculatoins; cleanup;
fix accounting errors in boundary size; add debug output; combine cost
as cost/size instead of cost/internal; reduce the partitioning error to
+- 1/8 of the parttion size.

From-SVN: r259749

6 years ago[openacc, testsuite] Fix undefined behaviour in atomic_capture-1.c
Julian Brown [Sun, 29 Apr 2018 10:26:56 +0000 (10:26 +0000)]
[openacc, testsuite] Fix undefined behaviour in atomic_capture-1.c

2018-04-29  Julian Brown  <julian@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>

PR testsuite/85527
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow
arbitrary order for iterations of atomic subtract check.

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

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

From-SVN: r259747

6 years agoDWARF: Add .debug_addr table header for dwarf_version >= 5.
Mark Wielaard [Sat, 28 Apr 2018 19:54:08 +0000 (19:54 +0000)]
DWARF: Add .debug_addr table header for dwarf_version >= 5.

GNU DebugFission didn't add table headers for the .debug_addr
tables, but DWARF5 does. The table header makes it possible
for a DWARF consumer to parse the address tables without having
to index all .debug_info CUs first.

We can keep using the .debug_addr section label as is, because the
DW_AT_[GNU_]addr_base attribute points at the actual address index,
which starts right after the table header. So the label is generated
at the correct location whether the header is added first or not.

Add DW_AT_addr_base instead of DW_AT_GNU_addr_base to the skeleton
CU DIE for DWARF5.

gcc/ChangeLog

* dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for
dwarf_version >= 5.
(dwarf_AT): Handle DW_AT_addr_base.
(add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base.

From-SVN: r259743

6 years agore PR target/84431 (Suboptimal code for masked shifts (x86/x86-64))
Uros Bizjak [Sat, 28 Apr 2018 07:37:04 +0000 (09:37 +0200)]
re PR target/84431 (Suboptimal code for masked shifts (x86/x86-64))

PR target/84431
* config/i386/i386.md (*ashl<dwi>3_doubleword_mask): New pattern.
(*ashl<dwi>3_doubleword_mask_1): Ditto.
(*<shift_insn><dwi>3_doubleword_mask): Ditto.
(*<shift_insn><dwi>3_doubleword_mask_1): Ditto.

testsuite/ChangeLog:

PR target/84431
* gcc.target/i386/pr84431.c: New test.

From-SVN: r259739

6 years agotree-cfg.c (verify_gimple_phi): Take a gphi * argument.
Richard Biener [Sat, 28 Apr 2018 07:05:27 +0000 (07:05 +0000)]
tree-cfg.c (verify_gimple_phi): Take a gphi * argument.

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

* tree-cfg.c (verify_gimple_phi): Take a gphi * argument.
(verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts
to reflect use.  Only add interesting stmts.

From-SVN: r259738

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

From-SVN: r259737

6 years ago[openacc, testsuite] Fix undefined behaviour in atomic_capture-1.f90
Tom de Vries [Fri, 27 Apr 2018 22:11:12 +0000 (22:11 +0000)]
[openacc, testsuite] Fix undefined behaviour in atomic_capture-1.f90

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

PR testsuite/85527
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store
atomic capture results obtained in parallel loop to an array, instead of
to a scalar.

From-SVN: r259733

6 years agore PR ipa/85549 (Infinite loop in ilmbase package)
Martin Jambor [Fri, 27 Apr 2018 20:32:18 +0000 (22:32 +0200)]
re PR ipa/85549 (Infinite loop in ilmbase package)

PR ipa/85549
* ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure
the jump function allows for passing through aggregate values.

* g++.dg/ipa/pr85549.C: New test.

From-SVN: r259730

6 years agore PR c++/85553 (cannot list-initialize a variable of type std::nullptr_t)
Jakub Jelinek [Fri, 27 Apr 2018 20:29:12 +0000 (22:29 +0200)]
re PR c++/85553 (cannot list-initialize a variable of type std::nullptr_t)

PR c++/85553
* init.c (build_zero_init_1): For zero initialization of
NULLPTR_TYPE_P type use build_int_cst directly.

* g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: Add dg-bogus
directive.
* g++.dg/cpp0x/constexpr-85553.C: New test.

From-SVN: r259728

6 years agoinput.h: convert some macros to inline functions
David Malcolm [Fri, 27 Apr 2018 20:20:31 +0000 (20:20 +0000)]
input.h: convert some macros to inline functions

gcc/ChangeLog:
* input.h (in_system_header_at): Convert from macro to inline
function.
(from_macro_expansion_at): Likewise.
(from_macro_definition_at): Likewise.

From-SVN: r259727

6 years ago* config.gcc: Mark tile* targets as deprecated/obsolete.
Jeff Law [Fri, 27 Apr 2018 19:25:47 +0000 (13:25 -0600)]
* config.gcc: Mark tile* targets as deprecated/obsolete.

From-SVN: r259724

6 years agore PR libgcc/84292 (__sync_add_and_fetch returns the old value instead of the new...
Andreas Tobler [Fri, 27 Apr 2018 19:14:05 +0000 (21:14 +0200)]
re PR libgcc/84292 (__sync_add_and_fetch returns the old value instead of the new value)

2018-04-27  Andreas Tobler  <andreast@gcc.gnu.org>
    Maryse Levavasseur <maryse.levavasseur@stormshield.eu>

PR libgcc/84292
* config/arm/freebsd-atomic.c (SYNC_OP_AND_FETCH_N): Fix the
op_and_fetch to return the right result.

Co-Authored-By: Maryse Levavasseur <maryse.levavasseur@stormshield.eu>
From-SVN: r259722

6 years agoDon't offer suggestions for compiler-generated variables (PR c++/85515)
David Malcolm [Fri, 27 Apr 2018 18:39:18 +0000 (18:39 +0000)]
Don't offer suggestions for compiler-generated variables (PR c++/85515)

gcc/cp/ChangeLog:
PR c++/85515
* name-lookup.c (consider_binding_level): Skip compiler-generated
variables.
* search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Flatten
nested if statements into a series of rejection tests.  Reject
lambda-ignored entities as suggestions.

gcc/testsuite/ChangeLog:
PR c++/85515
* g++.dg/pr85515-1.C: New test.
* g++.dg/pr85515-2.C: New test.

From-SVN: r259720

6 years agore PR go/85429 (Several gotools tests FAIL with Solaris as)
Ian Lance Taylor [Fri, 27 Apr 2018 18:01:00 +0000 (18:01 +0000)]
re PR go/85429 (Several gotools tests FAIL with Solaris as)

PR go/85429
    cmd/go: add Solaris assembler syntax for gccgo buildid file

    The Solaris assembler uses a different syntax for section directives.

    This is https://golang.org/cl/109140 ported over to gccgo.

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

From-SVN: r259719

6 years ago* g++.dg/cpp1z/noexcept-type20.C: Elaborate.
Jason Merrill [Fri, 27 Apr 2018 17:32:00 +0000 (13:32 -0400)]
* g++.dg/cpp1z/noexcept-type20.C: Elaborate.

From-SVN: r259718

6 years agocvt.c (cp_fold_convert): Use convert_ptrmem.
Jason Merrill [Fri, 27 Apr 2018 17:09:17 +0000 (13:09 -0400)]
cvt.c (cp_fold_convert): Use convert_ptrmem.

* cvt.c (cp_fold_convert): Use convert_ptrmem.

* typeck.c (convert_ptrmem): Add a NOP even if no adjustment.

From-SVN: r259717

6 years agore PR c++/84691 (internal compiler error: in poplevel_class, at cp/name-lookup.c...
Paolo Carlini [Fri, 27 Apr 2018 16:56:55 +0000 (16:56 +0000)]
re PR c++/84691 (internal compiler error: in poplevel_class, at cp/name-lookup.c:4430)

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

PR c++/84691
* decl.c (grokdeclarator): Clear friendp upon definition in local
class definition error.

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

PR c++/84691
* g++.dg/cpp0x/friend3.C: New.

From-SVN: r259716

6 years agoPR c++/85545 - ICE with noexcept PMF conversion.
Jason Merrill [Fri, 27 Apr 2018 15:00:53 +0000 (11:00 -0400)]
PR c++/85545 - ICE with noexcept PMF conversion.

* cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to
build_ptrmemfunc.
* typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero
adjustment.
(build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs.

From-SVN: r259712

6 years agoFix aarch64 ILP32 ICE with vaarg gimplified code
Richard Biener [Fri, 27 Apr 2018 14:32:09 +0000 (14:32 +0000)]
Fix aarch64 ILP32 ICE with vaarg gimplified code

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

* config/aarch64/aarch64.c: Simplify ap.__stack advance and
fix for ILP32.

From-SVN: r259711

6 years ago[C++ PATCH] cleanup 2
Nathan Sidwell [Fri, 27 Apr 2018 14:01:09 +0000 (14:01 +0000)]
[C++ PATCH] cleanup 2

https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01231.html
* typeck.c (convert_ptrmem): Move local var decls to initialization.

From-SVN: r259710

6 years agotree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
Richard Biener [Fri, 27 Apr 2018 12:53:40 +0000 (12:53 +0000)]
tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.

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

* tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.

From-SVN: r259705

6 years ago[C++ PATCH] some cleanups
Nathan Sidwell [Fri, 27 Apr 2018 11:55:38 +0000 (11:55 +0000)]
[C++ PATCH] some cleanups

https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01227.html
* cp-tree.h (TEMPLATE_INFO): Fix comments.
(TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO.
(NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line.
(dump, print_other_binding_stacks): Remove declarations.
* name-lookup.c (print_other_binding_stack): Make static.
* pt.c (build_template_decl): Make static.

From-SVN: r259704

6 years agoPR85532, crtend.o built without --enable-initfini-array has bad .eh_frame
Alan Modra [Fri, 27 Apr 2018 09:06:39 +0000 (18:36 +0930)]
PR85532, crtend.o built without --enable-initfini-array has bad .eh_frame

PR libgcc/85532
* config/rs6000/t-crtstuff (CRTSTUFF_T_CFLAGS): Add
-fno-asynchronous-unwind-tables.

From-SVN: r259702

6 years agoi386.md (*movti_internal): Substitute Ye constraint with Yd constraint.
Uros Bizjak [Fri, 27 Apr 2018 09:00:27 +0000 (11:00 +0200)]
i386.md (*movti_internal): Substitute Ye constraint with Yd constraint.

* config/i386/i386.md (*movti_internal): Substitute Ye constraint
with Yd constraint. Set "preferred_for_speed" attribute from
TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives
with Yd constraint.
(*movdi_internal): Ditto.
(movti_interunit splitters): Remove
TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition.
(movdi_interunit splitters): Ditto.
* config/i386/constraints.md (Ye): Remove.
(Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC.

From-SVN: r259701

6 years ago[arm] PR target/82518: Return false in ARRAY_MODE_SUPPORTED_P for BYTES_BIG_ENDIAN...
Kyrylo Tkachov [Fri, 27 Apr 2018 08:56:02 +0000 (08:56 +0000)]
[arm] PR target/82518: Return false in ARRAY_MODE_SUPPORTED_P for BYTES_BIG_ENDIAN followup

PR target/82518
* lib/target-supports.exp (check_effective_target_vect_load_lanes):
Use check_effective_target_arm_little_endian.

From-SVN: r259700

6 years ago[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints pt2
Kyrylo Tkachov [Fri, 27 Apr 2018 08:48:49 +0000 (08:48 +0000)]
[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints pt2

PR target/85512
* config/aarch64/constraints.md (Usg): Limit to 31.
(Usj): Limit to 63.

From-SVN: r259699

6 years agore PR ada/85540 (gcc/ada/init.c:1282: suspicious expression ?)
Eric Botcazou [Fri, 27 Apr 2018 08:05:44 +0000 (08:05 +0000)]
re PR ada/85540 (gcc/ada/init.c:1282: suspicious expression ?)

PR ada/85540
* init.c (__gnat_handle_vms_condition): Add missing parentheses.

From-SVN: r259698

6 years agore PR tree-optimization/85529 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
Jakub Jelinek [Fri, 27 Apr 2018 07:09:51 +0000 (09:09 +0200)]
re PR tree-optimization/85529 (wrong code at -O2 and -O3 on x86_64-linux-gnu)

PR tree-optimization/85529
* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
argument.  Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
zero extension or masking of the MSB bit.
(optimize_range_tests): Add FIRST_BB argument, pass it through
to optimize_range_tests_var_bound.
(maybe_optimize_range_tests, reassociate_bb): Adjust
optimize_range_tests callers.

* gcc.c-torture/execute/pr85529-1.c: New test.
* gcc.c-torture/execute/pr85529-2.c: New test.
* gcc.dg/pr85529.c: New test.

From-SVN: r259696

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

From-SVN: r259695

6 years agoMIPS/GCC/testsuite: Fix data-sym-pool.c for n64 code
Maciej W. Rozycki [Thu, 26 Apr 2018 21:03:11 +0000 (21:03 +0000)]
MIPS/GCC/testsuite: Fix data-sym-pool.c for n64 code

With the soft-float n64 ABI and the data-sym-pool.c test case code like
below is produced:

.file 1 "data-sym-pool.c"
.section .mdebug.abi64
.previous
.nan legacy
.module softfloat
.module oddspreg
.abicalls
.option pic0
.text
.align 2
.globl frob
.set mips16
.set nomicromips
.ent frob
.type frob, @function
frob:
.frame $17,16,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x00020000,-8
.fmask 0x00000000,0
daddiu $sp,-16
sd $17,8($sp)
move $17,$sp
ld $2,.L3
move $sp,$17
ld $17,8($sp)
daddiu $sp,16
jr $31
.type __pool_frob_3, @object
__pool_frob_3:
.align 3
.L3:
.dword 305419896
.type __pend_frob_3, @function
__pend_frob_3:
.insn
.end frob
.size frob, .-frob
.ident "GCC: (GNU) 8.0.1 20180410 (experimental)"

(we have no support for hard-float n64 MIPS16 code generation), which
means that the test case will fail, as the regular expression pattern
expects `lw' and `.word' rather than `ld' and `.dword' respectively to
appear in assembly code generation.  Correct the pattern in an obvious
way then making it accept both intructions and pseudo-ops.

gcc/testsuite/
* gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and
`.dword' in addition to `lw' and `.word'.

From-SVN: r259691

6 years agoMIPS/GCC/testsuite: Fix data-sym-pool.c for SVR4 model at -O0
Maciej W. Rozycki [Thu, 26 Apr 2018 21:01:31 +0000 (21:01 +0000)]
MIPS/GCC/testsuite: Fix data-sym-pool.c for SVR4 model at -O0

With GCC configurations using the SVR4 rather than the PLT dynamic
executable model and the o32 ABI with the data-sym-pool.c test case code
like below is produced:

.file 1 "data-sym-pool.c"
.section .mdebug.abi32
.previous
.nan legacy
.module fp=xx
.module nooddspreg
.abicalls
.text
.align 2
.globl frob
.set mips16
.set nomicromips
.ent frob
.type frob, @function
frob:
.frame $17,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x00020000,-4
.fmask 0x00000000,0
save 8,$17
move $17,$sp
lw $2,$L4
move $sp,$17
restore 8,$17
jr $31
.type __pool_frob_3, @object
__pool_frob_3:
.align 2
$L3:
.word __gnu_local_gp
$L4:
.word 305419896
.type __pend_frob_3, @function
__pend_frob_3:
.insn
.end frob
.size frob, .-frob
.ident "GCC: (GNU) 8.0.1 20180410 (experimental)"

causing a failure due to the unexpected `__gnu_local_gp' entry in the
constant pool, even though there is nothing wrong with it as far as the
annotation being examined is concerned.

Given that the SVR4 vs PLT code model consideration is irrelevant for
this test case rather than rewriting the regular expression to match
this variant of code just enforce the PLT model by using the `-mplt'
option.  It is safe to use this option unconditionally as it is silently
ignored with configurations that do not support this model, e.g. bare
metal ELF.

gcc/testsuite/
* gcc.target/mips/data-sym-pool.c (dg-options): Add `-mplt'.

From-SVN: r259690

6 years agoPR c++/85545 - ICE with noexcept PMF conversion.
Jason Merrill [Thu, 26 Apr 2018 20:32:32 +0000 (16:32 -0400)]
PR c++/85545 - ICE with noexcept PMF conversion.

* cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly.

From-SVN: r259689

6 years agocgraph.h (symbol_table): Just declare debug method here.
Richard Biener [Thu, 26 Apr 2018 20:04:15 +0000 (20:04 +0000)]
cgraph.h (symbol_table): Just declare debug method here.

* cgraph.h (symbol_table): Just declare debug method here.
* symtab.c (symbol_table::debug): Define.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r259685

6 years ago* loop-invariant.c (may_assign_reg_p): Return false for frame pointer.
Eric Botcazou [Thu, 26 Apr 2018 15:21:09 +0000 (15:21 +0000)]
* loop-invariant.c (may_assign_reg_p): Return false for frame pointer.

From-SVN: r259683

6 years agoi386.md ("isa" attribute): Add x64_sse2.
Uros Bizjak [Thu, 26 Apr 2018 14:49:32 +0000 (16:49 +0200)]
i386.md ("isa" attribute): Add x64_sse2.

* config/i386/i386.md ("isa" attribute): Add x64_sse2.
("enabled" attribute): Handle "isa" attribute.
(*movdi_internal): Substitute Yi and Yj constraint with x
and Ym and Yn constraint with y constraint.  Update "isa"
attribute and set "preferred_for_speed" attribute from
TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives.
(*movsi_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.
(*zero_extendsidi2): Ditto.
* config/i386/sse.md (vec_set<mode>_0): Ditto.
(sse2_loadld): Ditto.
(*vec_extract<ssevecmodelower>_0): Ditto.
(*vec_extractv4si_0_zext_sse4): Ditto.
(vec_concatv2di): Ditto.
(*vec_dup<mode>): Ditto.
* config/i386/mmx.md (*mov<mode>_internal): Ditto.
* config/i386/constraints.md (Yi): Remove.
(Yj): Remove.
(Ym): Remove.
(Yn): Remove.

From-SVN: r259682

6 years agodumpfile cleanup
Nathan Sidwell [Thu, 26 Apr 2018 14:15:58 +0000 (14:15 +0000)]
dumpfile cleanup

https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01173.html
* dumpfile.c (dump_open): New.
(dump_open_alternate_stream, dump_start, dump_begin): Call it.
(dump_finish): Detect stdio/stderr by value not name.

From-SVN: r259681

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

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

From-SVN: r259679

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

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

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

From-SVN: r259678

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

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

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

From-SVN: r259677

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

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

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

From-SVN: r259676

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

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

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

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

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

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

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

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

From-SVN: r259674

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

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

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

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

From-SVN: r259672