gcc.git
6 years agore PR fortran/85083 (ICE in gfc_convert_to_structure_constructor, at fortran/primary...
Thomas Koenig [Tue, 27 Mar 2018 17:28:35 +0000 (17:28 +0000)]
re PR fortran/85083 (ICE in gfc_convert_to_structure_constructor, at fortran/primary.c:2915)

2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
Harald Anlauf  <anlauf@gmx.de>

PR fortran/85083
* primary.c (gfc_convert_to_structure_constructor): Check
conformance of argument types in structure constructor.

2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
Harald Anlauf  <anlauf@gmx.de>

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

Co-Authored-By: Harald Anlauf <anlauf@gmx.de>
From-SVN: r258899

6 years agosearch.c (check_final_overrider): Use inform instead of error for the diagnostics...
Volker Reichelt [Tue, 27 Mar 2018 17:21:20 +0000 (17:21 +0000)]
search.c (check_final_overrider): Use inform instead of error for the diagnostics of the overridden functions.

2018-03-27  Volker Reichelt  <v.reichelt@netcologne.de>

        * search.c (check_final_overrider): Use inform instead of error
        for the diagnostics of the overridden functions.  Tweak wording.

        * g++.dg/cpp0x/defaulted2.C: Use dg-message instead of dg-error
        for the diagnostics of overridden functions.  Adjust for new wording.
        * g++.dg/cpp0x/implicit1.C: Likewise.
        * g++.dg/cpp0x/override1.C: Likewise.
        * g++.dg/cpp1y/auto-fn18.C: Likewise.
        * g++.dg/eh/shadow1.C: Likewise.
        * g++.dg/inherit/covariant12.C: Likewise.
        * g++.dg/inherit/covariant14.C: Likewise.
        * g++.dg/inherit/covariant15.C: Likewise.
        * g++.dg/inherit/covariant16.C: Likewise.
        * g++.dg/inherit/covariant22.C: Likewise.
        * g++.dg/inherit/crash3.C: Likewise.
        * g++.dg/inherit/error2.C: Likewise.
        * g++.dg/template/crash100.C: Likewise.
        * g++.old-deja/g++.eh/spec6.C: Likewise.
        * g++.old-deja/g++.mike/p811.C: Likewise.
        * g++.old-deja/g++.other/virtual11.C: Likewise.
        * g++.old-deja/g++.other/virtual4.C: Likewise.

From-SVN: r258898

6 years agoi386: Insert ENDBR to trampoline for -fcf-protection=branch -mibt
H.J. Lu [Tue, 27 Mar 2018 17:18:51 +0000 (17:18 +0000)]
i386: Insert ENDBR to trampoline for -fcf-protection=branch -mibt

When -fcf-protection=branch -mibt are used, we need to insert ENDBR
to trampoline.  TRAMPOLINE_SIZE is creased by 4 bytes to accommodate
4-byte ENDBR instruction.

gcc/

PR target/85044
* config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for
-fcf-protection=branch -mibt.
* config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes.

gcc/testsuite/

PR target/85044
* gcc.target/i386/pr85044.c: New test.

From-SVN: r258897

6 years agoPR testsuite/83462 - c-c++-common/Warray-bounds-3.c fails on arm-none-eabi
Martin Sebor [Tue, 27 Mar 2018 17:08:41 +0000 (17:08 +0000)]
PR testsuite/83462 - c-c++-common/Warray-bounds-3.c fails on arm-none-eabi

gcc/testsuite/ChangeLog:
* c-c++-common/Warray-bounds-4.c: Disable assertion for targets
other than x86.

From-SVN: r258896

6 years ago[AArch64] XFAIL gcc.target/aarch64/store_v2vec_lanes.c for ILP32
Kyrylo Tkachov [Tue, 27 Mar 2018 16:52:10 +0000 (16:52 +0000)]
[AArch64] XFAIL gcc.target/aarch64/store_v2vec_lanes.c for ILP32

The test in question fails for ilp32. The initial analysis I did in the PR for it
is that for ILP32 we generate somewhat different address forms that we'd need to adjust aarch64_classify_address to catch.
Given the optimisation this test checks for was added for GCC 8 it is not a regression, and improving the codegen on ILP32
would be an enhancement rather than a fix. So Richi has asked for it to be marked as XFAIL on ILP32, which is what this
patch does.
Checked that the test still passes on LP64 and appears as XFAIL on -mabi=ilp32.

PR target/83009
* gcc.target/aarch64/store_v2vec_lanes.c: XFAIL for ilp32.

From-SVN: r258894

6 years ago[Patch ARM] Fix PR target/81863
Ramana Radhakrishnan [Tue, 27 Mar 2018 14:06:20 +0000 (14:06 +0000)]
[Patch ARM] Fix PR target/81863

This has been in my patch stack for quite some time. The problem here
was that we weren't handling arm_word_relocations in
arm_valid_symbolic_address and is the surest fix for this
for GCC8 and GCC7.

Regression tested on arm-none-linux-gnueabihf . Applying to
trunk and backporting to GCC-7 in a day or so.

regards
Ramana

2018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/81863
* config/arm/arm.c (arm_valid_symbolic_address): Handle arm_word_relocations

2018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/81863
* gcc.target/arm/pr81863.c: New test.

From-SVN: r258886

6 years agore PR target/85056 ([nvptx] wrong declaration of external arrays)
Cesar Philippidis [Tue, 27 Mar 2018 13:54:03 +0000 (06:54 -0700)]
re PR target/85056 ([nvptx] wrong declaration of external arrays)

PR target/85056

gcc/
* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
extern array declarations.

gcc/testsuite/
* testsuite/gcc.target/nvptx/pr85056.c: New test.
* testsuite/gcc.target/nvptx/pr85056a.c: New test.

From-SVN: r258885

6 years agore PR testsuite/82847 (gcc.dg/vect/slp-perm-9.c fail)
Richard Biener [Tue, 27 Mar 2018 13:26:04 +0000 (13:26 +0000)]
re PR testsuite/82847 (gcc.dg/vect/slp-perm-9.c fail)

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

PR testsuite/82847
* lib/target-supports.exp (check_ssse3_available): New function.
(check_effective_target_vect_perm_short): Enable for x86 if
check_ssse3_available.

From-SVN: r258882

6 years agore PR middle-end/84067 (gcc.dg/wmul-1.c regression on aarch64 after r257077)
Richard Biener [Tue, 27 Mar 2018 13:23:15 +0000 (13:23 +0000)]
re PR middle-end/84067 (gcc.dg/wmul-1.c regression on aarch64 after r257077)

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

PR middle-ed/84067
* match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with
explicit single_use checks.

From-SVN: r258881

6 years agore PR tree-optimization/85082 (ICE with -Ofast in vn_reference_insert_pieces, at...
Richard Biener [Tue, 27 Mar 2018 12:13:55 +0000 (12:13 +0000)]
re PR tree-optimization/85082 (ICE with -Ofast in vn_reference_insert_pieces, at tree-ssa-sccvn.c:2624)

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

PR tree-optimization/85082
* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
Valueize the VUSE.

* gfortran.dg/pr85082.f90: New testcase.

From-SVN: r258877

6 years agoumips-stroe16-2.c: Change "length = 2" to "l=2" in dg-final.
Chenghua Xu [Tue, 27 Mar 2018 11:43:43 +0000 (11:43 +0000)]
umips-stroe16-2.c: Change "length = 2" to "l=2" in dg-final.

2018-03-27  Chenghua Xu  <paul.hua.gm@gmail.com>

    * gcc.target/mips/umips-stroe16-2.c: Change "length = 2"
    to "l=2" in dg-final.

From-SVN: r258876

6 years agofix-r4000-1.c: Delete "[^\n]+" in dg-final.
Chenghua Xu [Tue, 27 Mar 2018 11:35:07 +0000 (11:35 +0000)]
fix-r4000-1.c: Delete "[^\n]+" in dg-final.

2018-03-27  Chenghua Xu  <paul.hua.gm@gmail.com>

    * gcc.target/mips/fix-r4000-1.c: Delete "[^\n]+" in dg-final.
    * gcc.target/mips/fix-r4000-2.c: Likewise.
    * gcc.target/mips/fix-r4000-3.c: Likewise.
    * gcc.target/mips/fix-r4000-4.c: Likewise.
    * gcc.target/mips/fix-r4000-5.c: Likewise.
    * gcc.target/mips/fix-r4000-6.c: Likewise.
    * gcc.target/mips/fix-r4000-7.c: Likewise.
    * gcc.target/mips/fix-r4000-8.c: Likewise.
    * gcc.target/mips/fix-r4000-9.c: Likewise.
    * gcc.target/mips/fix-r4000-10.c: Likewise.
    * gcc.target/mips/fix-r4000-7.c: Change dg-final
    "mulditi3_r4000" instead of "mulditi3".
    * gcc.target/mips/fix-r4000-8.c: Change dg-final
    "umulditi3_r4000" instead of "umulditi3".

From-SVN: r258875

6 years agore PR c++/85068 (ICE with invalid covariant return type hierarchy)
Jakub Jelinek [Tue, 27 Mar 2018 11:02:08 +0000 (13:02 +0200)]
re PR c++/85068 (ICE with invalid covariant return type hierarchy)

PR c++/85068
* class.c (update_vtable_entry_for_fn): Don't ICE if base_binfo
is NULL.  Assert if thunk_binfo is NULL then errorcount is non-zero.

* g++.dg/inherit/covariant22.C: New test.

From-SVN: r258873

6 years agore PR testsuite/84004 (gcc.dg/vect/vect-95.c XPASSes)
Richard Biener [Tue, 27 Mar 2018 10:01:46 +0000 (10:01 +0000)]
re PR testsuite/84004 (gcc.dg/vect/vect-95.c XPASSes)

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

PR testsuite/84004
* gcc.dg/vect/vect-95.c: Never expect the loop to be peeled for
alignment.

From-SVN: r258872

6 years ago[Patch AArch64] Turn on -fasynchronous-unwind-tables and -funwind-tables by default
Ramana Radhakrishnan [Tue, 27 Mar 2018 09:26:16 +0000 (09:26 +0000)]
[Patch AArch64] Turn on -fasynchronous-unwind-tables and -funwind-tables by default

2018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES
* common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]):
Turn on fasynchronous-unwind-tables and funwind-tables.

