platform/upstream/gcc.git
5 years agore PR go/89019 (LTO and gccgo cause ICE during free_lang_data)
Nikhil Benesch [Wed, 6 Feb 2019 04:48:35 +0000 (04:48 +0000)]
re PR go/89019 (LTO and gccgo cause ICE during free_lang_data)

gcc/go:
        PR go/89019
        * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
        placeholder structs as requiring structural equality.
        (Gcc_backend::set_placeholder_pointer_type): Propagate the
canonical type from the desired pointer type to the placeholder
pointer type.
gcc/testsuite/:
        * lib/go-torture.exp: Test compiling with -flto.

From-SVN: r268572

5 years agoFix type of extern array declared in inner scope with outer initialization shadowed...
Joseph Myers [Wed, 6 Feb 2019 01:51:29 +0000 (01:51 +0000)]
Fix type of extern array declared in inner scope with outer initialization shadowed (PR c/88584).

As reported in bug 88584, if you have a file-scope array with external
linkage, initialized at file scope, and that array is shadowed at
block scope, and is declared again with external linkage and an
incomplete type in an inner scope, it is wrongly given a complete type
in that inner scope when the correct C semantics give it an incomplete
type (only the visible declarations contribute to the type in a given
scope).

In general, issues with the types of external linkage declarations
being different in different scopes were addressed by my fixes for bug
13801, for GCC 4.0.  In this case, however, the code in pushdecl
dealing with giving declarations the right type in each scope works
fine, and the type is subsequently modified by complete_array_type
called from finish_decl: finish_decl is trying to complete an array
type based on an initializer, but that's only correct for the original
initialization at file scope, not for such a declaration in an inner
scope (it's harmless but unnecessary in the case where the original
declaration is still visible in the inner scope).  Thus, this patch
changes finish_decl to stop this logic applying for such an external
declaration in an inner scope.  (An erroneous attempt to include an
initializer for an extern variable in an inner scope is diagnosed
elsewhere.)

This is a regression from GCC 3.4, which properly rejected the code in
question (quite likely by accident).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c:
PR c/88584
* c-decl.c (finish_decl): Do not complete array types for arrays
with external linkage not at file scope.

gcc/testsuite:
PR c/88584
* gcc.dg/redecl-18.c: New test.

From-SVN: r268571

5 years agoDaily bump.
GCC Administrator [Wed, 6 Feb 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268570

5 years agoUpdate .po files.
Joseph Myers [Tue, 5 Feb 2019 23:20:00 +0000 (23:20 +0000)]
Update .po files.

gcc/po:
* 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.

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

From-SVN: r268567

5 years agoPR libstdc++/89128 add deduction guides for container adaptors
Jonathan Wakely [Tue, 5 Feb 2019 22:58:22 +0000 (22:58 +0000)]
PR libstdc++/89128 add deduction guides for container adaptors

PR libstdc++/89128
* include/bits/stl_queue.h (queue, priority_queue): Add deduction
guides.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/deduction.cc: New test.
* testsuite/23_containers/queue/deduction.cc: New test.
* testsuite/23_containers/stack/deduction.cc: New test.

From-SVN: r268566

5 years agore PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023)
Jakub Jelinek [Tue, 5 Feb 2019 22:28:25 +0000 (23:28 +0100)]
re PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023)

PR c++/89187
* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
PARM_DECLs of the thunk.
* lambda.c (maybe_add_lambda_conv_op): Likewise.

* g++.dg/opt/pr89187.C: New test.

From-SVN: r268564

5 years agolibgccjit: introduce gcc_jit_context_add_driver_option
Andrea Corallo [Tue, 5 Feb 2019 22:11:04 +0000 (22:11 +0000)]
libgccjit: introduce gcc_jit_context_add_driver_option

gcc/jit/ChangeLog:
2019-02-05  Andrea Corallo <andrea.corallo@arm.com>

* docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
* docs/topics/contexts.rst (Additional driver options): New
section.
* jit-playback.c (invoke_driver): Add call to append_driver_options.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::~context): Free the optnames within
m_driver_options.
(recording::context::add_driver_option): New method.
(recording::context::append_driver_options): New method.
(recording::context::dump_reproducer_to_file): Add driver
options.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::add_driver_option): New method.
(recording::context::append_driver_options): New method.
(recording::context::m_driver_options): New field.
* libgccjit++.h (gccjit::context::add_driver_option): New
method.
* libgccjit.c (gcc_jit_context_add_driver_option): New API
entrypoint.
* libgccjit.h (gcc_jit_context_add_driver_option): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
macro.
* libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.

gcc/testsuite/ChangeLog:
2019-02-05  Andrea Corallo <andrea.corallo@arm.com>

* jit.dg/add-driver-options-testlib.c: Add support file for
test-add-driver-options.c testcase.
* jit.dg/all-non-failing-tests.h: Add note about
test-add-driver-options.c
* jit.dg/jit.exp (jit-dg-test): Update to support
add-driver-options-testlib.c compilation.
* jit.dg/test-add-driver-options.c: New testcase.

From-SVN: r268563

5 years agore PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer)
Jakub Jelinek [Tue, 5 Feb 2019 22:00:29 +0000 (23:00 +0100)]
re PR rtl-optimization/11304 (Wrong code production with -fomit-frame-pointer)

PR rtl-optimization/11304
* gcc.target/i386/call-1.c (set_eax): Add "eax" clobber.
* gcc.target/i386/call-2.c: New test.

From-SVN: r268562

5 years agoPR c++/89158 - by-value capture of constexpr variable broken.
Marek Polacek [Tue, 5 Feb 2019 21:30:51 +0000 (21:30 +0000)]
PR c++/89158 - by-value capture of constexpr variable broken.

* call.c (convert_like_real) <case ck_user>: Call mark_exp_read
instead of mark_rvalue_use.

* g++.dg/cpp0x/lambda/lambda-89158.C: New test.

From-SVN: r268561

5 years agocompiler: check duplicate implicit indexes in slices/arrays
Ian Lance Taylor [Tue, 5 Feb 2019 18:21:07 +0000 (18:21 +0000)]
compiler: check duplicate implicit indexes in slices/arrays

    Fixes golang/go#28186.

    Reviewed-on: https://go-review.googlesource.com/c/160832