From-SVN: r258871

6 years agore PR c++/84632 (internal compiler error: tree check: expected record_type or union_t...
Paolo Carlini [Tue, 27 Mar 2018 06:52:04 +0000 (06:52 +0000)]
re PR c++/84632 (internal compiler error: tree check: expected record_type or union_type or qual_union_type, have array_type in reduced_constant_expression_p, at cp/constexpr.c:1778)

/cp
2018-03-27  Paolo Carlini  <paolo.carlini@oracle.com>
    Jason Merrill  <jason@redhat.com>

PR c++/84632
* init.c (build_aggr_init): When initializing from array,
reject anything but CONSTRUCTORs and TARGET_EXPRs.
(build_vec_init): Handle separately ARRAY_TYPEs.

/testsuite
2018-03-27  Paolo Carlini  <paolo.carlini@oracle.com>
    Jason Merrill  <jason@redhat.com>

PR c++/84632
* g++.dg/init/array49.C: New.
* g++.dg/torture/pr70499.C: Adjust.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r258870

6 years agoDaily bump.
GCC Administrator [Tue, 27 Mar 2018 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258869

6 years ago* es.po, sv.po: Update.
Joseph Myers [Mon, 26 Mar 2018 22:02:59 +0000 (23:02 +0100)]
* es.po, sv.po: Update.

From-SVN: r258866

6 years agoruntime: don't check for stale runtime
Ian Lance Taylor [Mon, 26 Mar 2018 19:29:27 +0000 (19:29 +0000)]
runtime: don't check for stale runtime

    The gccgo runtime is never stale, and on a system with gc sources in
    ~/go the test may wind up checking whether the gc runtime is stale.

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

From-SVN: r258865

6 years agore PR target/85073 ([x86] extra check after BLSR)
Uros Bizjak [Mon, 26 Mar 2018 19:26:19 +0000 (21:26 +0200)]
re PR target/85073 ([x86] extra check after BLSR)

PR target/85073
* config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern.
(*bmi_blsr_<mode>_ccz): Ditto.

testsuite/ChangeLog:

PR target/85073
* gcc.target/i386/pr85073.c: New test.

From-SVN: r258864

6 years agoPR c++/85062 - ICE with alignas in wrong place.
Jason Merrill [Mon, 26 Mar 2018 16:30:41 +0000 (12:30 -0400)]
PR c++/85062 - ICE with alignas in wrong place.

* decl.c (grokdeclarator): Ignore attributes on type-specifiers
here.

From-SVN: r258859

6 years agoPR c++/85049 - ICE with __integer_pack.
Jason Merrill [Mon, 26 Mar 2018 14:37:50 +0000 (10:37 -0400)]
PR c++/85049 - ICE with __integer_pack.

* pt.c (unify_pack_expansion): Don't try to deduce generated packs.
* cp-tree.h (TEMPLATE_PARM_P): New.

From-SVN: r258856

6 years agoAdd workaround to std::variant for Clang bug 31852
Jonathan Wakely [Mon, 26 Mar 2018 13:09:10 +0000 (14:09 +0100)]
Add workaround to std::variant for Clang bug 31852

* include/std/variant (__get): Qualify calls to avoid ADL.
(__select_index): Adjust whitespace.
(variant): Add using-declaration to workaround Clang bug.

From-SVN: r258854

6 years agoFix switch conversion in offloading functions
Tom de Vries [Mon, 26 Mar 2018 09:45:49 +0000 (09:45 +0000)]
Fix switch conversion in offloading functions

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

PR tree-optimization/85063
* omp-general.c (offloading_function_p): New function.  Factor out
of ...
* omp-offload.c (pass_omp_target_link::gate): ... here.
* omp-general.h (offloading_function_p): Declare.
* tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable
with attribute omp declare target for offloading functions.

* testsuite/libgomp.c/switch-conversion-2.c: New test.
* testsuite/libgomp.c/switch-conversion.c: New test.
* testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test.

From-SVN: r258852

6 years agore PR tree-optimization/85066 (FAIL: gcc.dg/vect/costmodel/x86_64/costmodel-pr84986...
Richard Biener [Mon, 26 Mar 2018 08:18:43 +0000 (08:18 +0000)]
re PR tree-optimization/85066 (FAIL: gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c scan-tree-dump vect "vectorized 1 loops")

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

PR testsuite/85066
* gcc.dg/vect/costmodel/x86_64/costmodel-pr84986.c: Use long long
instead of long.

From-SVN: r258851

6 years agore PR fortran/66709 (ICE on formatted io with parameter array specifier fmt)
Thomas Koenig [Mon, 26 Mar 2018 06:29:01 +0000 (06:29 +0000)]
re PR fortran/66709 (ICE on formatted io with parameter array specifier fmt)

2018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66709
* io.c: Include constructor.h.
(resolve_tag_format): For a constant character array, concatenate
into a single character expression.

2018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66709
* gfortran.dg/parameter_array_format.f90: New test.

From-SVN: r258850

6 years agoDaily bump.
GCC Administrator [Mon, 26 Mar 2018 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258849

6 years agore PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)
Thomas Koenig [Sun, 25 Mar 2018 16:00:52 +0000 (16:00 +0000)]
re PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)

2018-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/84381
* testsuite/libgomp.fortran/aligned1.f03: Replace non-standard
call abort by STOP n.
* testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise.
* testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise.
* testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise.
* testsuite/libgomp.fortran/allocatable1.f90: Likewise.
* testsuite/libgomp.fortran/allocatable10.f90: Likewise.
* testsuite/libgomp.fortran/allocatable11.f90: Likewise.
* testsuite/libgomp.fortran/allocatable12.f90: Likewise.
* testsuite/libgomp.fortran/allocatable2.f90: Likewise.
* testsuite/libgomp.fortran/allocatable3.f90: Likewise.
* testsuite/libgomp.fortran/allocatable4.f90: Likewise.
* testsuite/libgomp.fortran/allocatable5.f90: Likewise.
* testsuite/libgomp.fortran/allocatable6.f90: Likewise.
* testsuite/libgomp.fortran/allocatable7.f90: Likewise.
* testsuite/libgomp.fortran/allocatable8.f90: Likewise.
* testsuite/libgomp.fortran/allocatable9.f90: Likewise.
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise.
* testsuite/libgomp.fortran/associate1.f90: Likewise.
* testsuite/libgomp.fortran/associate2.f90: Likewise.
* testsuite/libgomp.fortran/associate3.f90: Likewise.
* testsuite/libgomp.fortran/cancel-do-1.f90: Likewise.
* testsuite/libgomp.fortran/cancel-do-2.f90: Likewise.
* testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise.
* testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise.
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise.
* testsuite/libgomp.fortran/character1.f90: Likewise.
* testsuite/libgomp.fortran/character2.f90: Likewise.
* testsuite/libgomp.fortran/collapse1.f90: Likewise.
* testsuite/libgomp.fortran/collapse2.f90: Likewise.
* testsuite/libgomp.fortran/collapse3.f90: Likewise.
* testsuite/libgomp.fortran/collapse4.f90: Likewise.
* testsuite/libgomp.fortran/crayptr1.f90: Likewise.
* testsuite/libgomp.fortran/crayptr2.f90: Likewise.
* testsuite/libgomp.fortran/crayptr3.f90: Likewise.
* testsuite/libgomp.fortran/declare-simd-1.f90: Likewise.
* testsuite/libgomp.fortran/declare-simd-3.f90: Likewise.
* testsuite/libgomp.fortran/declare-target-2.f90: Likewise.
* testsuite/libgomp.fortran/depend-1.f90: Likewise.
* testsuite/libgomp.fortran/depend-2.f90: Likewise.
* testsuite/libgomp.fortran/depend-3.f90: Likewise.
* testsuite/libgomp.fortran/do1.f90: Likewise.
* testsuite/libgomp.fortran/do2.f90: Likewise.
* testsuite/libgomp.fortran/doacross1.f90: Likewise.
* testsuite/libgomp.fortran/doacross2.f90: Likewise.
* testsuite/libgomp.fortran/doacross3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise.
* testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise.
* testsuite/libgomp.fortran/lastprivate1.f90: Likewise.
* testsuite/libgomp.fortran/lastprivate2.f90: Likewise.
* testsuite/libgomp.fortran/lib1.f90: Likewise.
* testsuite/libgomp.fortran/lib2.f: Likewise.
* testsuite/libgomp.fortran/lib3.f: Likewise.
* testsuite/libgomp.fortran/lib4.f90: Likewise.
* testsuite/libgomp.fortran/lock-1.f90: Likewise.
* testsuite/libgomp.fortran/lock-2.f90: Likewise.
* testsuite/libgomp.fortran/nested1.f90: Likewise.
* testsuite/libgomp.fortran/nestedfn1.f90: Likewise.
* testsuite/libgomp.fortran/nestedfn2.f90: Likewise.
* testsuite/libgomp.fortran/nestedfn3.f90: Likewise.
* testsuite/libgomp.fortran/nestedfn4.f90: Likewise.
* testsuite/libgomp.fortran/nestedfn5.f90: Likewise.
* testsuite/libgomp.fortran/omp_atomic1.f90: Likewise.
* testsuite/libgomp.fortran/omp_atomic2.f90: Likewise.
* testsuite/libgomp.fortran/omp_atomic3.f90: Likewise.
* testsuite/libgomp.fortran/omp_atomic4.f90: Likewise.
* testsuite/libgomp.fortran/omp_atomic5.f90: Likewise.
* testsuite/libgomp.fortran/omp_cond1.f: Likewise.
* testsuite/libgomp.fortran/omp_cond2.f: Likewise.
* testsuite/libgomp.fortran/omp_cond3.F90: Likewise.
* testsuite/libgomp.fortran/omp_cond4.F90: Likewise.
* testsuite/libgomp.fortran/omp_parse1.f90: Likewise.
* testsuite/libgomp.fortran/omp_parse2.f90: Likewise.
* testsuite/libgomp.fortran/omp_parse3.f90: Likewise.
* testsuite/libgomp.fortran/omp_parse4.f90: Likewise.
* testsuite/libgomp.fortran/openmp_version-1.f: Likewise.
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise.
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise.
* testsuite/libgomp.fortran/pointer1.f90: Likewise.
* testsuite/libgomp.fortran/pointer2.f90: Likewise.
* testsuite/libgomp.fortran/pr25162.f: Likewise.
* testsuite/libgomp.fortran/pr25219.f90: Likewise.
* testsuite/libgomp.fortran/pr27395-1.f90: Likewise.
* testsuite/libgomp.fortran/pr27395-2.f90: Likewise.
* testsuite/libgomp.fortran/pr27416-1.f90: Likewise.
* testsuite/libgomp.fortran/pr27916-1.f90: Likewise.
* testsuite/libgomp.fortran/pr27916-2.f90: Likewise.
* testsuite/libgomp.fortran/pr28390.f: Likewise.
* testsuite/libgomp.fortran/pr29629.f90: Likewise.
* testsuite/libgomp.fortran/pr32550.f90: Likewise.
* testsuite/libgomp.fortran/pr33880.f90: Likewise.
* testsuite/libgomp.fortran/pr34020.f90: Likewise.
* testsuite/libgomp.fortran/pr35130.f90: Likewise.
* testsuite/libgomp.fortran/pr42162.f90: Likewise.
* testsuite/libgomp.fortran/pr46753.f90: Likewise.
* testsuite/libgomp.fortran/pr48894.f90: Likewise.
* testsuite/libgomp.fortran/pr49792-1.f90: Likewise.
* testsuite/libgomp.fortran/pr49792-2.f90: Likewise.
* testsuite/libgomp.fortran/pr63938-1.f90: Likewise.
* testsuite/libgomp.fortran/pr63938-2.f90: Likewise.
* testsuite/libgomp.fortran/pr65597.f90: Likewise.
* testsuite/libgomp.fortran/pr66199-1.f90: Likewise.
* testsuite/libgomp.fortran/pr71014.f90: Likewise.
* testsuite/libgomp.fortran/pr81304.f90: Likewise.
* testsuite/libgomp.fortran/pr81841.f90: Likewise.
* testsuite/libgomp.fortran/pr84418-1.f90: Likewise.
* testsuite/libgomp.fortran/pr84418-2.f90: Likewise.
* testsuite/libgomp.fortran/procptr1.f90: Likewise.
* testsuite/libgomp.fortran/recursion1.f90: Likewise.
* testsuite/libgomp.fortran/reduction1.f90: Likewise.
* testsuite/libgomp.fortran/reduction2.f90: Likewise.
* testsuite/libgomp.fortran/reduction3.f90: Likewise.
* testsuite/libgomp.fortran/reduction4.f90: Likewise.
* testsuite/libgomp.fortran/reduction5.f90: Likewise.
* testsuite/libgomp.fortran/reduction6.f90: Likewise.
* testsuite/libgomp.fortran/reference1.f90: Likewise.
* testsuite/libgomp.fortran/reference2.f90: Likewise.
* testsuite/libgomp.fortran/retval1.f90: Likewise.
* testsuite/libgomp.fortran/retval2.f90: Likewise.
* testsuite/libgomp.fortran/sharing1.f90: Likewise.
* testsuite/libgomp.fortran/sharing2.f90: Likewise.
* testsuite/libgomp.fortran/simd1.f90: Likewise.
* testsuite/libgomp.fortran/simd2.f90: Likewise.
* testsuite/libgomp.fortran/simd3.f90: Likewise.
* testsuite/libgomp.fortran/simd4.f90: Likewise.
* testsuite/libgomp.fortran/simd5.f90: Likewise.
* testsuite/libgomp.fortran/simd6.f90: Likewise.
* testsuite/libgomp.fortran/simd7.f90: Likewise.
* testsuite/libgomp.fortran/stack.f90: Likewise.
* testsuite/libgomp.fortran/strassen.f90: Likewise.
* testsuite/libgomp.fortran/tabs1.f90: Likewise.
* testsuite/libgomp.fortran/tabs2.f: Likewise.
* testsuite/libgomp.fortran/target1.f90: Likewise.
* testsuite/libgomp.fortran/target2.f90: Likewise.
* testsuite/libgomp.fortran/target3.f90: Likewise.
* testsuite/libgomp.fortran/target4.f90: Likewise.
* testsuite/libgomp.fortran/target5.f90: Likewise.
* testsuite/libgomp.fortran/target6.f90: Likewise.
* testsuite/libgomp.fortran/target7.f90: Likewise.
* testsuite/libgomp.fortran/target8.f90: Likewise.
* testsuite/libgomp.fortran/task1.f90: Likewise.
* testsuite/libgomp.fortran/task2.f90: Likewise.
* testsuite/libgomp.fortran/task3.f90: Likewise.
* testsuite/libgomp.fortran/task4.f90: Likewise.
* testsuite/libgomp.fortran/taskgroup1.f90: Likewise.
* testsuite/libgomp.fortran/taskloop1.f90: Likewise.
* testsuite/libgomp.fortran/taskloop2.f90: Likewise.
* testsuite/libgomp.fortran/taskloop3.f90: Likewise.
* testsuite/libgomp.fortran/taskloop4.f90: Likewise.
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
* testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
* testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
* testsuite/libgomp.fortran/threadprivate4.f90: Likewise.
* testsuite/libgomp.fortran/udr1.f90: Likewise.
* testsuite/libgomp.fortran/udr10.f90: Likewise.
* testsuite/libgomp.fortran/udr11.f90: Likewise.
* testsuite/libgomp.fortran/udr12.f90: Likewise.
* testsuite/libgomp.fortran/udr13.f90: Likewise.
* testsuite/libgomp.fortran/udr14.f90: Likewise.
* testsuite/libgomp.fortran/udr15.f90: Likewise.
* testsuite/libgomp.fortran/udr2.f90: Likewise.
* testsuite/libgomp.fortran/udr3.f90: Likewise.
* testsuite/libgomp.fortran/udr4.f90: Likewise.
* testsuite/libgomp.fortran/udr5.f90: Likewise.
* testsuite/libgomp.fortran/udr6.f90: Likewise.
* testsuite/libgomp.fortran/udr7.f90: Likewise.
* testsuite/libgomp.fortran/udr8.f90: Likewise.
* testsuite/libgomp.fortran/udr9.f90: Likewise.
* testsuite/libgomp.fortran/vla1.f90: Likewise.
* testsuite/libgomp.fortran/vla2.f90: Likewise.
* testsuite/libgomp.fortran/vla3.f90: Likewise.
* testsuite/libgomp.fortran/vla4.f90: Likewise.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.fortran/vla6.f90: Likewise.
* testsuite/libgomp.fortran/vla7.f90: Likewise.
* testsuite/libgomp.fortran/vla8.f90: Likewise.
* testsuite/libgomp.fortran/workshare1.f90: Likewise.
* testsuite/libgomp.fortran/workshare2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/c2.pl: Likewise.
* testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/combined-directives-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/combined-reduction.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/nested-function-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise.
* testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/update-1.f90: Likewise.

From-SVN: r258846

6 years agore PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)
Thomas Koenig [Sun, 25 Mar 2018 12:46:31 +0000 (12:46 +0000)]
re PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)

2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/84381
        * gfortran.dg/bound_simplification_3.f90: Replace "abort" by
"_gfortran_stop" in scan-tree-dump-times directive.
        * gfortran.dg/bound_simplification_4.f90: Likewise.
        * gfortran.dg/bound_simplification_5.f90: Likewise.
        * gfortran.dg/bound_simplification_6.f90: Likewise.
        * gfortran.dg/complex_intrinsic_7.f90: Likewise.
        * gfortran.dg/dot_product_2.f90: Likewise.
        * gfortran.dg/iso_fortran_env_5.f90: Likewise.
        * gfortran.dg/minmaxloc_12.f90: Likewise.
        * gfortran.dg/minmaxloc_13.f90: Likewise.
        * gfortran.dg/parameter_array_element_3.f90: Likewise.
        * gfortran.dg/shape_7.f90: Likewise.
        * gfortran.dg/storage_size_4.f90: Likewise.
        * gfortran.dg/string_length_2.f90: Likewise.

From-SVN: r258845

6 years agore PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)
Thomas Koenig [Sun, 25 Mar 2018 12:23:58 +0000 (12:23 +0000)]
re PR fortran/84381 (replace non-std 'call abort' by 'stop 1' in gfortran testsuite)

2018-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
Neil Carlson <neil.n.carlson@gmail.com>