From-SVN: r268554

5 years agoFix pr84711.c testcase
Segher Boessenkool [Tue, 5 Feb 2019 18:03:55 +0000 (19:03 +0100)]
Fix pr84711.c testcase

On powerpc64-linux, this testcase complains the ABI for vector args
has changed, making the testcase fail (excess output).  This patch
shuts up that warning.

* gcc.dg/vect/pr84711.c: Use -Wno-psabi.

From-SVN: r268553

5 years agoS/390: Remove load and test fp splitter
Andreas Krebbel [Tue, 5 Feb 2019 17:14:11 +0000 (17:14 +0000)]
S/390: Remove load and test fp splitter

gcc/ChangeLog:

2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>

PR target/88856
* config/s390/s390.md: Remove load and test FP splitter.

From-SVN: r268550

5 years agore PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)
Aaron Sawdey [Tue, 5 Feb 2019 16:32:06 +0000 (16:32 +0000)]
re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)

2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR target/89112
* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
expand_compare_loop, expand_block_compare_gpr,
expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
#include "profile-count.h" and "predict.h" for types and functions
needed to work with REG_BR_PROB notes.

From-SVN: r268547

5 years agore PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)
Aaron Sawdey [Tue, 5 Feb 2019 16:30:45 +0000 (16:30 +0000)]
re PR target/89112 (Incorrect code generated by rs6000 memcmp expansion)

2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR target/89112
* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
for the long branch case.

From-SVN: r268546

5 years agovec-extract-sint128-1.c: Require int128 effective target.
Jakub Jelinek [Tue, 5 Feb 2019 16:22:21 +0000 (17:22 +0100)]
vec-extract-sint128-1.c: Require int128 effective target.

* gcc.target/powerpc/vec-extract-sint128-1.c: Require int128 effective
target.
* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.

From-SVN: r268545

5 years agore PR target/89188 (ICE in pre_and_rev_post_order_compute, at cfganal.c:1055)
Jakub Jelinek [Tue, 5 Feb 2019 16:21:36 +0000 (17:21 +0100)]
re PR target/89188 (ICE in pre_and_rev_post_order_compute, at cfganal.c:1055)

PR target/89188
* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
can throw, non-call exceptions are enabled and we can't delete
dead exceptions or alter cfg.  Set must_clean if
delete_insn_and_edges returns true, don't set it blindly for calls.
Assert that delete_unreachable_blocks is called only if can_alter_cfg.

* g++.dg/opt/pr89188.C: New test.

From-SVN: r268544

5 years agoPR libstdc++/89194 untangle is_convertible and is_nothrow_convertible
Jonathan Wakely [Tue, 5 Feb 2019 15:45:24 +0000 (15:45 +0000)]
PR libstdc++/89194 untangle is_convertible and is_nothrow_convertible

The additional logic added to __is_convertible_helper in order to
support is_nothrow_convertible makes some uses of is_convertible
ill-formed. This appears to be due to PR c++/87603, but can be avoided
just by defining a separate helper for is_nothrow_convertible. The same
problems are likely to still exist for is_nothrow_convertible, but that
is new and so won't cause regressions for existing users of
is_convertible.

PR libstdc++/89194
* include/std/type_traits (__is_convertible_helper)
(__is_convertible_helper<_From, _To, false>): Revert changes to
support is_nothrow_convertible.
(__is_nt_convertible_helper): New helper.
(is_nothrow_convertible): Use __is_nt_convertible_helper.

From-SVN: r268543

5 years agore PR rtl-optimization/89195 (Corrupted stack offset after combine)
Jakub Jelinek [Tue, 5 Feb 2019 15:38:57 +0000 (16:38 +0100)]
re PR rtl-optimization/89195 (Corrupted stack offset after combine)

PR rtl-optimization/89195
* combine.c (make_extraction): For MEMs, don't extract bytes outside
of the original MEM.

* gcc.c-torture/execute/pr89195.c: New test.

From-SVN: r268542

5 years agovec-extract-slong-1.c: Require p8 execution hardware.
Kelvin Nilsen [Tue, 5 Feb 2019 15:34:34 +0000 (15:34 +0000)]
vec-extract-slong-1.c: Require p8 execution hardware.

gcc/testsuite/ChangeLog:

2019-02-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/vec-extract-slong-1.c: Require p8 execution
hardware.
* gcc.target/powerpc/vec-extract-schar-1.c: Likewise.
* gcc.target/powerpc/vec-extract-sint128-1.c: Likewise.
* gcc.target/powerpc/vec-extract-sshort-1.c: Likewise.
* gcc.target/powerpc/vec-extract-ulong-1.c: Likewise.
* gcc.target/powerpc/vec-extract-uchar-1.c: Likewise.
* gcc.target/powerpc/vec-extract-sint-1.c: Likewise.
* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.
* gcc.target/powerpc/vec-extract-ushort-1.c: Likewise.
* gcc.target/powerpc/vec-extract-uint-1.c: Likewise.

From-SVN: r268541