PR fortran/84381
* gfortran.dg/literal_character_constant_1.inc: Replace
call abort by STOP n.
* gfortran.dg/overload_1.f90: Likewise.

Co-Authored-By: Neil Carlson <neil.n.carlson@gmail.com>
From-SVN: r258844

6 years agore PR fortran/84924 (Erroneous error in C_F_POINTER)
Seth Johnson [Sun, 25 Mar 2018 11:30:24 +0000 (11:30 +0000)]
re PR fortran/84924 (Erroneous error in C_F_POINTER)

2018-03-25  Seth Johnson <johnsonsr@ornl.gov>
Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/84924
* check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
scalar derived type with -std=f2003 and -std=f2008.

2018-03-25  Seth Johnson <johnsonsr@ornl.gov>
Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/84924
* gfortran.dg/scalar_pointer_1.f90: New test.

Co-Authored-By: Dominique d'Humieres <dominiq@gcc.gnu.org>
From-SVN: r258843

6 years ago[testsuite] Make scan pattern more precise in vrp104.c
Tom de Vries [Sun, 25 Mar 2018 06:14:25 +0000 (06:14 +0000)]
[testsuite] Make scan pattern more precise in vrp104.c

2018-03-25  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-ssa/vrp104.c: Make scan-tree-dump-times pattern more
precise.

From-SVN: r258842

6 years agoFix changelog
Jerry DeLisle [Sun, 25 Mar 2018 04:03:39 +0000 (04:03 +0000)]
Fix changelog

From-SVN: r258841

6 years agofix changelog
Jerry DeLisle [Sun, 25 Mar 2018 03:47:46 +0000 (03:47 +0000)]
fix changelog

From-SVN: r258840

6 years agore PR fortran/69497 (ICE in gfc_free_namespace, at fortran/symbol.c:3701)
Jerry DeLisle [Sun, 25 Mar 2018 03:47:28 +0000 (03:47 +0000)]
re PR fortran/69497 (ICE in gfc_free_namespace, at fortran/symbol.c:3701)

2018-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/89497
* symbol.c (gfc_free_namespace): Delete the assert and only if
refs count is equals zero, free the namespace. Otherwise,
something is halfway and other errors will resound.

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

Co-Authored-By: Dominique d'Humieres <dominiq@gcc.gnu.org>
From-SVN: r258839