5 years agore PR tree-optimization/88606 (ICE: verify_type failed (error: type variant differs...
Richard Biener [Tue, 5 Feb 2019 14:57:32 +0000 (14:57 +0000)]
re PR tree-optimization/88606 (ICE: verify_type failed (error: type variant differs by TYPE_TRANSPARENT_AGGR))

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

PR c/88606
* c-decl.c (finish_struct): Reset TYPE_TRANSPARENT_AGGR on
all type variants when not supported.

From-SVN: r268540

5 years agoRestore previous behaviour of test
Jonathan Wakely [Tue, 5 Feb 2019 14:53:53 +0000 (14:53 +0000)]
Restore previous behaviour of test

Go back to using CopyConsOnlyType as before r265485, because it works
again now. Add test using DelAnyAssign for completeness and additional
coverage.

* testsuite/23_containers/vector/modifiers/push_back/49836.cc: Restore
use of CopyConsOnlyType, but also test DelAnyAssign for completeness.

From-SVN: r268539

5 years agoPR libstdc++/89130 restore support for non-MoveConstructible types
Jonathan Wakely [Tue, 5 Feb 2019 14:45:00 +0000 (14:45 +0000)]
PR libstdc++/89130 restore support for non-MoveConstructible types

The changes to "relocate" std::vector elements can lead to new errors
outside the immediate context, because moving the elements to new
storage no longer makes use of the move-if-noexcept utilities. This
means that types with deleted moves no longer degenerate to copies, but
are just ill-formed. The errors happen while instantiating the
noexcept-specifier for __relocate_object_a, when deciding whether to try
to relocate.

This patch introduces indirections to avoid the ill-formed
instantiations of std::__relocate_object_a. In order to avoid using
if-constexpr prior to C++17 this is done by tag dispatching. After this
patch all uses of std::__relocate_a are guarded by checks that will
support sensible code (i.e. code not using custom allocators that fool
the new checks).

PR libstdc++/89130
* include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
__is_alloc_insertable_impl. Replace single type member with two
members, one for each of copy and move insertable.
(__is_move_insertable): New trait for internal use.
* include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
(vector::_S_nothrow_relocate(true_type)): New functions to
conditionally check if __relocate_a can throw.
(vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
on __is_move_insertable.
(vector::_S_do_relocate): New overloaded functions to conditionally
call __relocate_a.
(vector::_S_relocate): New function that dispatches to _S_do_relocate
based on _S_use_relocate.
* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
(vector::_M_default_append): Call _S_relocate instead of __relocate_a.
* testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.

From-SVN: r268537

5 years agoPR libstdc++/89090 avoid C++17 features in C++11/C++14 code
Jonathan Wakely [Tue, 5 Feb 2019 14:44:56 +0000 (14:44 +0000)]
PR libstdc++/89090 avoid C++17 features in C++11/C++14 code

Although GCC and Clang both allow these features pre-C++17 in system
headers, Clang does issue warnings with -Wsystem-headers. It can also
complicate bisection and/or testcase reduction if # line markers are
stripped, because the code won't be known to come from system headers.

PR libstdc++/89090
* include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
parameter unnamed. Add message to static assertion.
* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
(vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
in C++11 code.

From-SVN: r268536

5 years agoGCOV: remove misleading branches and calls info for -f option (PR gcov-profile/89000).
Martin Liska [Tue, 5 Feb 2019 12:17:45 +0000 (13:17 +0100)]
GCOV: remove misleading branches and calls info for -f option (PR gcov-profile/89000).

2019-02-05  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89000
* gcov.c (function_summary): Remove argument.
(file_summary): New function.
(print_usage): Replace tabs with spaces.
(generate_results): Use new function file_summary.

From-SVN: r268533

5 years agoRename __is_trivially_relocatable to __is_bitwise_relocatable.
Marc Glisse [Tue, 5 Feb 2019 09:33:36 +0000 (10:33 +0100)]
Rename __is_trivially_relocatable to __is_bitwise_relocatable.

2019-02-05  Marc Glisse  <marc.glisse@inria.fr>

PR libstdc++/87106
* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
Rename...
(__is_bitwise_relocatable): ... to this.
(__relocate_a_1): Adapt.
* include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
(__is_bitwise_relocatable): ... to this.

From-SVN: r268532

5 years agore PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since r268138)
Jakub Jelinek [Tue, 5 Feb 2019 09:17:18 +0000 (10:17 +0100)]
re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since r268138)

PR target/89186
* optabs.c (prepare_cmp_insn): Pass x and y to
emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).

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

From-SVN: r268531

5 years agore PR middle-end/89150 (Tree form bitmaps break GC)
Richard Biener [Tue, 5 Feb 2019 08:32:16 +0000 (08:32 +0000)]
re PR middle-end/89150 (Tree form bitmaps break GC)

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

PR middle-end/89150
* bitmap.h (struct bitmap_obstack): Do not mark GTY.
(struct bitmap_element): Drop chain_prev so we properly recurse on
the prev member, supporting tree views.
(struct bitmap_head): GTY skip the obstack member.

From-SVN: r268530

5 years ago[PR87770] test partial specializations for type dependence
Alexandre Oliva [Tue, 5 Feb 2019 06:11:25 +0000 (06:11 +0000)]
[PR87770] test partial specializations for type dependence

When instantiating a partial specialization of a template member
function for a full specialization of a class template, we test
whether the context of variables local to the partial specialization,
i.e., the partial specialization itself, is dependent, and this ICEs
in type_dependent_expression_p, when checking that the function type
isn't type-dependent because it is not in a type-dependent scope.

We shouldn't have got that far: the previous block in
type_dependent_expression_p catches cases in which the function itself
takes template arguments of its own, but it only did so for primary
templates, not for partial specializations.  This patch fixes that.

for  gcc/cp/ChangeLog

PR c++/87770
* pt.c (instantiates_primary_template_p): New.
(type_dependent_expression_p): Use it.

for  gcc/testsuite/ChangeLog

PR c++/87770
* g++.dg/pr87770.C: New.

From-SVN: r268529

5 years agoDaily bump.
GCC Administrator [Tue, 5 Feb 2019 00:16:30 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268528

5 years agore PR fortran/89077 (ICE using * as len specifier for character parameter)
Harald Anlauf [Mon, 4 Feb 2019 20:44:22 +0000 (20:44 +0000)]
re PR fortran/89077 (ICE using * as len specifier for character parameter)

2019-02-04  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89077
* gfortran.dg/pr89077.f90: New test.

2019-02-04  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89077
* gfortran.dg/pr89077.f90: New test.

From-SVN: r268525

5 years agodoc: showcase a "union of vectors" pattern (PR 88698)
Alexander Monakov [Mon, 4 Feb 2019 15:00:41 +0000 (18:00 +0300)]
doc: showcase a "union of vectors" pattern (PR 88698)

PR c/88698
* doc/extend.texi (Vector Extensions): Add an example of using vector
types together with x86 intrinsics.

From-SVN: r268522

5 years agoDo not dereference NULL pointer in resolve_ref (PR fortran/89185).
Martin Liska [Mon, 4 Feb 2019 13:28:34 +0000 (14:28 +0100)]
Do not dereference NULL pointer in resolve_ref (PR fortran/89185).

2019-02-04  Martin Liska  <mliska@suse.cz>

PR fortran/89185
* resolve.c (resolve_ref): Remove breakout variable as
we need to prevent prev = &(*prev)->next to happen
with *prev == NULL.

From-SVN: r268521

5 years ago[RS6000] Fix potiential buffer overflow
Alan Modra [Mon, 4 Feb 2019 13:19:49 +0000 (23:49 +1030)]
[RS6000] Fix potiential buffer overflow

* config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
str[] size to 160, and comment.

From-SVN: r268520

5 years ago[RS6000] Emit inline PLT when -mno-tls-markers
Alan Modra [Mon, 4 Feb 2019 13:18:14 +0000 (23:48 +1030)]
[RS6000] Emit inline PLT when -mno-tls-markers

I restricted output of inline PLT sequences to when TLS marker relocs
were also available, which is obviously true when just considering
assembler support.  However, there is a -mno-tls-markers option to
disable emitting the marker relocs.  Currently that option also
disables inline PLT sequences, which is a bug (*).  This patch fixes
that problem.

*) To be honest, it was a deliberate bug.  I didn't want to have to
deal with inline PLT __tls_get_addr sequences lacking the marker
relocs in the linker, but it turns out the existing linker support for
old-style __tls_get_addr calls works reasonably well.

* config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
(rs6000_pltseq_template): Guard output of TLS markers with
TARGET_TLS_MARKERS.
(rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
(rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
to use inline PLT sequences.
* config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
(pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
(pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.

From-SVN: r268519

5 years agoBail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88985).
Martin Liska [Mon, 4 Feb 2019 12:26:14 +0000 (13:26 +0100)]
Bail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88985).

gcc/ChangeLog:

2019-01-24  Martin Liska  <mliska@suse.cz>

PR ipa/88985
* ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
out when ipa_fn_summaries does not contain entry for callee.

gcc/testsuite/ChangeLog:

2019-01-24  Martin Liska  <mliska@suse.cz>

PR ipa/88985
* gcc.dg/ipa/pr88985.c: New test.

From-SVN: r268518

5 years agoReport error when -fpre-include can't be opened (PR fortran/88912).
Martin Liska [Mon, 4 Feb 2019 12:20:59 +0000 (13:20 +0100)]
Report error when -fpre-include can't be opened (PR fortran/88912).

2019-02-04  Martin Liska  <mliska@suse.cz>

PR fortran/88912
* scanner.c (load_file): Report error for -fpre-include
file and do not ICE.

From-SVN: r268517

5 years agoBail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88958).
Martin Liska [Mon, 4 Feb 2019 12:19:48 +0000 (13:19 +0100)]
Bail out when ipa_fn_summaries does not contain entry for callee (PR ipa/88958).

2019-02-04  Martin Liska  <mliska@suse.cz>

PR ipa/88958
* ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
out when ipa_fn_summaries does not contain entry for callee.
2019-02-04  Martin Liska  <mliska@suse.cz>

PR ipa/88958
* gcc.dg/ipa/pr88958.c: New test.

From-SVN: r268516

5 years agosparc.h: Remove superfluous blank lines.
Eric Botcazou [Mon, 4 Feb 2019 11:12:29 +0000 (11:12 +0000)]
sparc.h: Remove superfluous blank lines.

* config/sparc/sparc.h: Remove superfluous blank lines.
* config/sparc/sparc.c (global_offset_table_rtx): Rename into...
(got_register_rtx): ...this.
(sparc_got): Adjust to above renaming.
(sparc_tls_got): Likewise.
(sparc_delegitimize_address): Likewise.
(sparc_output_mi_thunk): Likewise.
(sparc_init_pic_reg): Likewise.
(save_local_or_in_reg_p): Fix test on the GOT register.
(USE_HIDDEN_LINKONCE): Move around.
(get_pc_thunk_name): Likewise.
(gen_load_pcrel_sym): Likewise.
(load_got_register): Likewise.

From-SVN: r268514

5 years agoinline5.c: Handle also @, ...
Jakub Jelinek [Mon, 4 Feb 2019 10:00:53 +0000 (11:00 +0100)]
inline5.c: Handle also @, ...

* gcc.dg/debug/dwarf2/inline5.c: Handle also @, ; or | comment
characters or extra spaces after the comment character.

From-SVN: r268513

5 years ago[NDS32] Change naming rule for dyanmic linker.
Kito Cheng [Mon, 4 Feb 2019 09:00:24 +0000 (09:00 +0000)]
[NDS32] Change naming rule for dyanmic linker.

gcc/
* config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".

From-SVN: r268512

5 years agocontrib/dg-extract-results: Handle timeout warnings
Christophe Lyon [Mon, 4 Feb 2019 08:55:00 +0000 (08:55 +0000)]
contrib/dg-extract-results: Handle timeout warnings

2019-02-04  Christophe Lyon  <christophe.lyon@linaro.org>

contrib/
* dg-extract-results.py: Keep timeout warnings next to their
matching test.
* dg-extract-results.sh: Likewise.

From-SVN: r268511

5 years ago* g++.dg/torture/alias-1.C: New test.
Jakub Jelinek [Mon, 4 Feb 2019 08:52:18 +0000 (09:52 +0100)]
* g++.dg/torture/alias-1.C: New test.

From-SVN: r268510

5 years ago[NDS32] Restrict address mode, when symbol is TLS model.
Chung-Ju Wu [Mon, 4 Feb 2019 07:31:45 +0000 (07:31 +0000)]
[NDS32] Restrict address mode, when symbol is TLS model.

gcc/
* config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
into consideration.

From-SVN: r268509

5 years ago[NDS32] Remove all -mtlsdesc-trmpoline related things.
Chung-Ju Wu [Mon, 4 Feb 2019 07:17:36 +0000 (07:17 +0000)]
[NDS32] Remove all -mtlsdesc-trmpoline related things.

gcc/
* config.gcc (with_nds32_lib, glibc):
Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
* config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
(NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.

From-SVN: r268508

5 years agoDaily bump.
GCC Administrator [Mon, 4 Feb 2019 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268507

5 years agoPR c/69661 - missing -Wsequence-point warning
Martin Sebor [Sun, 3 Feb 2019 22:47:41 +0000 (22:47 +0000)]
PR c/69661 - missing -Wsequence-point warning

gcc/testsuite.ChangeLog:
        * c-c++-common/Wsequence-point-2.c: New test.

From-SVN: r268504

5 years agoPR c++/44648 - missing -Wunused warning on a const variable in if statement
Martin Sebor [Sun, 3 Feb 2019 21:48:27 +0000 (21:48 +0000)]
PR c++/44648 - missing -Wunused warning on a const variable in if statement

gcc/testsuite/ChangeLog:
* g++.dg/warn/Wunused-var-35.C: New test.

From-SVN: r268503

5 years agore PR fortran/67679 (-Wunitialized reports on compiler-generated variables)
Thomas Koenig [Sun, 3 Feb 2019 19:38:25 +0000 (19:38 +0000)]
re PR fortran/67679 (-Wunitialized reports on compiler-generated variables)

2019-02-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/67679
* trans-array.c (gfc_array_allocate):  For setting the bounds on
the new array, add a condition for a not previously allocated
variable.

2019-02-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/67679
* gfortran.dg/warn_undefined_1.f90: New test.
* gfortran.dg/coarray_lock_7.f90: Fix patterns in test.

From-SVN: r268502

5 years agore PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar...
Uros Bizjak [Sun, 3 Feb 2019 16:48:41 +0000 (17:48 +0100)]
re PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar float<->double and other scalar xmm,xmm instructions)

PR target/89071
* config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
Do not prefer (v,v) alternative for non-AVX targets and (m,v)
alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
(*rcpsf2_sse): Ditto.
(*rsqrtsf2_sse): Ditto.
(sse4_1_round<mode<2): Ditto.

From-SVN: r268496

5 years agore PR debug/87295 ([early debug] ICE with -ffat-lto-objects -fdebug-types-section -g)
Richard Biener [Sun, 3 Feb 2019 10:53:01 +0000 (10:53 +0000)]
re PR debug/87295 ([early debug] ICE with -ffat-lto-objects -fdebug-types-section -g)

2019-02-03  Richard Biener  <rguenther@suse.de>

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

From-SVN: r268485

5 years agoDaily bump.
GCC Administrator [Sun, 3 Feb 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268483

5 years agore PR fortran/81344 (Can't disable -ffpe-trap (or not documented))
Dominique d'Humieres [Sat, 2 Feb 2019 21:44:34 +0000 (22:44 +0100)]
re PR fortran/81344 (Can't disable -ffpe-trap (or not documented))

2019-02-02  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/81344
* invoke.texi: Document the behavior of repeated -ffpe-trap
and -ffpe-summary.

From-SVN: r268480

5 years agore PR fortran/88298 (Bogus conversion warning for CSHIFT with -fno-range-check -m64)
Thomas Koenig [Sat, 2 Feb 2019 16:21:43 +0000 (16:21 +0000)]
re PR fortran/88298 (Bogus conversion warning for CSHIFT with -fno-range-check -m64)

2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88298
* arith.c (gfc_int2int): Do not warn if src->do_not_warn is set.
* gfortran.h (gfc_expr): Add flag do_not_warn.
* intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if
no warning is desired.

2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88298
* gfortran.dg/warn_conversion_10.f90: New test.

From-SVN: r268475

5 years agore PR fortran/88393 ([OOP] Segfault with type-bound assignment)
Paul Thomas [Sat, 2 Feb 2019 09:23:30 +0000 (09:23 +0000)]
re PR fortran/88393 ([OOP] Segfault with type-bound assignment)

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88393
* trans-expr.c (gfc_conv_procedure_call): For derived entities,
passed in parentheses to class formals, invert the order of
copying allocatable components to taking the _data of the
class expression.

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88393
* gfortran.dg/alloc_comp_assign_16.f03 : New test.

From-SVN: r268474

5 years agore PR fortran/88980 (segfault on allocatable string member assignment)
Paul Thomas [Sat, 2 Feb 2019 09:16:44 +0000 (09:16 +0000)]
re PR fortran/88980 (segfault on allocatable string member assignment)

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88980
* trans-array.c (gfc_array_init_size): Add element_size to the
arguments.
(gfc_array_allocate): Remove the recalculation of the size of
the element and use element_size from the call to the above.
Unconditionally set the span field of the descriptor.

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88980
* gfortran.dg/realloc_on_assign_32.f90 : New test.

From-SVN: r268473

5 years agore PR fortran/88685 (pointer class array argument indexing)
Paul Thomas [Sat, 2 Feb 2019 09:10:58 +0000 (09:10 +0000)]
re PR fortran/88685 (pointer class array argument indexing)

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88685
* expr.c (is_subref_array): Move the check for class pointer
dummy arrays to after the reference check. If we haven't seen
an array reference other than an element and a component is not
class or derived, return false.

2019-02-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88685
* gfortran.dg/pointer_array_component_3.f90 : New test.

From-SVN: r268472

5 years agoPR c++/88761 - ICE with reference capture of constant.
Jason Merrill [Sat, 2 Feb 2019 04:21:06 +0000 (23:21 -0500)]
PR c++/88761 - ICE with reference capture of constant.

Here, we capture nf, then the use of the proxy decays to a constant during
semantic processing of +nf.  Since we saw some decay from proxy to constant,
we walk through the lambda body to see which proxies are still used, but we
weren't walking into subtrees of DECL_EXPR at all, so we missed the use of
&nf in the initializer of y, and removed the capture.  But then at
instantiation time we try to use nf, don't have a proxy anymore, and ICE.

* lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
non-proxy decls.

From-SVN: r268471

5 years ago* nsdmi-template14.C: Expect error for last example.
Jason Merrill [Sat, 2 Feb 2019 04:19:00 +0000 (23:19 -0500)]
* nsdmi-template14.C: Expect error for last example.

From-SVN: r268470

5 years agoDaily bump.
GCC Administrator [Sat, 2 Feb 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268469

5 years agore PR middle-end/87887 (ICE in make_ssa_name_fn, at tree-ssanames.c:269)
Jakub Jelinek [Sat, 2 Feb 2019 00:04:39 +0000 (01:04 +0100)]
re PR middle-end/87887 (ICE in make_ssa_name_fn, at tree-ssanames.c:269)

PR middle-end/87887
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
Punt with warning on aggregate return or argument types.  Ignore
type/mode checking for uniform arguments.

* gcc.dg/gomp/pr87887-1.c: New test.
* gcc.dg/gomp/pr87887-2.c: New test.

From-SVN: r268466

5 years agoruntime: add hurd netpoll and semaphore support
Ian Lance Taylor [Fri, 1 Feb 2019 23:57:08 +0000 (23:57 +0000)]
runtime: add hurd netpoll and semaphore support

    Patch by Svante Signell.

    Reviewed-on: https://go-review.googlesource.com/c/160827

From-SVN: r268465

5 years agoRegenerate .pot files.
Joseph Myers [Fri, 1 Feb 2019 23:04:22 +0000 (23:04 +0000)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r268464

5 years agoruntime: add getproccount for hurd
Ian Lance Taylor [Fri, 1 Feb 2019 22:55:55 +0000 (22:55 +0000)]
runtime: add getproccount for hurd

    Patch by Svante Signell.

    Reviewed-on: https://go-review.googlesource.com/c/160825

From-SVN: r268463

5 years agore PR fortran/83246 (internal compiler error or loader problem might be related to...
Jakub Jelinek [Fri, 1 Feb 2019 22:54:05 +0000 (23:54 +0100)]
re PR fortran/83246 (internal compiler error or loader problem might be related to a PARAMETER statement being in a BLOCK)

PR fortran/83246
PR fortran/89084
* trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
if sym->ns->construct_entities rather than if
sym->ns->parent->code->op == EXEC_BLOCK.

* gfortran.dg/pr89084.f90: New test.
* gfortran.dg/lto/pr89084_0.f90: New test.
* gfortran.dg/pr83246.f90: New test.

From-SVN: r268462

5 years agolibgo: add configury and sysinfo support for hurd
Ian Lance Taylor [Fri, 1 Feb 2019 22:46:39 +0000 (22:46 +0000)]
libgo: add configury and sysinfo support for hurd

    Patch by Svante Signell.

    Reviewed-on: https://go-review.googlesource.com/c/160824

From-SVN: r268461

5 years agolibgo: add hurd build tags to test files
Ian Lance Taylor [Fri, 1 Feb 2019 22:11:50 +0000 (22:11 +0000)]
libgo: add hurd build tags to test files

    Patch by Svante Signell.

    Reviewed-on: https://go-review.googlesource.com/c/160823

From-SVN: r268460

5 years agolibgo: add hurd build tags
Ian Lance Taylor [Fri, 1 Feb 2019 21:57:36 +0000 (21:57 +0000)]
libgo: add hurd build tags

    Patch by Svante Signell.

    Reviewed-on: https://go-review.googlesource.com/c/160822

From-SVN: r268459

5 years agoruntime, sync: use __atomic intrinsics instead of __sync
Ian Lance Taylor [Fri, 1 Feb 2019 21:55:38 +0000 (21:55 +0000)]
runtime, sync: use __atomic intrinsics instead of __sync

    GCC has supported the __atomic intrinsics since 4.7.  They are better
    than the __sync intrinsics in that they specify a memory model and,
    more importantly for our purposes, they are reliably implemented
    either in the compiler or in libatomic.

    Fixes https://gcc.gnu.org/PR52084

    Reviewed-on: https://go-review.googlesource.com/c/160820

From-SVN: r268458

5 years agoPR c++/88325 - ICE with invalid out-of-line template member definition.
Marek Polacek [Fri, 1 Feb 2019 19:58:44 +0000 (19:58 +0000)]
PR c++/88325 - ICE with invalid out-of-line template member definition.

* parser.c (cp_parser_class_name): Don't call make_typename_type
for overloads.

* g++.dg/cpp2a/typename14.C: New test.

From-SVN: r268455

5 years agocombine: Use TDF_DETAILS for "can't combine" dump prints
Segher Boessenkool [Fri, 1 Feb 2019 16:26:48 +0000 (17:26 +0100)]
combine: Use TDF_DETAILS for "can't combine" dump prints

Some people use the -fdump-rtl-combine dumps (instead of the -da or
-fdump-rtl-combine-all dump), but the "Can't combine iN into iM"
messages do not make any sense if the failed combine attempts are not
printed otherwise.  So let's change that.

* combine.c (try_combine): Do not print "Can't combine" messages unless
printing failed combination attempts.

From-SVN: r268453

5 years ago[PR hsa/87863] Set assembler name of group and global variables early
Martin Jambor [Fri, 1 Feb 2019 16:22:13 +0000 (17:22 +0100)]
[PR hsa/87863] Set assembler name of group and global variables early

2019-02-01  Martin Jambor  <mjambor@suse.cz>

PR hsa/87863
* omp-grid.c (grid_mark_variable_segment): Set assembler name of group
segment and global segment variables before making them static.

From-SVN: r268452

5 years agoAdd two missing dump_enabled_p calls
Martin Jambor [Fri, 1 Feb 2019 16:15:36 +0000 (17:15 +0100)]
Add two missing dump_enabled_p calls

2019-02-01  Martin Jambor  <mjambor@suse.cz>

* omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
missed optimization dump with dump_enabled_p.

From-SVN: r268451

5 years agocompiler: support alias to pointer type as receiver in method declaration
Ian Lance Taylor [Fri, 1 Feb 2019 15:00:46 +0000 (15:00 +0000)]
compiler: support alias to pointer type as receiver in method declaration

    Fixes golang/go#27994.

    Reviewed-on: https://go-review.googlesource.com/c/160459

From-SVN: r268450

5 years agore PR tree-optimization/88597 (Compile time hog w/ -O1 -fpeel-loops)
Richard Biener [Fri, 1 Feb 2019 13:41:43 +0000 (13:41 +0000)]
re PR tree-optimization/88597 (Compile time hog w/ -O1 -fpeel-loops)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR middle-end/88597
* tree-scalar-evolution.c (analyze_scalar_evolution): Set up
the instantiate cache.
(instantiate_scev_binary): Elide second operand procesing
if equal to the first.
* tree-chrec.c (chrec_contains_symbols): Add visited set.
(chrec_contains_undetermined): Likewise.
(tree_contains_chrecs): Likewise.

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

From-SVN: r268449

5 years ago* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
Jan Hubicka [Fri, 1 Feb 2019 10:46:36 +0000 (11:46 +0100)]
* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.

From-SVN: r268448

5 years agore PR tree-optimization/85497 ([graphite] ICE in set_codegen_error, at graphite-isl...
Richard Biener [Fri, 1 Feb 2019 09:17:14 +0000 (09:17 +0000)]
re PR tree-optimization/85497 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/85497
* gcc.dg/graphite/pr85497.c: New testcase.

From-SVN: r268447

5 years agore PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c)
Richard Biener [Fri, 1 Feb 2019 09:08:55 +0000 (09:08 +0000)]
re PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c)

2019-02-01  Richard Biener  <rguenther@suse.de>

PR testsuite/87451
* gcc.dg/debug/dwarf2/inline5.c: Allow more comment variants.

From-SVN: r268446

5 years agore PR tree-optimization/89143 (comparison of abs(i) against excessive constant less...
Jakub Jelinek [Fri, 1 Feb 2019 08:44:23 +0000 (09:44 +0100)]
re PR tree-optimization/89143 (comparison of abs(i) against excessive constant less than UXXX_MAX no longer folded)

PR tree-optimization/89143
* wide-int-range.h (wide_int_range_absu): Declare.
* wide-int-range.cc (wide_int_range_absu): New function.
* tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.

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

From-SVN: r268445

5 years agore PR tree-optimization/88107 (ICE in find_outermost_region_in_block, at tree-cfg...
Jakub Jelinek [Fri, 1 Feb 2019 08:43:02 +0000 (09:43 +0100)]
re PR tree-optimization/88107 (ICE in find_outermost_region_in_block, at tree-cfg.c:7157)

PR tree-optimization/88107
* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
instead of assertion that eh_region_outermost is non-NULL, if it
is NULL, set *ALL to true and return NULL.
(move_sese_region_to_fn): Adjust caller, if all is set, call
duplicate_eh_regions with NULL region.

* gcc.dg/gomp/pr88107.c: New test.

From-SVN: r268444

5 years agore PR c++/87175 (__attribute__)) is ignored by the parser)
Jakub Jelinek [Fri, 1 Feb 2019 08:42:01 +0000 (09:42 +0100)]
re PR c++/87175 (__attribute__)) is ignored by the parser)

PR c++/87175
* parser.c (cp_parser_gnu_attributes_opt): Set ok to false
if require_open failed.

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

From-SVN: r268443

5 years agore PR rtl-optimization/88593 (cleanup_cfg may make cached dominance info stale)
Richard Biener [Fri, 1 Feb 2019 08:07:35 +0000 (08:07 +0000)]
re PR rtl-optimization/88593 (cleanup_cfg may make cached dominance info stale)

2019-02-01  Richard Biener  <rguenth@suse.de>

PR rtl-optimization/88593
* mode-switching.c (optimize_mode_switching): Free dominators before
calling cleanup_cfg.

From-SVN: r268442

5 years agore PR tree-optimization/88932 (ICE: verify_ssa failed (Error: definition in block...
Bin Cheng [Fri, 1 Feb 2019 02:39:52 +0000 (02:39 +0000)]
re PR tree-optimization/88932 (ICE: verify_ssa failed (Error: definition in block 29 does not dominate use in block 25))

PR tree-optimization/88932
* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.

gcc/testsuite
* gfortran.dg/pr88932.f90: New test.

From-SVN: r268439

5 years agoPR c++/88983 - ICE with switch in constexpr function.
Marek Polacek [Fri, 1 Feb 2019 00:30:46 +0000 (00:30 +0000)]
PR c++/88983 - ICE with switch in constexpr function.

* constexpr.c (cxx_eval_switch_expr): Use SWITCH_COND and SWITCH_BODY.
(cxx_eval_constant_expression) <case COND_EXPR>: Don't look for the
label in the else branch if we found it in the then branch.

* g++.dg/cpp1y/constexpr-88983.C: New test.

From-SVN: r268438

5 years agoDaily bump.
GCC Administrator [Fri, 1 Feb 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r268437

5 years agore PR middle-end/89137 (gcc/omp-low.c:7135: possible read of uninit memory ?)
Jakub Jelinek [Thu, 31 Jan 2019 23:05:01 +0000 (00:05 +0100)]
re PR middle-end/89137 (gcc/omp-low.c:7135: possible read of uninit memory ?)

PR middle-end/89137
* omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
bogus clang warning.

From-SVN: r268434

5 years ago* libgfortran/ChangeLog: Better commit message for my last commit.
Uros Bizjak [Thu, 31 Jan 2019 22:59:36 +0000 (23:59 +0100)]
* libgfortran/ChangeLog: Better commit message for my last commit.

From-SVN: r268433

5 years agore PR fortran/88669 (Contiguous attribute wrongly rejected)
Thomas Koenig [Thu, 31 Jan 2019 22:21:28 +0000 (22:21 +0000)]
re PR fortran/88669 (Contiguous attribute wrongly rejected)

2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88669
* resolve.c (resolve_component): If the reference is a BT_CLASS,
copy the contiguous attribute from the reference and use the
correct attributes.

2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/88669
* gfortran.dg/contiguous_9.f90: New test.

From-SVN: r268432

5 years agot-linux: Add -mfp-rounding-mode=d to HOST_LIBGCC2_CFLAGS.
Uros Bizjak [Thu, 31 Jan 2019 20:49:02 +0000 (21:49 +0100)]
t-linux: Add -mfp-rounding-mode=d to HOST_LIBGCC2_CFLAGS.

* config/alpha/t-linux: Add -mfp-rounding-mode=d
to HOST_LIBGCC2_CFLAGS.

From-SVN: r268430

5 years agoPR c++/89083, c++/80864 - ICE with list initialization in template.
Marek Polacek [Thu, 31 Jan 2019 20:21:11 +0000 (20:21 +0000)]
PR c++/89083, c++/80864 - ICE with list initialization in template.

* constexpr.c (adjust_temp_type): Use copy_node and change the type
instead of using build_constructor.
* decl.c (reshape_init_r): Don't reshape a digested initializer.
Return the initializer for COMPOUND_LITERAL_P.

* g++.dg/cpp0x/initlist107.C: New test.
* g++.dg/cpp0x/initlist108.C: New test.
* g++.dg/cpp0x/initlist109.C: New test.
* g++.dg/cpp0x/initlist110.C: New test.
* g++.dg/cpp0x/initlist111.C: New test.
* g++.dg/cpp0x/initlist112.C: New test.
* g++.dg/init/ptrfn4.C: New test.

From-SVN: r268428

5 years agore PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar...
Uros Bizjak [Thu, 31 Jan 2019 20:06:42 +0000 (21:06 +0100)]
re PR target/89071 (AVX vcvtsd2ss lets us avoid PXOR dependency breaking for scalar float<->double and other scalar xmm,xmm instructions)

PR target/89071
* config/i386/i386.md (*extendsfdf2): Split out reg->reg
alternative to avoid partial SSE register stall for TARGET_AVX.
(truncdfsf2): Ditto.
(sse4_1_round<mode>2): Ditto.

From-SVN: r268427

5 years agoFix bogus fix-it for FLT_MAX (PR c/89122)
David Malcolm [Thu, 31 Jan 2019 18:09:29 +0000 (18:09 +0000)]
Fix bogus fix-it for FLT_MAX (PR c/89122)

PR c/89122 reports that we emit a bogus fix-it hint for the case where
the code uses FLT_MAX, but has included <limits.h> rather than <float.h>:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function); did you
  mean 'INT_MAX'?
    3 | float f = FLT_MAX;
      |           ^~~~~~~
      |           INT_MAX

This patch adds some knowledge of <float.h> (and <cfloat>) to
known-headers.cc, fixing the issue:

x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function)
    3 | float f = FLT_MAX;
      |           ^~~~~~~
x.c:2:1: note: 'FLT_MAX' is defined in header '<float.h>'; did you forget
  to '#include <float.h>'?
    1 | #include <limits.h>
  +++ |+#include <float.h>
    2 |

gcc/c-family/ChangeLog:
PR c/89122
* known-headers.cc (get_stdlib_header_for_name): Add
{FLT|DBL|LDBL}_{MAX|MIN} to "hints" array.

gcc/testsuite/ChangeLog:
PR c/89122
* g++.dg/spellcheck-stdlib.C (test_FLT_MAX): New test.
* gcc.dg/spellcheck-stdlib.c (test_FLT_MAX): New test.

From-SVN: r268426

5 years agoPR c++/88752 - ICE with lambda and constexpr if.
Jason Merrill [Thu, 31 Jan 2019 15:03:21 +0000 (10:03 -0500)]
PR c++/88752 - ICE with lambda and constexpr if.

In this testcase, we look for an instantiation of the outer lambda from
within the inner lambda.  enclosing_instantiation_of didn't handle this
properly, as it assumed that any references would be from the same lambda
nesting depth.  Fixed thus.

* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
* pt.c (tsubst_lambda_expr): Set it.
(instantiated_lambda_fn_p): Check it.
(enclosing_instantiation_of): Use it.

From-SVN: r268424

5 years agore PR middle-end/89008 (O2 and O1 results differ for simple test)
Bill Schmidt [Thu, 31 Jan 2019 13:53:06 +0000 (13:53 +0000)]
re PR middle-end/89008 (O2 and O1 results differ for simple test)

2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>

PR tree-optimization/89008
* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
process anything of the form X * 0.

From-SVN: r268422

5 years ago[libbacktrace] Fix .gnu_debugaltlink build-id check
Tom de Vries [Thu, 31 Jan 2019 12:17:32 +0000 (12:17 +0000)]
[libbacktrace] Fix .gnu_debugaltlink build-id check

The 'debugaltlink_name_len =+ 1' bug reported in PR89136 exposes the fact that
the build-id is not verified for the .gnu_debugaltlink.

Fix both problems.

2019-01-31  Tom de Vries  <tdevries@suse.de>

PR libbacktrace/89136
* elf.c (elf_add): Read build-id if with_buildid_data.  Fix
'debugaltlink_name_len =+ 1'.

From-SVN: r268419

5 years agore PR tree-optimization/89135 (internal compiler error: in gimple_split_edge, at...
Richard Biener [Thu, 31 Jan 2019 11:51:59 +0000 (11:51 +0000)]
re PR tree-optimization/89135 (internal compiler error: in gimple_split_edge, at tree-cfg.c:2747)

2019-01-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

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

From-SVN: r268417

5 years agore PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribu...
Jakub Jelinek [Thu, 31 Jan 2019 08:20:45 +0000 (09:20 +0100)]
re PR sanitizer/89124 (__attribute__((no_sanitize_address)) interferes with __attribute__((target(xxx))))

PR sanitizer/89124
* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
always_inline callees into no_sanitize_address callers.

* c-c++-common/asan/pr89124.c: New test.

From-SVN: r268415

5 years agore PR rtl-optimization/89115 (compile time and memory hog)
Richard Biener [Thu, 31 Jan 2019 08:09:59 +0000 (08:09 +0000)]
re PR rtl-optimization/89115 (compile time and memory hog)

2019-01-31  Richard Biener  <rguenther@suse.de>

PR rtl-optimization/89115
* lra.c (lra_rtx_hash): Properly hash CONST_INT values.

From-SVN: r268414

5 years agore PR libstdc++/88170 (pretty printer FAILs)
Jakub Jelinek [Thu, 31 Jan 2019 07:37:34 +0000 (08:37 +0100)]
re PR libstdc++/88170 (pretty printer FAILs)

PR libstdc++/88170
* c-pretty-print.c (pp_c_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

* cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

From-SVN: r268413

5 years agore PR fortran/52564 (Accepts invalid: Missing I/O list after comma)
Jerry DeLisle [Thu, 31 Jan 2019 03:37:16 +0000 (03:37 +0000)]
re PR fortran/52564 (Accepts invalid: Missing I/O list after comma)

2019-01-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/52564
* io.c (match_io): Add check for comma after '*' without subsequent
IO list.

* gfortran.dg/print_2.f90: New test.

From-SVN: r268412

5 years agoPR other/89106 - cast-to-union documentation incorrect w.r.t. lvalueness
Martin Sebor [Thu, 31 Jan 2019 02:33:58 +0000 (02:33 +0000)]
PR other/89106 - cast-to-union documentation incorrect w.r.t. lvalueness

gcc/ChangeLog:

PR other/89106
* doc/extend.texi (cast to a union): Correct and expand.

From-SVN: r268411