6 years agoDaily bump.
GCC Administrator [Sun, 25 Mar 2018 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258838

6 years agore PR fortran/70068 (ICE: out of memory on involving empty substring)
Thomas Koenig [Sat, 24 Mar 2018 17:37:21 +0000 (17:37 +0000)]
re PR fortran/70068 (ICE: out of memory on involving empty substring)

2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/70068
* expr.c (find_substring_ref): Change types of start, end
and length variables to gfc_charlen_t. Set length to zero
for empty substring.

2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/70068
* gfortran.dg/substr_7.f90: New test.

From-SVN: r258835

6 years agore PR fortran/42651 (Functions with result: Wrongly accepts attributes to function...
Steven G. Kargl [Sat, 24 Mar 2018 16:31:57 +0000 (16:31 +0000)]
re PR fortran/42651 (Functions with result: Wrongly accepts attributes to function name)

2018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/42651
* decl.c (check_function_name): Improved error message
(gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.

2018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/42651
* gfortran.dg/pr42651.f90: New test.
* gfortran.dg/func_result_7.f90: Update error message.

From-SVN: r258834

6 years agoUse SCEV information when aligning for vectorisation (PR 84005)
Richard Sandiford [Sat, 24 Mar 2018 10:52:34 +0000 (10:52 +0000)]
Use SCEV information when aligning for vectorisation (PR 84005)

This PR is another regression caused by the removal of the simple_iv
check in dr_analyze_innermost for BB analysis.  Without splitting out
the step, we weren't able to find an underlying object whose alignment
could be increased.

As with PR81635, I think the simple_iv was only handling one special
case of something that ought to be more general.  The more general
thing here is that if the address can be analysed as a scalar
evolution, and if all updates preserve alignment N, it's possible
to align the address to N by increasing the alignment of the base
object to N.  That applies also to outer loops, and to both loop
and BB analysis.

I wasn't sure where the new functions ought to live, but tree-data-ref.c
seemed OK since (a) that already does scev analysis on addresses and
(b) you'd want to use dr_analyze_innermost first if you were analysing
a reference.

2018-03-24  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/84005
* tree-data-ref.h (get_base_for_alignment): Declare.
* tree-data-ref.c (get_base_for_alignment_1): New function.
(get_base_for_alignment): Likewise.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
get_base_for_alignment to find a suitable base object, instead
of always using drb->base_address.

gcc/testsuite/
PR tree-optimization/84005
* gcc.dg/vect/bb-slp-1.c: Make sure there is no message about
failing to force the alignment.

From-SVN: r258833

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

From-SVN: r258831

6 years agore PR ada/85007 (-b flag to gnatlink not recognized)
Eric Botcazou [Fri, 23 Mar 2018 23:20:59 +0000 (23:20 +0000)]
re PR ada/85007 (-b flag to gnatlink not recognized)

PR ada/85007
* gnatlink.adb (Gnatlink): Remove handling of -b switch.
* doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink):
Remove documentation of -b switch.

From-SVN: r258828

6 years agore PR ada/85036 (--disable-bootstrap --enable-languages=ada[,c++] fails)
Eric Botcazou [Fri, 23 Mar 2018 23:12:49 +0000 (23:12 +0000)]
re PR ada/85036 (--disable-bootstrap --enable-languages=ada[,c++] fails)

PR ada/85036
* gnatlink.adb (Process_Args): Drop existing link switches if multiple
switches are passed for --LINK.

From-SVN: r258827

6 years agobuiltins-1-le.c: Rename duplicate test from this to...
Peter Bergner [Fri, 23 Mar 2018 22:19:50 +0000 (17:19 -0500)]
builtins-1-le.c: Rename duplicate test from this to...

* gcc.target/powerpc/builtins-1-le.c <vclzb>: Rename duplicate test
from this to...
<vclzd>: ...this.

From-SVN: r258826

6 years agobuiltins-1-le.c: Filter out gimple folding disabled message.
Peter Bergner [Fri, 23 Mar 2018 22:05:39 +0000 (17:05 -0500)]
builtins-1-le.c: Filter out gimple folding disabled message.

* gcc.target/powerpc/builtins-1-le.c: Filter out gimple folding disabled
message.  Fix scan-assembler patterns.

From-SVN: r258825

6 years agoPR c++/78489 - wrong SFINAE behavior.
Jason Merrill [Fri, 23 Mar 2018 22:03:51 +0000 (18:03 -0400)]
PR c++/78489 - wrong SFINAE behavior.

PR c++/84489
* pt.c (type_unification_real): Don't defer substitution failure.

From-SVN: r258824

6 years agore PR inline-asm/85022 (internal compiler error: in write_dependence_p, at alias...
Jakub Jelinek [Fri, 23 Mar 2018 20:55:40 +0000 (21:55 +0100)]
re PR inline-asm/85022 (internal compiler error: in write_dependence_p, at alias.c:3003)

PR inline-asm/85022
* emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
known size by default.

From-SVN: r258823

6 years agore PR c++/85015 (internal compiler error: tree check: expected class 'type', have...
Jakub Jelinek [Fri, 23 Mar 2018 20:54:50 +0000 (21:54 +0100)]
re PR c++/85015 (internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in build_int_cst, at tree.c:1360)

PR c++/85015
* decl.c (compute_array_index_type): Set osize to mark_rvalue_use
result.

* g++.dg/cpp0x/pr85015.C: New test.

From-SVN: r258822

6 years agore PR c++/84942 (internal compiler error: in fold_convert_const_int_from_real, at...
Jakub Jelinek [Fri, 23 Mar 2018 20:54:01 +0000 (21:54 +0100)]
re PR c++/84942 (internal compiler error: in fold_convert_const_int_from_real, at fold-const.c:2011)

PR c++/84942
* pt.c (tsubst_copy_and_build) <case FIX_TRUNC_EXPR>: Replace
cp_build_unary_op call with gcc_unreachable ().

* g++.dg/cpp1y/pr84942.C: New test.

From-SVN: r258821

6 years agore PR inline-asm/85030 (internal compiler error: Floating point exception (validate_s...
Vladimir Makarov [Fri, 23 Mar 2018 19:31:00 +0000 (19:31 +0000)]
re PR inline-asm/85030 (internal compiler error: Floating point exception (validate_subreg()))

2018-03-23  Vladimir Makarov  <vmakarov@redhat.com>

PR inline-asm/85030
* lra-constraints.c (process_alt_operands): Don't match BLKmode
and non BLKmode operands.

2018-03-23  Vladimir Makarov  <vmakarov@redhat.com>

PR inline-asm/85030
* testsuite/gcc.target/i386/pr85030.c: New.

From-SVN: r258820

6 years ago[arm] PR target/85026: Fix ldrsh length estimate in Thumb state
Kyrylo Tkachov [Fri, 23 Mar 2018 16:43:43 +0000 (16:43 +0000)]
[arm] PR target/85026: Fix ldrsh length estimate in Thumb state

This bug has been reported against GCC 7.3.0 but it is latent in all release branches and on trunk.
We underestimate the length of the LRSH instruction in Thumb state.
Unlike other load instructions LDRSH can be encoded in 16 bits only when using a register offset.
In the testcase we have "ldrsh   r2, [r4]" being assigned a length of 2, which is wrong.
So we don't calculate branch ranges properly and cause the assembler error.

The fix is to make the unaligned_loadhis insn similar to the *arm_extendqihi_insn insn that outputs an LDRSB.
Just remove the wrong 2-byte alternative. I don't think this is worth inventing a new "register-offset-only" constraint.
This also makes the patch safer for backporting.

Bootstrapped and tested on arm-none-linux-gnueabihf.

PR target/85026
* config/arm/arm.md (unaligned_loadhis): Remove first alternative.
Clean up attributes.

* g++.dg/pr85026.C: New test.

From-SVN: r258818

6 years agoXFAIL AIX.
David Edelsohn [Fri, 23 Mar 2018 15:18:25 +0000 (15:18 +0000)]
XFAIL AIX.

From-SVN: r258816

6 years ago[ARM] Fix pr84826.c failure for thumb1
Sudakshina Das [Fri, 23 Mar 2018 13:57:28 +0000 (13:57 +0000)]
[ARM] Fix pr84826.c failure for thumb1

*** gcc/testsuite/ChangeLog ***

2018-03-23  Sudakshina Das  <sudi.das@arm.com>

PR target/84826
* gcc.target/arm/pr84826.c: Add dg directive.

From-SVN: r258805

6 years agore PR c++/85045 (ICE+SIGILL on valid C++ code: cxx_pretty_printer::postfix_expressio...
Marek Polacek [Fri, 23 Mar 2018 13:45:49 +0000 (13:45 +0000)]
re PR c++/85045 (ICE+SIGILL on valid C++ code:  cxx_pretty_printer::postfix_expression(tree_node*) (), at  cp/cxx-pretty-print.c:482)

PR c++/85045
* c-pretty-print.c (c_pretty_printer::multiplicative_expression)
<case RDIV_EXPR>: Tweak condition.

* cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression):
Handle EXACT_DIV_EXPR and RDIV_EXPR.  Tweak condition.
(cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR.

* g++.dg/cpp0x/Wnarrowing5.C: New test.
* gcc.dg/pr85045.c: New test.

From-SVN: r258804

6 years agoImplement P0962
Ville Voutilainen [Fri, 23 Mar 2018 13:17:19 +0000 (15:17 +0200)]
Implement P0962

* parser.c (cp_parser_perform_range_for_lookup): Change
the condition for deciding whether to use members.

From-SVN: r258803

6 years agore PR c++/85033 (internal compiler error: in fold_offsetof_1, at c-family/c-common...
Marek Polacek [Fri, 23 Mar 2018 12:55:55 +0000 (12:55 +0000)]
re PR c++/85033 (internal compiler error: in fold_offsetof_1, at c-family/c-common.c:6269)

PR c++/85033
* semantics.c (finish_offsetof): Don't allow CONST_DECLs.

* g++.dg/ext/builtin-offsetof2.C: New test.

From-SVN: r258801

6 years agore PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build...
Eric Botcazou [Fri, 23 Mar 2018 11:23:54 +0000 (11:23 +0000)]
re PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build-config=bootstrap-lto)

2018-03-23  Eric Botcazou  <ebotcazou@adacore.com>

PR debug/85020
* gnat.dg/lto22.adb: New test.
* gnat.dg/lto22_pkg1.ad[sb]: New helper.
* gnat.dg/lto22_pkg2.ads: Likewise.

From-SVN: r258799

6 years agore PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build...
Richard Biener [Fri, 23 Mar 2018 11:19:49 +0000 (11:19 +0000)]
re PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build-config=bootstrap-lto)

2018-03-23  Richard Biener  <rguenther@suse.de>

PR debug/85020
* dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when
we are going to emit early debug for LTO.

From-SVN: r258798

6 years agore PR c/80778 (gcc.dg/auto-type-1.c ICEs with -flto)
Jakub Jelinek [Fri, 23 Mar 2018 10:45:36 +0000 (11:45 +0100)]
re PR c/80778 (gcc.dg/auto-type-1.c ICEs with -flto)

PR c/80778
* gcc.dg/lto/pr80778_0.c: New test.

From-SVN: r258797

6 years agore PR inline-asm/85034 (-O1 internal compiler error: in elimination_costs_in_insn...
Jakub Jelinek [Fri, 23 Mar 2018 09:10:02 +0000 (10:10 +0100)]
re PR inline-asm/85034 (-O1 internal compiler error: in elimination_costs_in_insn, at reload1.c:3633)

PR inline-asm/85034
* function.c (match_asm_constraints_1): Don't optimize if input
doesn't satisfy general_operand predicate for output's mode.

* gcc.target/i386/pr85034.c: New test.

From-SVN: r258796

6 years agore PR inline-asm/85022 (internal compiler error: in write_dependence_p, at alias...
Jakub Jelinek [Fri, 23 Mar 2018 09:05:56 +0000 (10:05 +0100)]
re PR inline-asm/85022 (internal compiler error: in write_dependence_p, at alias.c:3003)

PR inline-asm/85022
* alias.c (write_dependence_p): Don't require for x_canonicalized
non-VOIDmode if x has VOIDmode.

* c-c++-common/torture/pr85022.c: New test.

From-SVN: r258795

6 years agore PR sanitizer/85029 (-fsanitize=undefined internal compiler error: in maybe_optimiz...
Jakub Jelinek [Fri, 23 Mar 2018 08:55:53 +0000 (09:55 +0100)]
re PR sanitizer/85029 (-fsanitize=undefined internal compiler error: in maybe_optimize_ubsan_ptr_ifn, at sanopt.c:493)

PR sanitizer/85029
* sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base),
just don't try to optimize it rather than assert it never happens.

* g++.dg/ubsan/pr85029.C: New test.

From-SVN: r258794

6 years ago[PR c++/71251] check tmpl parms in template using decl
Alexandre Oliva [Fri, 23 Mar 2018 04:09:06 +0000 (04:09 +0000)]
[PR c++/71251] check tmpl parms in template using decl

Check that template using decls have the correct number of parm lists.

for  gcc/cp/ChangeLog

PR c++/71251
* parser.c (cp_parser_alias_declaration): Call
parser_check_template_parameters.

for  gcc/testsuite/ChangeLog

PR c++/71251
* g++.dg/cpp0x/pr71251.C: New.

From-SVN: r258793

6 years ago[PR c++/84789] do not fail to resolve typename into template-independent
Alexandre Oliva [Fri, 23 Mar 2018 01:19:14 +0000 (01:19 +0000)]
[PR c++/84789] do not fail to resolve typename into template-independent

Although resolve_typename_type always takes a template-dependent
type-id, and it usually resolves it to another template-dependent
type-id, it is not correct to require the latter: in declarators,
template-dependent scopes may turn out to name template-independent
types, as in the pr84789-2.C and pr84789-3.C testcases.

The ill-formed testcase pr84789.C trips the same too-strict assert,
and also gets fixed by removing the assertion on the simplified scope.
However, whereas when the dependent type cannot be resolved, we get an
error that suggests 'typename' is missing:

pr84789.C:12:3: error: need â€˜typename’ before â€˜typename B<T>::A::I::I’
because â€˜typename B<T>::A::I’ is a dependent scope
   B<T>::A::I::I i;
   ^~~~

when it can, we got errors that did not point at that possibility,
which may be confusing:

pr84789.C:9:15: error: â€˜A::I’ {aka â€˜int’} is not a class type
   B<T>::A::I::I i; // { dg-error "typename" }
               ^
pr84789.C:9:15: error: â€˜I’ in â€˜A::I’ {aka â€˜int’} does not name a type

Changing the parser diagnostic code that reports an invalid type name
so that it does not attempt to reparse the name as a declarator gets
us the superior diagnostic of a missing 'typename' keyword.

for  gcc/cp/ChangeLog

PR c++/84789
* pt.c (resolve_typename_type): Drop assert that stopped
simplification to template-independent types.  Add assert to
verify the initial scope is template dependent.
* parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
Reparse the id expression as a type-name, not a declarator.

for  gcc/testsuite/ChangeLog

PR c++/84789
* g++.dg/template/pr84789.C: New.
* g++.dg/template/pr84789-2.C: New.
* g++.dg/template/pr84789-3.C: New.
* g++.dg/parse/dtor11.C: Accept alternate error message.

From-SVN: r258792

6 years ago[PR c++/84729] reject parenthesized array init
Alexandre Oliva [Fri, 23 Mar 2018 01:19:01 +0000 (01:19 +0000)]
[PR c++/84729] reject parenthesized array init

A parenthesized initializer was only accepted when new()ing an array in
permissive mode.  We were not careful, however, to convert the
TREE_LIST initializer to the array element type in this extension.

Instead of fixing it, converting the initializer to the base type
after turning the TREE_LIST initializer to a compound_expr, we disable
this deprecated extension.

for  gcc/cp/ChangeLog

PR c++/84729
* init.c (build_vec_init): Error at parenthesized array init.

for  gcc/testsuite/ChangeLog

PR c++/84729
* g++.dg/pr84729.C: New.
        * g++.old-deja/g++.ext/arrnew2.C: Require error.
* g++.old-deja/g++.robertl/eb58.C: Likewise.
* g++.old-deja/g++.robertl/eb63.C: Likewise.

From-SVN: r258791

6 years agoDisable auto_is_implicit_function_template_parm_p while parsing attributes
Alexandre Oliva [Fri, 23 Mar 2018 01:18:48 +0000 (01:18 +0000)]
Disable auto_is_implicit_function_template_parm_p while parsing attributes

We don't want functions to become implicit templates just because of
random uses of auto in unexpected places.  Disabling the special
handling of auto while parsing attributes, for example, makes for
more sensible errors.

for  gcc/cp/ChangeLog

PR c++/84610
PR c++/84642
PR c++/84942
* cp-tree.h (temp_override): New template class, generalizing
a cleanup that was only used...
* parser.c (cp_parser_parameter_declaration_clause):
... here for auto_is_implicit_function_template_parm_p.
(cp_parser_gnu_attributes_opt): Use it here as well.
(cp_parser_std_attribute): Likewise.

From-SVN: r258790

6 years agoDaily bump.
GCC Administrator [Fri, 23 Mar 2018 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258789

6 years agore PR fortran/84922 (fortran reports inconsistency in rank of arguments in interface...
Steven G. Kargl [Thu, 22 Mar 2018 21:42:07 +0000 (21:42 +0000)]
re PR fortran/84922 (fortran reports inconsistency in rank of arguments in interface and contained procedures)

2018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/84922
* decl.c (get_proc_name): If the MODULE prefix appears in interface
body, then it must appear on the contained subroutine or function.
While here, fix nearby mis-indented code.

2018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org

PR fortran/84922
* gfortran.dg/interface_42.f90: New test.
* gfortran.dg/interface_43.f90: New test.

From-SVN: r258784

6 years agors6000-builtin.def: Remove various BU_ALTIVEC_X macro expansions for definition of...
Kelvin Nilsen [Thu, 22 Mar 2018 20:18:35 +0000 (20:18 +0000)]
rs6000-builtin.def: Remove various BU_ALTIVEC_X macro expansions for definition of...

gcc/ChangeLog:

2018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X
macro expansions for definition of ST_INTERNAL_<mode> and
LD_INTERNAL_<mode> builtins.
* config/rs6000/rs6000-protos.h (rs6000_address_for_altivec):
Remove prototype.
* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this
function.
(altivec_expand_st_builtin): Likewise.
(altivec_expand_builtin): Remove calls to deleted functions.
(rs6000_address_for_altivec): Delete this function.
* config/rs6000/vector.md: Remove expands for
vector_altivec_load_<mode> and vector_altivec_store_<mode>.

From-SVN: r258783

6 years ago[ARM][PR target/84826] Fix ICE in extract_insn, at recog.c:2304 on
Sudakshina Das [Thu, 22 Mar 2018 17:24:41 +0000 (17:24 +0000)]
[ARM][PR target/84826] Fix ICE in extract_insn, at recog.c:2304 on
arm-linux-gnueabi

The ICE in the bug report was happening because the macro
USE_RETURN_INSN (FALSE) was returning different values at different points
in the compilation. This was internally occurring because the function
arm_compute_static_chain_stack_bytes () which was dependent on
arm_r3_live_at_start_p () was giving a different value after the cond_exec
instructions were created in ce3 causing the liveness of r3 to escape up
to the start block.

The function arm_compute_static_chain_stack_bytes () should really only
compute the value once duringepilogue/prologue stage. This pass introduces
a new member 'static_chain_stack_bytes' to the target definition of the
struct machine_function which gets calculated in expand_prologue and is the
value that is returned by arm_compute_static_chain_stack_bytes () beyond that.

ChangeLog entries:

*** gcc/ChangeLog ***

2018-03-22  Sudakshina Das  <sudi.das@arm.com>

PR target/84826
* config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
re-computing once computed.
(arm_expand_prologue): Compute machine->static_chain_stack_bytes.
(arm_init_machine_status): Initialize
machine->static_chain_stack_bytes.

*** gcc/testsuite/ChangeLog ***

2018-03-22  Sudakshina Das  <sudi.das@arm.com>

PR target/84826
* gcc.target/arm/pr84826.c: New test.

From-SVN: r258777

6 years ago[testsuite] Make sure dg-do is before dg-require-effective-target.
Christophe Lyon [Thu, 22 Mar 2018 16:39:36 +0000 (16:39 +0000)]
[testsuite] Make sure dg-do is before dg-require-effective-target.

2018-03-22  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/testsuite/
* gcc.target/arm/addr-modes-float.c: Move dg-do before
dg-require-effective-target.
* gcc.target/arm/addr-modes-int.c: Likewise.
* gcc.target/nios2/lo-addr-tls.c: Likewise.

From-SVN: r258776

6 years agore PR target/84760 (Finish implementation of __builtin_altivec_lvx_v1ti)
Kelvin Nilsen [Thu, 22 Mar 2018 15:42:39 +0000 (15:42 +0000)]
re PR target/84760 (Finish implementation of __builtin_altivec_lvx_v1ti)

gcc/ChangeLog:

2018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/84760
* doc/extend.texi: Add four new prototypes for vec_ld.
* config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol
definitions for more logical presentation.
* config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add
entries for V1TI variants of __builtin_altivec_ld builtin.
* config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and
handling of V1TI variant of LVX icode pattern.
(altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI.
(rs6000_gimple_fold_builtin): Likewise.
(altivec_init_builtins): Add code to define
__builtin_altivec_lvx_v1ti function.

gcc/testsuite/ChangeLog:

2018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/84760
* gcc.target/powerpc/altivec-ld-1.c: New test.

From-SVN: r258774

6 years agoPR libstdc++/85040 fix std::less<void> etc. ambiguities
Jonathan Wakely [Thu, 22 Mar 2018 14:23:27 +0000 (14:23 +0000)]
PR libstdc++/85040 fix std::less<void> etc. ambiguities

PR libstdc++/85040
* include/bits/stl_function.h (greater::__not_overloaded)
(less::__not_overloaded, greater_equal::__not_overloaded)
(less_equal::__not_overloaded): Fix ambiguous specializations.
* testsuite/20_util/function_objects/comparisons_pointer.cc: Add
tests for type with overlaoded operators.

From-SVN: r258773

6 years agopr83126.c: Require pthread for the test.
Bin Cheng [Thu, 22 Mar 2018 14:06:49 +0000 (14:06 +0000)]
pr83126.c: Require pthread for the test.

gcc/testsuite
* gcc.dg/graphite/pr83126.c: Require pthread for the test.

From-SVN: r258768

6 years agoxfail experimental/memory_resource/resource_adaptor.cc on 32-bit Solaris/x86 (PR...
Rainer Orth [Thu, 22 Mar 2018 13:33:29 +0000 (13:33 +0000)]
xfail experimental/memory_resource/resource_adaptor.cc on 32-bit Solaris/x86 (PR libstdc++/77691)

PR libstdc++/77691
* testsuite/experimental/memory_resource/resource_adaptor.cc:
xfail execution on 32-bit Solaris/x86.

From-SVN: r258766

6 years agore PR inline-asm/84941 (internal compiler error: in reg_overlap_mentioned_p, at rtlan...
Jakub Jelinek [Thu, 22 Mar 2018 12:31:46 +0000 (13:31 +0100)]
re PR inline-asm/84941 (internal compiler error: in reg_overlap_mentioned_p, at rtlanal.c:1870 (reg_overlap_mentioned_p()/match_asm_constraints_1()))

PR inline-asm/84941
* function.c (match_asm_constraints_1): Don't do the optimization
if input isn't a REG, SUBREG, MEM or constant.

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

From-SVN: r258764

6 years agoFix PR85025: libgcc/config/i386/shadow-stack-unwind.h is wrong.
Igor Tsimbalist [Thu, 22 Mar 2018 11:22:31 +0000 (12:22 +0100)]
Fix PR85025: libgcc/config/i386/shadow-stack-unwind.h is wrong.

PR target/85025
* config/i386/shadow-stack-unwind.h (_Unwind_Frames_Extra):
Fix a typo, tmp => 255.

From-SVN: r258763

6 years ago[tail-merge] Don't merge bbs with bb_has_abnormal_pred
Tom de Vries [Thu, 22 Mar 2018 10:21:12 +0000 (10:21 +0000)]
[tail-merge] Don't merge bbs with bb_has_abnormal_pred

2018-03-22  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/84956
* tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
bb_has_abnormal_pred.

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

From-SVN: r258758

6 years agore PR sanitizer/85018 (Many sanitizer tests ICE since r258681)
Jakub Jelinek [Thu, 22 Mar 2018 08:32:12 +0000 (09:32 +0100)]
re PR sanitizer/85018 (Many sanitizer tests ICE since r258681)

PR sanitizer/85018
* dwarf2asm.c (dw2_output_indirect_constant_1): Set
DECL_INITIAL (decl) to decl at the end.
* varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
adjust the comment.

From-SVN: r258757

6 years agore PR c++/84854 (ICE: unexpected expression in cxx_eval_constant_expression, at cp...
Marek Polacek [Thu, 22 Mar 2018 08:08:07 +0000 (08:08 +0000)]
re PR c++/84854 (ICE: unexpected expression in cxx_eval_constant_expression, at cp/constexpr.c:4774)

PR c++/84854
* semantics.c (finish_if_stmt_cond): Check if the type of the condition
is boolean.

* g++.dg/cpp1z/constexpr-if15.C: New test.
* g++.dg/cpp1z/constexpr-if16.C: New test.

From-SVN: r258756

6 years agoPR c++/81311 - wrong C++17 overload resolution.
Jason Merrill [Thu, 22 Mar 2018 03:53:19 +0000 (23:53 -0400)]
PR c++/81311 - wrong C++17 overload resolution.

* call.c (build_user_type_conversion_1): Remove C++17 code.
(conv_binds_ref_to_prvalue): New.
(build_over_call): Handle C++17 copy elision.
(build_special_member_call): Only do C++17 copy elision here if the
argument is already the right type.

From-SVN: r258755

6 years agoDaily bump.
GCC Administrator [Thu, 22 Mar 2018 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258754

6 years agoAdjust __builtin_tgmath handling of integer arguments to _FloatN narrowing macros.
Joseph Myers [Wed, 21 Mar 2018 22:29:37 +0000 (22:29 +0000)]
Adjust __builtin_tgmath handling of integer arguments to _FloatN narrowing macros.

When adding __builtin_tgmath to support a better tgmath.h
implementation, I noted that further changes might be needed regarding
the TS 18661 functions that round their results to a narrower type,
because of unresolved issues with how the corresponding type-generic
macros are defined in TS 18661.

The resolution of those issues is still in flux, but the latest
version does indeed require something slightly different from
__builtin_tgmath.  It specifies that integer arguments to type-generic
macros such as f32xadd are treated as _Float64 not double - which was
also present in earlier versions of the resolution - but then it also
specifies different handling for _Float64 arguments and double
arguments, which wasn't in earlier versions.  Specifically, in the
latest version
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2213.pdf>, f32xadd
with _Float64 arguments would call f32xaddf64, while f32xadd with
double arguments would call f32xaddf64x.  Since integer arguments are
converted directly to the argument type of the selected function (not
to double / _Float64x unless that ends up as the argument type), this
is a user-visible difference in semantics that means __builtin_tgmath
actually needs to implement treating integer arguments as _Float64 in
this case (the rest of the latest semantics can then be implemented in
the header, with a few inline functions there).

To avoid releasing with the older version of the __builtin_tgmath
semantics that doesn't work with the latest proposed DR#13 resolution,
this patch implements a rule in __builtin_tgmath that maps integer
types to _Float64 (respectively _Complex _Float64 for complex integer
types) where all the specified functions return the same _FloatN or
_FloatNx type.  This does not affect any existing uses of
__builtin_tgmath in glibc's or GCC's tgmath.h since I haven't yet
added any of these type-generic macros to glibc when adding the
corresponding narrowing functions.

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

* doc/extend.texi (__builtin_tgmath): Document when complex
integer types are treated as _Complex _Float64.

gcc/c:
* c-parser.c (c_parser_postfix_expression): For __builtin_tgmath
where all functions return the same _FloatN or _FloatNx type,
treat integer types as _Float64 instead of double.

gcc/testsuite:
* gcc.dg/builtin-tgmath-3.c: New test.

From-SVN: r258751

6 years ago[doc] Remove pasto in __builtin_extend_pointer doc
Tom de Vries [Wed, 21 Mar 2018 22:24:04 +0000 (22:24 +0000)]
[doc] Remove pasto in __builtin_extend_pointer doc

2018-03-21  Tom de Vries  <tom@codesourcery.com>

* doc/extend.texi (__builtin_extend_pointer): Remove pasto.

From-SVN: r258750

6 years ago[PR c++/71965] silence multi-dim array init sorry without tf_error
Alexandre Oliva [Wed, 21 Mar 2018 22:08:34 +0000 (22:08 +0000)]
[PR c++/71965] silence multi-dim array init sorry without tf_error

We shouldn't substitute templates into short-circuited-out concepts
constraints, but we do, and to add insult to injury, we issue a
sorry() error when a concept that shouldn't even have been substituted
attempts to perform a multi-dimensional array initialization with a
new{} expression.

Although fixing the requirements short-circuiting is probably too
risky at this point, we can get closer to the intended effect by
silencing that sorry just as we silence other errors.

for  gcc/cp/ChangeLog

PR c++/71965
* init.c (build_vec_init): Silence error, former sorry,
without tf_error.

for  gcc/testsuite/ChangeLog

PR c++/71965
* g++.dg/concepts/pr71965.C: New.

From-SVN: r258749

6 years ago[PR c++/84610,84642] recover from implicit template parms gracefully
Alexandre Oliva [Wed, 21 Mar 2018 22:08:19 +0000 (22:08 +0000)]
[PR c++/84610,84642] recover from implicit template parms gracefully

If we get a parse error during an attempted fully implicit function
template parse, and need to skip to the end of the statement or block,
we may discard the function parms scope rather than the enclosing
injected implicit template parms scope.  If we rollback a tentative
parse and try something else, we'll no longer be in a function parms
scope, but rather in a template parms scope, but we may still attempt
to synthesize implicit template parms and then fail the assert that
checks we're in a function parms scope.

This patch introduces an alternative to
finish_fully_implicit_template_p, to be used during error recovery,
that floats the implicit template parm scope to the top so that it
gets discarded as we finish and discard the failed implicit template
data, while other scopes are retained as expected.  It also clears the
implicit template parser data as we finish the template, so that it
doesn't linger on referencing discarded or used scopes and parms.

for gcc/cp/ChangeLog

PR c++/84610
PR c++/84642
* parser.c (abort_fully_implicit_template_p): New.
(cp_parser_skip_to_end_of_statement): Use it.
(cp_parser_skip_to_end_of_block_or_statement): Likewise.
(finish_fully_implicit_template_p): Clear
implicit_template_parms and implicit_template_scope.

for  gcc/testsuite/ChangeLog

PR c++/84610
PR c++/84642
* g++.dg/cpp0x/pr84610.C: New.
* g++.dg/cpp0x/pr84642.C: New.

From-SVN: r258748

6 years agore PR c/84999 (ICE in make_vector_type, at tree.c:9561)
Jakub Jelinek [Wed, 21 Mar 2018 21:48:47 +0000 (22:48 +0100)]
re PR c/84999 (ICE in make_vector_type, at tree.c:9561)

PR c/84999
* c-typeck.c (build_binary_op): If c_common_type_for_size fails when
building vector comparison, diagnose it and return error_mark_node.

* c-c++-common/pr84999.c: New test.

From-SVN: r258747

6 years agore PR c++/84972 (ICE: tree check: expected class 'type', have 'exceptional' (error_ma...
Paolo Carlini [Wed, 21 Mar 2018 21:19:03 +0000 (21:19 +0000)]
re PR c++/84972 (ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in extended_tree, at tree.h:5545)

/cp
2018-03-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84972
* decl.c (maybe_deduce_size_from_array_init): Set TREE_TYPE to
error_mark_node when check_array_designated_initializer fails.

/testsuite
2018-03-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84972
* g++.dg/ext/desig10.C: New.

From-SVN: r258746

6 years agore PR fortran/84957 (ICE in gfc_sym_type, at fortran/trans-types.c:2255)
Thomas Koenig [Wed, 21 Mar 2018 21:12:41 +0000 (21:12 +0000)]
re PR fortran/84957 (ICE in gfc_sym_type, at fortran/trans-types.c:2255)

2018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
Harald Anlauf  <anlauf@gmx.de>

PR fortran/84957
* trans-types.c (gfc_sym_type): Do not dereference NULL pointer.

2018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
Harald Anlauf  <anlauf@gmx.de>

PR fortran/84957
* gfortran.dg/pr84957.f90: New test.

Co-Authored-By: Harald Anlauf <anlauf@gmx.de>
From-SVN: r258745

6 years agore PR tree-optimization/84960 (ICE in GIMPLE pass: isolate-paths)
Jakub Jelinek [Wed, 21 Mar 2018 20:53:16 +0000 (21:53 +0100)]
re PR tree-optimization/84960 (ICE in GIMPLE pass: isolate-paths)

PR tree-optimization/84960
* tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb
if it is ENTRY block, move them into single succ of ENTRY in that case.

* gcc.c-torture/compile/pr84960.c: New test.

From-SVN: r258744

6 years agopoly_span_traits fixes (PR 84811)
Richard Sandiford [Wed, 21 Mar 2018 20:52:15 +0000 (20:52 +0000)]
poly_span_traits fixes (PR 84811)

This patch fixes incorrect results for HOST_WIDE_INT positions
at opposite extremes when used with HOST_WIDE_INT sizes.  It also
fixes UB when comparing such positions with unsigned HOST_WIDE_INT
sizes (although the results in that case were wrapv-correct).

2018-03-20  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/84811
* poly-int.h (poly_span_traits): Remove the T3 parameter and
promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT.
(maybe_in_range_p, known_in_range_p, ranges_known_overlap_p):
(known_subrange_p): Update accordingly.  Cast each value involved
in the size comparison, rather than casting the result of the
subtraction.

gcc/testsuite/
PR tree-optimization/84811
* gcc.dg/torture/pr84811.c: New test.

From-SVN: r258743

6 years agore PR tree-optimization/84982 (logically inverting bools into local array results...
Jakub Jelinek [Wed, 21 Mar 2018 20:20:40 +0000 (21:20 +0100)]
re PR tree-optimization/84982 (logically inverting bools into local array results in bitwise negation)

PR tree-optimization/84982
* gimple-ssa-store-merging.c (invert_op): Handle boolean inversion
by flipping the least significant bit rather than all bits from
bitpos to bitpos + bitsize - 1.

* c-c++-common/pr84982.c: New test.

From-SVN: r258742

6 years agore PR c++/84961 (ICE error: SSA_NAME_DEF_STMT is wrong)
Jakub Jelinek [Wed, 21 Mar 2018 20:19:33 +0000 (21:19 +0100)]
re PR c++/84961 (ICE error: SSA_NAME_DEF_STMT is wrong)

PR c++/84961
* cp-tree.h (genericize_compound_lvalue): Declare.
* typeck.c (genericize_compound_lvalue): New function.
(unary_complex_lvalue, cp_build_modify_expr): Use it.
* semantics.c (finish_asm_stmt): Replace MODIFY_EXPR, PREINCREMENT_EXPR
and PREDECREMENT_EXPR in output and "m" constrained input operands with
COMPOUND_EXPR.  Call cxx_mark_addressable on the rightmost
COMPOUND_EXPR operand.

* c-c++-common/pr43690.c: Don't expect errors on "m" (--x) and
"m" (++x) in C++.
* g++.dg/torture/pr84961-1.C: New test.
* g++.dg/torture/pr84961-2.C: New test.

From-SVN: r258741

6 years ago[PR c++/85008] ICE looking for clone
Nathan Sidwell [Wed, 21 Mar 2018 19:22:10 +0000 (19:22 +0000)]
[PR c++/85008] ICE looking for clone

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01129.html
PR c++/85008
* tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P.
* decl2.c (vague_linkage_p): Likewise.

PR c++/85008
* g++.dg/pr85008.C: New.

From-SVN: r258738

6 years agoPR 84615 Regressions due to type mismatch with character functions
Janne Blomqvist [Wed, 21 Mar 2018 18:46:44 +0000 (20:46 +0200)]
PR 84615 Regressions due to type mismatch with character functions

Since the kind of the hidden character length variable is not part of
the character variable definition, we must ensure that character
lengths are always of the same kind in interfaces, regardless of how
they were declared in the source. This patch ensures this when calling
a procedure.

Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84615
* trans-expr.c (gfc_conv_procedure_call): Convert charlen to
gfc_charlen_type_node when calling procedure.

gcc/testsuite/ChangeLog:

2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84615
* gfortran.dg/char_result_17.f90: New test.

From-SVN: r258736

6 years agoC++: show private field accessor hints with -g and optimization (PR c++/84994)
David Malcolm [Wed, 21 Mar 2018 18:21:39 +0000 (18:21 +0000)]
C++: show private field accessor hints with -g and optimization (PR c++/84994)

gcc/cp/ChangeLog:
PR c++/84994
* constexpr.c (constexpr_fn_retval): Make non-"static".
* cp-tree.h (constexpr_fn_retval): New decl.
* search.c (direct_accessor_p): Update leading comment.
(reference_accessor_p): Likewise.
(field_accessor_p): Replace check that function body is a
RETURN_EXPR with a call to constexpr_fn_retval.  Fix
indentation of "field_type" decl.

gcc/testsuite/ChangeLog:
PR c++/84994
* g++.dg/other/accessor-fixits-1.C: Move to...
* g++.dg/torture/accessor-fixits-1.C: ...here.
* g++.dg/other/accessor-fixits-2.C: Move to...
* g++.dg/torture/accessor-fixits-2.C: ...here.
* g++.dg/other/accessor-fixits-3.C: Move to...
* g++.dg/torture/accessor-fixits-3.C: ...here.
* g++.dg/other/accessor-fixits-4.C: Move to...
* g++.dg/torture/accessor-fixits-4.C: ...here.
* g++.dg/other/accessor-fixits-5.C: Move to...
* g++.dg/torture/accessor-fixits-5.C: ...here.
* g++.dg/torture/accessor-fixits-6.C: New testcase.
* g++.dg/torture/accessor-fixits-7.C: New testcase.
* g++.dg/torture/accessor-fixits-8.C: New testcase.

From-SVN: r258731

6 years agoRemove long-dead deprecation documentation
Nathan Sidwell [Wed, 21 Mar 2018 18:06:38 +0000 (18:06 +0000)]
Remove long-dead deprecation documentation

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01083.html
* doc/extend.texi (Deprecated Features): Remove mention of
long-deleted deprecations.

From-SVN: r258730

6 years agoxfail gcc.dg/tree-ssa/pr84512.c on 64-bit sparc
Rainer Orth [Wed, 21 Mar 2018 17:56:46 +0000 (17:56 +0000)]
xfail gcc.dg/tree-ssa/pr84512.c on 64-bit sparc

* gcc.dg/tree-ssa/pr84512.c: xfail on 64-bit SPARC.

From-SVN: r258729

6 years agoEnable jit on Solaris: soname option and EXTRA_GCC_LIBS (PR jit/84288)
Rainer Orth [Wed, 21 Mar 2018 17:39:16 +0000 (17:39 +0000)]
Enable jit on Solaris: soname option and EXTRA_GCC_LIBS (PR jit/84288)

gcc/jit:
PR jit/84288
* Make-lang.in ($(LIBGCCJIT_FILENAME)): Add $(EXTRA_GCC_LIBS).

gcc:
PR jit/84288
* configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set.
* configure: Regenerate.

From-SVN: r258727

6 years ago[ARM] Fix test pr82989.c for big endian and mthumb
Sudakshina Das [Wed, 21 Mar 2018 17:14:48 +0000 (17:14 +0000)]
[ARM] Fix test pr82989.c for big endian and mthumb

The test pr82989.c which was added in one of previous commits is failing for
mthumb and big-endian configurations. The aim of this test was to check that
NEON instructions are not being used for simple shift operations. The scanning
of lsl and lsr instructions and checking its counts were just too restrictive
for different configurations. So I have now simplified the test to only check
for the absence of NEON instructions.

*** gcc/testsuite/ChangeLog ***

2018-03-21  Sudakshina Das  <sudi.das@arm.com>

PR target/82989
* gcc.target/arm/pr82989.c: Change dg scan-assembly directives.

From-SVN: r258723

6 years ago[PR c++/84804] ICE with default arg, template friend & lambda
Nathan Sidwell [Wed, 21 Mar 2018 15:58:00 +0000 (15:58 +0000)]
[PR c++/84804] ICE with default arg, template friend & lambda

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01108.html
PR c++/84804
* name-lookup.c (do_pushtag): Permit lambdas to be pushed into
complete classes.

PR c++/84804
* g++.dg/lookup/pr84804.C: New.

From-SVN: r258722