gcc.git
5 years ago[GCC, DOCS, AArch64] Add missing documenation for mbranch-protection
Sudakshina Das [Wed, 3 Apr 2019 10:02:23 +0000 (10:02 +0000)]
[GCC, DOCS, AArch64] Add missing documenation for mbranch-protection

This patch add the missing documentation bits for -mbranch-protection in both
extend.texi and invoke.texi.

*** gcc/ChangeLog ***

2019-04-03  Sudakshina Das  <sudi.das@arm.com>

* doc/extend.texi: Add deprecated comment on sign-return-address
function attribute and add mbranch-protection.
* doc/invoke.texi: Add bti to the options for mbranch-protection.

From-SVN: r270119

5 years ago[ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros
Vineet Gupta [Wed, 3 Apr 2019 09:53:03 +0000 (09:53 +0000)]
[ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros

simple test such as below was failing.

| void main(int argc, char *argv[])
| {
|    size_t total_time = 115424;                       // expected 115.424
|    double secs = (double)total_time/(double)1000;
|    printf("%s %d %lf\n", "secs", total_time, secs);  // prints 113.504
|    printf("%d\n", (size_t)secs);
| }

The printf eventually called into glibc stdlib/divrem.c:__mpn_divrem()
which uses the __arc__ specific inline asm macros from longlong.h which
were causing miscompilation.

include/
2019-03-28  Vineet Gupta <vgupta@synopsys.com>

        PR 89877

        * longlong.h [__arc__] (add_ssaaaa): Add cc clobber
        (sub_ddmmss): Likewise.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
From-SVN: r270118

5 years agoPR libstdc++/85184 remove debug assertions from std::variant
Jonathan Wakely [Wed, 3 Apr 2019 09:47:51 +0000 (10:47 +0100)]
PR libstdc++/85184 remove debug assertions from std::variant

The __glibcxx_assert macro should be used to check preconditions that
users must meet, not to check postconditions that the implementation
must meet. We have tests to verify std::variant meets its
postconditions, users shouldn't pay for those checks at runtime.

PR libstdc++/85184
* include/std/variant (_Copy_assign_base, _Move_assign_base, variant):
Remove assertions.
(variant::emplace<_Tp>): Remove result of emplace<N> directly.

From-SVN: r270117

5 years agoDefine std::hash specializations for C++17 PMR strings
Jonathan Wakely [Wed, 3 Apr 2019 09:47:47 +0000 (10:47 +0100)]
Define std::hash specializations for C++17 PMR strings

These hash specializations should have been added when the pmr::string
and related typedefs were added.

* include/std/string (__hash_string_base): New class template defining
operator() for hashing strings.
(hash<pmr::string>, hash<pmr::u8string>, hash<pmr::u16string>)
(hash<pmr::u32string>, hash<pmr::wstring>): Define for C++17.
* testsuite/21_strings/basic_string/hash/hash.cc: New test.
* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: New test.

From-SVN: r270116

5 years agore PR fortran/89375 (fortran/expr.c:4723:5: warning: logical ‘or’ of equal expression...
Dominique d'Humieres [Wed, 3 Apr 2019 09:00:27 +0000 (11:00 +0200)]
re PR fortran/89375 (fortran/expr.c:4723:5: warning: logical ‘or’ of equal expressions [-Wlogical-op])

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

PR fortran/89375
* expr.c (comp_pointer): Remove redundant condition.

From-SVN: r270115

5 years agore PR lto/89896 (-flto=4 is confused by presence of 'all.c' in a local directory...
Richard Biener [Wed, 3 Apr 2019 08:46:00 +0000 (08:46 +0000)]
re PR lto/89896 (-flto=4 is confused by presence of 'all.c' in a local directory. -flto=1 is not.)

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

PR lto/89896
* lto-wrapper.c (run_gcc): Avoid implicit rules making
the all target phony.

From-SVN: r270112

5 years agoPR c++/89917 - ICE with lambda in variadic mem-init.
Jason Merrill [Wed, 3 Apr 2019 04:48:45 +0000 (00:48 -0400)]
PR c++/89917 - ICE with lambda in variadic mem-init.

A mem-initializer is not a type, and we don't want to turn autos within it
into packs.

* pt.c (make_pack_expansion): Change type_pack_expansion_p to false.

From-SVN: r270111

5 years agoDaily bump.
GCC Administrator [Wed, 3 Apr 2019 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270110

5 years ago* gcc.target/visium/bit_shift.c: xfail.
Jeff Law [Tue, 2 Apr 2019 19:45:14 +0000 (13:45 -0600)]
* gcc.target/visium/bit_shift.c: xfail.

From-SVN: r270105

5 years agore PR target/89902 (ICE: in extract_insn, at recog.c:2310: unrecognizable insn with...
Uros Bizjak [Tue, 2 Apr 2019 17:05:59 +0000 (19:05 +0200)]
re PR target/89902 (ICE: in extract_insn, at recog.c:2310: unrecognizable insn with -mavx512bitalg)

PR target/89902
PR target/89903
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
Return false for variable DImode shifts.
(dimode_scalar_chain::compute_convert_gain): Do not handle
register count operand in variable DImode shifts.
(dimode_scalar_chain::make_vector_copies): Remove support to copy
count argument of a variable shift instruction to a vector register.
(dimode_scalar_chain::convert_reg): Remove support to convert
count argument of a variable shift instruction.

testsuite/ChangeLog:

PR target/89902
PR target/89903
* gcc.target/i386/pr70799-4.c: Remove.
* gcc.target/i386/pr70799-5.c: Remove.
* gcc.target/i386/pr89902.c: New test.
* gcc.target/i386/pr89903.c: Ditto.

From-SVN: r270102

5 years agosel-sched: skip outer loop in get_all_loop_exits (PR 84206)
Andrey Belevantsev [Tue, 2 Apr 2019 15:45:57 +0000 (18:45 +0300)]
sel-sched: skip outer loop in get_all_loop_exits (PR 84206)

2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

PR rtl-optimization/84206
* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
iterating over loop headers.

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

From-SVN: r270096

5 years agosel-sched: fixup reset of first_insn (PR 85876)
Andrey Belevantsev [Tue, 2 Apr 2019 15:39:22 +0000 (18:39 +0300)]
sel-sched: fixup reset of first_insn (PR 85876)

2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

PR rtl-optimization/85876
* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
beyond the original fence.

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

From-SVN: r270095

5 years agoObsolete Cell Broadband Engine SPU target support
Ulrich Weigand [Tue, 2 Apr 2019 14:08:06 +0000 (14:08 +0000)]
Obsolete Cell Broadband Engine SPU target support

gcc/ChangeLog:
2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>

        * config.gcc: Mark spu* targets as deprecated/obsolete.

From-SVN: r270092

5 years agoS/390: arch13: vector float-int conversion builtins
Andreas Krebbel [Tue, 2 Apr 2019 11:10:13 +0000 (11:10 +0000)]
S/390: arch13: vector float-int conversion builtins

gcc/ChangeLog:

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

* config/s390/s390-builtin-types.def: New builtin function type
definitions. Remove unused types.
* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
overloaded builtins.
(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
* config/s390/vecintrin.h (vec_float): New builtin macro definition.
(vec_double, vec_signed, vec_unsigned): Define to use the new
overloaded builtins.
* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
Remove expanders.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/vec-double-compile.c: New test.
* gcc.target/s390/zvector/vec-float-compile.c: New test.
* gcc.target/s390/zvector/vec-signed-compile.c: New test.
* gcc.target/s390/zvector/vec-unsigned-compile.c: New test.

From-SVN: r270091

5 years agoS/390: arch13: vector string search builtins
Andreas Krebbel [Tue, 2 Apr 2019 11:08:54 +0000 (11:08 +0000)]
S/390: arch13: vector string search builtins

gcc/ChangeLog:

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

* config/s390/s390-builtin-types.def: New builtin function type
definitions.
* config/s390/s390-builtins.def (s390_vec_search_string_cc)
(s390_vec_search_string_until_zero_cc): New overloaded builtins.
(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
(s390_vstrszh, s390_vstrszf): New low-level builtins.
* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
constant definitions.
* config/s390/vecintrin.h (vec_search_string_cc)
(vec_search_string_until_zero_cc): New builtin name definitions.
* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
expanders.
("vec_vstrs<mode>"): New insn definition.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/vec-search-string-cc-1.c: New test.
* gcc.target/s390/zvector/vec-search-string-cc-compile.c: New test.
* gcc.target/s390/zvector/vec-search-string-until-zero-cc-1.c: New test.
* gcc.target/s390/zvector/vec-search-string-until-zero-cc-compile.c: New test.

From-SVN: r270090

5 years agoS/390: arch13: vector shift double by bit builtins
Andreas Krebbel [Tue, 2 Apr 2019 11:07:44 +0000 (11:07 +0000)]
S/390: arch13: vector shift double by bit builtins

gcc/ChangeLog:

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

* config/s390/s390-builtin-types.def: Add new builtin function
types.
* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
New overloaded builtins.
(s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
s390_vsrd.
* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
(UNSPEC_VEC_SLDBYTE): ... this.
(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
definitions.
* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/vec-shift-left-double-by-bit-1.c: New test.
* gcc.target/s390/zvector/vec-shift-right-double-by-bit-1.c: New test.

From-SVN: r270089

5 years agoS/390: arch13: vector load byte reversed element and replicate
Andreas Krebbel [Tue, 2 Apr 2019 11:06:30 +0000 (11:06 +0000)]
S/390: arch13: vector load byte reversed element and replicate

gcc/ChangeLog:

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

("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
New insn definition.
* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
* config/s390/vector.md (V_HW_HSD): ... here.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/replicate-bswap-1.c: New test.
* gcc.target/s390/zvector/replicate-bswap-2.c: New test.

From-SVN: r270088

5 years agotestsuite: do not try to add -m32 (PR 89916)
Alexander Monakov [Tue, 2 Apr 2019 11:04:22 +0000 (14:04 +0300)]
testsuite: do not try to add -m32 (PR 89916)

PR testsuite/89916
* gcc.dg/pr86928.c: Do not attempt to add -m32.

From-SVN: r270087

5 years agoS/390: arch13: vector load/store byte reversed element for builtins
Andreas Krebbel [Tue, 2 Apr 2019 11:03:40 +0000 (11:03 +0000)]
S/390: arch13: vector load/store byte reversed element for builtins

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

* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
New insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/bswap-and-replicate-1.c: New test.
* gcc.target/s390/zvector/get-element-bswap-1.c: New test.
* gcc.target/s390/zvector/get-element-bswap-2.c: New test.
* gcc.target/s390/zvector/get-element-bswap-3.c: New test.
* gcc.target/s390/zvector/get-element-bswap-4.c: New test.
* gcc.target/s390/zvector/set-element-bswap-1.c: New test.
* gcc.target/s390/zvector/set-element-bswap-2.c: New test.
* gcc.target/s390/zvector/set-element-bswap-3.c: New test.

From-SVN: r270086

5 years agoS/390: arch13: vec_reve element order reversal builtins
Andreas Krebbel [Tue, 2 Apr 2019 11:02:22 +0000 (11:02 +0000)]
S/390: arch13: vec_reve element order reversal builtins

gcc/ChangeLog:

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

* config/s390/s390-builtin-types.def: Add new builtin function type.
* config/s390/s390-builtins.def: Add overloaded builtin
s390_vec_reve and low-level builtins for s390_vler and s390_vster.
* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
* config/s390/vecintrin.h (vec_reve): New builtin name definition.
* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
("eltswap<mode>"): New expander.
("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/vec-reve-load-byte-z14.c: New test.
* gcc.target/s390/zvector/vec-reve-load-byte.c: New test.
* gcc.target/s390/zvector/vec-reve-load-halfword-z14.c: New test.
* gcc.target/s390/zvector/vec-reve-load-halfword.c: New test.
* gcc.target/s390/zvector/vec-reve-store-byte-z14.c: New test.
* gcc.target/s390/zvector/vec-reve-store-byte.c: New test.

From-SVN: r270085

5 years agoS/390: arch13: vec_revb vector byte swap builtin
Andreas Krebbel [Tue, 2 Apr 2019 11:01:06 +0000 (11:01 +0000)]
S/390: arch13: vec_revb vector byte swap builtin

gcc/ChangeLog:

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

* config/s390/s390-builtin-types.def: Add new builtin function types.
* config/s390/s390-builtins.def: Add overloaded builtin
s390_vec_revb. Add low-level builtins for vlbr and vstbr
instructions.
* config/s390/vecintrin.h (vec_revb): New builtin name definition.
* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
("bswap<mode>"): New expander.
("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/zvector/vec-revb-load-double-z14.c: New test.
* gcc.target/s390/zvector/vec-revb-load-double.c: New test.
* gcc.target/s390/zvector/vec-revb-store-double-z14.c: New test.
* gcc.target/s390/zvector/vec-revb-store-double.c: New test.

From-SVN: r270084

5 years agoS/390: arch13: New vector builtins - preparation
Andreas Krebbel [Tue, 2 Apr 2019 10:59:30 +0000 (10:59 +0000)]
S/390: arch13: New vector builtins - preparation

gcc/ChangeLog:

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

* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
vector builtin version number in __VEC__.

From-SVN: r270083

5 years agoS/390: arch13: Support 32 bit fp-int scalar converts
Andreas Krebbel [Tue, 2 Apr 2019 10:58:33 +0000 (10:58 +0000)]
S/390: arch13: Support 32 bit fp-int scalar converts

gcc/ChangeLog:

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

* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
iterators.
(SFSI): New mode attribute.
("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
rename to ...
("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
("floatsi<mode>2"): Add wcefb instruction.

From-SVN: r270082

5 years agoS/390: arch13: Support 32 bit fp-int vector converts
Andreas Krebbel [Tue, 2 Apr 2019 10:57:39 +0000 (10:57 +0000)]
S/390: arch13: Support 32 bit fp-int vector converts

gcc/ChangeLog:

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

* config/s390/s390.md ("xde"): Extend mode attribute to vector
types.
* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
mode iterators.
("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
support 32 bit fp-int conversions. Rename to ...
("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
... to these.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/arch13/fp-signedint-convert-1.c: New test.
* gcc.target/s390/arch13/fp-unsignedint-convert-1.c: New test.

From-SVN: r270081

5 years agoS/390: arch13: Add support for new select instruction
Andreas Krebbel [Tue, 2 Apr 2019 10:56:34 +0000 (10:56 +0000)]
S/390: arch13: Add support for new select instruction

Compared to the load on condition instructions we already have the new
select instruction allows to have a THEN and and ELSE source operand -
but only for register to register loads.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
if-then-else constructs if we can use the select instruction.
* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/arch13/sel-1.c: New test.

From-SVN: r270080

5 years agoS/390: arch13: Support new popcount instruction
Andreas Krebbel [Tue, 2 Apr 2019 10:55:26 +0000 (10:55 +0000)]
S/390: arch13: Support new popcount instruction
 variant.

The new arch13 popcount instruction counts bits in the entire 64 bit
register instead of just in 8 bit portions.

gcc/ChangeLog:

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

* config/s390/s390.md ("*popcountdi_arch13_cc")
("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
definition.
("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
Append _z196 to make it ...
("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
("popcounthi2_z196"): ... this.
("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/arch13/popcount-1.c: New test.

From-SVN: r270079

5 years agoS/390: arch13: Support new bit operations
Andreas Krebbel [Tue, 2 Apr 2019 10:51:53 +0000 (10:51 +0000)]
S/390: arch13: Support new bit operations

Make use of the new bit operation instructions when generating code
for the arch13 level.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_canonicalize_comparison): Convert
certain compares for arch13 in order to make use of the condition
code result produced by the new instructions.
(s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
nxrk, and nxgrk instruction patterns.
* config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
(inv_no): Add new code iterator together with some attributes.
("*andc_split_<mode>"): Disable splitter for arch13.
("*<ANDOR:bitops_name>c<GPR:mode>_cc")
("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
("*<ANDOR:bitops_name>c<GPR:mode>")
("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
("*n<ANDOR:inv_bitops_name><mode>_cconly")
("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/arch13/bitops-1.c: New test.
* gcc.target/s390/arch13/bitops-2.c: New test.
* gcc.target/s390/md/andc-splitter-1.c: Add -march=z14 build
option and adjust line numbers.
* gcc.target/s390/md/andc-splitter-2.c: Likewise.

From-SVN: r270078

5 years agoS/390: arch13: Add arch13 as architecture option
Andreas Krebbel [Tue, 2 Apr 2019 10:50:03 +0000 (10:50 +0000)]
S/390: arch13: Add arch13 as architecture option

This patch enables the command line options and provides the proper
macros for checking.

gcc/ChangeLog:

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

* common/config/s390/s390-common.c (processor_flags_table): New
entry for arch13.
* config.gcc: Support arch13 with the --with-arch= configure flag.
* config/s390/driver-native.c (s390_host_detect_local_cpu):
* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
* config/s390/s390.c (s390_get_sched_attrmask)
(s390_get_unit_mask): Add PROCESSOR_ARCH13.
* config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
* config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
(TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
(TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
definitions.
* config/s390/s390.opt: Support arch13 as processor type in
command line options.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/s390.exp: Run tests in arch13 subdir.
* lib/target-supports.exp (check_effective_target_s390_vxe2): New
runtime check for the vxe2 hardware feature on IBM Z.

From-SVN: r270077

5 years agoFix param description of graphite-max-arrays-per-scop (PR translation/89912).
Martin Liska [Tue, 2 Apr 2019 07:55:30 +0000 (09:55 +0200)]
Fix param description of graphite-max-arrays-per-scop (PR translation/89912).

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

PR translation/89912
* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
Fix param description of graphite-max-arrays-per-scop.

From-SVN: r270076

5 years agolinux64.h (ASAN_REJECT_SPEC): New macro.
Eric Botcazou [Tue, 2 Apr 2019 07:40:30 +0000 (07:40 +0000)]
linux64.h (ASAN_REJECT_SPEC): New macro.

* config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
(ASAN_CC1_SPEC): Use it in 64-bit mode.
* config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.

From-SVN: r270075

5 years agore PR d/89823 (Composed message only partially translatable)
Iain Buclaw [Tue, 2 Apr 2019 05:23:20 +0000 (05:23 +0000)]
re PR d/89823 (Composed message only partially translatable)

gcc/po/ChangeLog:

2019-04-02  Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/89823
* EXCLUDES: Update list of d/dmd sources.
* gcc.pot: Regenerated.

From-SVN: r270074

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

From-SVN: r270072

5 years ago* fr.po, sv.po: Update.
Joseph Myers [Mon, 1 Apr 2019 21:42:32 +0000 (22:42 +0100)]
* fr.po, sv.po: Update.

From-SVN: r270069

5 years agoPR c++/86946 - ICE with function call in template argument.
Jason Merrill [Mon, 1 Apr 2019 20:43:13 +0000 (16:43 -0400)]
PR c++/86946 - ICE with function call in template argument.

DR 1321 clarified that two dependent names are equivalent if the names are
the same, even if the result of name lookup is different.  We need to
implement that in hashing like we already do in comparison and mangling.

* pt.c (iterative_hash_template_arg) [CALL_EXPR]: Use
dependent_name.

From-SVN: r270068

5 years agoCheck avx2_available in check_avx2_available
H.J. Lu [Mon, 1 Apr 2019 18:34:00 +0000 (18:34 +0000)]
Check avx2_available in check_avx2_available

check_avx2_available should check avx2_available, instead of avx_available.
Otherwise, check_avx2_available may use result from check_avx_available.

PR testsuite/89907
* lib/target-supports.exp (check_avx2_available): Replace
avx_available with avx2_available.

From-SVN: r270066

5 years agosel-sched: correct reset of reset_sched_cycles_p (PR 85412)
Andrey Belevantsev [Mon, 1 Apr 2019 18:05:08 +0000 (21:05 +0300)]
sel-sched: correct reset of reset_sched_cycles_p (PR 85412)

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

PR rtl-optimization/85412
* sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
sel_sched_region_1, not after.

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

From-SVN: r270065

5 years agore PR c++/62207 (ICE: tree check: expected tree that contains 'decl minimal' structur...
Paolo Carlini [Mon, 1 Apr 2019 17:09:47 +0000 (17:09 +0000)]
re PR c++/62207 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'overload' in tsubst_copy, at cp/pt.c)

/cp
2019-04-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/62207
* pt.c (tsubst_copy): Deal with lookup_name not returing a variable.

/testsuite
2019-04-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/62207
* g++.dg/template/crash130.C: New.
* g++.dg/template/crash131.C: Likewise.

From-SVN: r270064

5 years agoPR c/89685 - ICE on attribute copy with a compound expression
Martin Sebor [Mon, 1 Apr 2019 17:04:10 +0000 (17:04 +0000)]
PR c/89685 - ICE on attribute copy with a compound expression

gcc/c-family/ChangeLog:

PR c/89685
* c-attribs.c (handle_copy_attribute): Handle references and
non-constant expressions.

gcc/testsuite/ChangeLog:

PR c/89685
* gcc.dg/attr-copy-8.c: New test.
* g++.dg/ext/attr-copy-2.C: New test.

From-SVN: r270062

5 years agosel-sched: update liveness in redirect_edge_and_branch hooks (PR 86928)
Andrey Belevantsev [Mon, 1 Apr 2019 16:32:24 +0000 (19:32 +0300)]
sel-sched: update liveness in redirect_edge_and_branch hooks (PR 86928)

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

PR rtl-optimization/86928
* sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
compute_live if necessary.
(sel_redirect_edge_and_branch): Likewise.

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

From-SVN: r270061

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Vladimir Makarov [Mon, 1 Apr 2019 16:18:30 +0000 (16:18 +0000)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/89865
* ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
register if it is a part of small class.

From-SVN: r270060

5 years agosel-sched: remove assert in merge_fences (PR 87273)
Andrey Belevantsev [Mon, 1 Apr 2019 15:20:13 +0000 (18:20 +0300)]
sel-sched: remove assert in merge_fences (PR 87273)

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

PR rtl-optimization/87273
* sel-sched-ir.c (merge_fences): Remove assert.

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

From-SVN: r270059

5 years agore PR d/88462 (All D execution tests FAIL on Solaris/SPARC)
Iain Buclaw [Mon, 1 Apr 2019 14:44:04 +0000 (14:44 +0000)]
re PR d/88462 (All D execution tests FAIL on Solaris/SPARC)

    PR d/88462
libphobos: Fix abort in pthread_mutex_init on Solaris.

Merges upstream druntime d57fa1ff.

Reviewed-on: https://github.com/dlang/druntime/pull/2534

From-SVN: r270057

5 years agoUse single-visitation in variant assignment and swap and relops.
Ville Voutilainen [Mon, 1 Apr 2019 13:57:41 +0000 (16:57 +0300)]
Use single-visitation in variant assignment and swap and relops.

Also use indices instead of types when checking whether
variants hold the same thing.
* include/std/variant (__do_visit): Add a template parameter
for index visitation, invoke with indices if index visitation
is used.
(__variant_idx_cookie): New.
(__visit_with_index): Likewise.
(_Copy_assign_base::operator=): Do single-visitation with
an index visitor.
(_Move_assign_base::operator=): Likewise.
(_Extra_visit_slot_needed): Adjust.
(__visit_invoke): Call with indices if it's an index visitor.
(relops): Do single-visitation with an index visitor.
(swap): Likewise.
(__visitor_result_type): New.

From-SVN: r270056

5 years agore PR tree-optimization/46590 (long compile time with -O2 and many loops)
Richard Biener [Mon, 1 Apr 2019 11:36:25 +0000 (11:36 +0000)]
re PR tree-optimization/46590 (long compile time with -O2 and many loops)

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

PR tree-optimization/46590
* domwalk.h (dom_walker::dom_walker): Consolidate constructors.
(dom_walker::m_reachability): Add in place of...
(dom_walker::m_skip_unreachable_blocks): ...this.
* domwalk.c (dom_walker::dom_walker): Consoliate constructors.
Move complex initialization ...
(dom_walker::walk): Here.  Especially compute m_bb_to_rpo
lazily and initialize edge flags on each invocation.
(dom_walker::bb_reachable): Use m_reachability.

From-SVN: r270055

5 years agoEnhance option suggestion for options expected an argument (PR driver/89861).
Martin Liska [Mon, 1 Apr 2019 07:17:38 +0000 (09:17 +0200)]
Enhance option suggestion for options expected an argument (PR driver/89861).

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

PR driver/89861
* opt-suggestions.c (option_proposer::build_option_suggestions):
Add variant without any argument in order to provide better
hints.
2019-04-01  Martin Liska  <mliska@suse.cz>

PR driver/89861
* gcc.dg/spellcheck-options-18.c: New test.
* gcc.dg/spellcheck-options-19.c: New test.
* gcc.dg/spellcheck-options-20.c: New test.
* gcc.dg/spellcheck-options-13.c: Adjust expected output.
* gcc.dg/completion-2.c: Add one variant with no argument.

From-SVN: r270053

5 years agore PR c/71598 (Wrong optimization with aliasing enums)
Richard Biener [Mon, 1 Apr 2019 07:16:38 +0000 (07:16 +0000)]
re PR c/71598 (Wrong optimization with aliasing enums)

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

PR c/71598
* gimple.c: Include langhooks.h.
(gimple_get_alias_set): Treat enumeral types as the underlying
integer type.

c/
* c-tree.h (c_get_alias_set): Declare.
* c-objc-common.h (LANG_HOOKS_GET_ALIAS_SET): Use c_get_alias_set.
* c-objc-common.c (c_get_alias_set): Treat enumeral types
as the underlying integer type.

* gcc.dg/torture/pr71598-1.c: New testcase.
* gcc.dg/torture/pr71598-2.c: Likewise.
* gcc.dg/torture/pr71598-3.c: Likewise.

From-SVN: r270052

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

From-SVN: r270051

5 years agoPR c++/89852 - ICE with C++11 functional cast with { }.
Marek Polacek [Sun, 31 Mar 2019 20:37:22 +0000 (20:37 +0000)]
PR c++/89852 - ICE with C++11 functional cast with { }.

* constexpr.c (fold_non_dependent_expr_template): New static function
broken out of...
(fold_non_dependent_expr): ...here.
(fold_non_dependent_init): New function.
* cp-tree.h (fold_non_dependent_init): Declare.
* typeck2.c (massage_init_elt): Call fold_non_dependent_init instead
of fold_non_dependent_expr.  Don't call maybe_constant_init.

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

From-SVN: r270048

5 years agore PR fortran/83515 (ICE: Invalid expression in gfc_element_size)
Harald Anlauf [Sun, 31 Mar 2019 18:33:51 +0000 (18:33 +0000)]
re PR fortran/83515 (ICE: Invalid expression in gfc_element_size)

2019-03-31  Harald Anlauf  <anlauf@gmx.de>

PR fortran/83515
PR fortran/85797
* trans-types.c (gfc_typenode_for_spec): Handle conversion for
procedure pointers.
* target-memory.c (gfc_element_size): Handle size determination
for procedure pointers.

PR fortran/83515
PR fortran/85797
* gfortran.dg/pr85797.f90: New test.

From-SVN: r270045

5 years agodump-parse-tree.c (debug): Add for symbol_attribute *, symbol_attribute and gfc_ref...
Thomas Koenig [Sun, 31 Mar 2019 15:21:10 +0000 (15:21 +0000)]
dump-parse-tree.c (debug): Add for symbol_attribute *, symbol_attribute and gfc_ref * arguments.

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

    * dump-parse-tree.c (debug):  Add for symbol_attribute *,
    symbol_attribute and gfc_ref * arguments.

From-SVN: r270044

5 years agod: Fix run-time SIGSEGV reading ModuleInfo.flags()
Iain Buclaw [Sun, 31 Mar 2019 14:34:41 +0000 (14:34 +0000)]
d: Fix run-time SIGSEGV reading ModuleInfo.flags()

The current forced alignment is not necessary, and is problematic on
targets that have strict alignment rules.

gcc/d/ChangeLog:

2019-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/88462
* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
instead of forcing alignment to be 1.

From-SVN: r270043

5 years agoEnable gcc.dg/attr-aligned-3.c on Solaris
Rainer Orth [Sun, 31 Mar 2019 09:26:22 +0000 (09:26 +0000)]
Enable gcc.dg/attr-aligned-3.c on Solaris

* gcc.dg/attr-aligned-3.c: Enable on *-*-solaris2.*.

From-SVN: r270042

5 years agoDaily bump.
GCC Administrator [Sun, 31 Mar 2019 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270041

5 years agotestsuite/gdc.test: Merge upstream dmd 5dd3eccc3
Iain Buclaw [Sat, 30 Mar 2019 22:10:12 +0000 (22:10 +0000)]
testsuite/gdc.test: Merge upstream dmd 5dd3eccc3

The D2 testsuite script has been updated to handle EXTRA_SOURCES and
EXTRA_FILES settings being split across multiple lines, which is how
they appear in upstream.

Reviewed-on: https://github.com/dlang/dmd/pull/9517

gcc/testsuite/ChangeLog:

2019-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>

* gdc.test/gdc-test.exp (gdc-copy-extra): Append copied files to
cleanup_extra_files.
(dmd2dg): Copy additional files after test is processed.
(gdc-do-test): Remove all copied files after test.

From-SVN: r270038

5 years agore PR fortran/89841 (improper descriptor information passed to C)
Paul Thomas [Sat, 30 Mar 2019 15:39:00 +0000 (15:39 +0000)]
re PR fortran/89841 (improper descriptor information passed to C)

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

PR fortran/89841
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal
argument attributes rather than those of the actual argument.

PR fortran/89842
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call
'set_dtype_for_unallocated' for any type of arrayspec.

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

PR fortran/89841
* gfortran.dg/ISO_Fortran_binding_1.f90: Change the interfaces
for c_deallocate, c_allocate and c_assumed_size so that the
attributes of the array arguments are correct and are typed.
* gfortran.dg/ISO_Fortran_binding_7.f90: New test.
* gfortran.dg/ISO_Fortran_binding_7.c: Additional source.

PR fortran/89842
* gfortran.dg/ISO_Fortran_binding_8.f90: New test.
* gfortran.dg/ISO_Fortran_binding_8.c: Additional source.

From-SVN: r270037

5 years agoPR c++/89744 - ICE with specialization of member class template.
Jason Merrill [Sat, 30 Mar 2019 15:23:37 +0000 (11:23 -0400)]
PR c++/89744 - ICE with specialization of member class template.

My fix five years ago for PR 60241 was incomplete: when we reassign implicit
instances of a partial instantiation of a member template to the explicit
specialization of that partial instantiation, we also need to adjust the
CLASSTYPE_TI_ARGS to match what we'd get when looking up that instance after
the explicit specialization.  We also need to do this when we later look up
the instance in a way that only finds the explicit specialization halfway
through lookup_template_class_1.

* pt.c (lookup_template_class_1): If the partial instantiation is
explicitly specialized, adjust.
(maybe_process_partial_specialization): Also adjust
CLASSTYPE_TI_ARGS.

From-SVN: r270036

5 years agore PR fortran/89866 ([F08] wrong-code problem with POINTER, INTENT(IN) argument)
Thomas Koenig [Sat, 30 Mar 2019 13:41:10 +0000 (13:41 +0000)]
re PR fortran/89866 ([F08] wrong-code problem with POINTER, INTENT(IN) argument)

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

PR fortran/89866
* gfortran.dg/pointer_intent_8.f90: New test.

From-SVN: r270034

5 years ago* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
Eric Botcazou [Sat, 30 Mar 2019 13:36:16 +0000 (13:36 +0000)]
* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.

From-SVN: r270033

5 years agore PR rtl-optimization/89862 (LTO bootstrap fails for ARM)
Kugan Vivekanandarajah [Sat, 30 Mar 2019 04:24:22 +0000 (04:24 +0000)]
re PR rtl-optimization/89862 (LTO bootstrap fails for ARM)

2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
    Eric Botcazou  <ebotcazou@adacore.com>

PR rtl-optimization/89862
* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
that operates on the full registers for WORD_REGISTER_OPERATIONS
architectures.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r270030

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

From-SVN: r270029

5 years agoRISC-V: Fix __riscv_compressed regression.
Jim Wilson [Fri, 29 Mar 2019 21:51:58 +0000 (21:51 +0000)]
RISC-V: Fix __riscv_compressed regression.

This was accidentally broken by the patch adding ELF attribute support.
The __riscv_compressed predefined macro is not being defined when the
target supports the C extension.  The fix adds testcases to verify that
all of the predefined macros are correct for various option combinations.

gcc/
* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
Clear MASK_RVC and then set if C subset supported.

gcc/testsuite/
* gcc.target/riscv/predef-1.c: New.
* gcc.target/riscv/predef-2.c: New.
* gcc.target/riscv/predef-3.c: New.
* gcc.target/riscv/predef-4.c: New.
* gcc.target/riscv/predef-5.c: New.
* gcc.target/riscv/predef-6.c: New.
* gcc.target/riscv/predef-7.c: New.
* gcc.target/riscv/predef-8.c: New.

From-SVN: r270026

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Jakub Jelinek [Fri, 29 Mar 2019 20:51:15 +0000 (21:51 +0100)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR rtl-optimization/89865
* gcc.target/i386/pr49095.c: Include in scan-assembler-times patterns
the first argument register, so that occassional spills/fills are
ignored.

From-SVN: r270025

5 years agore PR sanitizer/89869 (-fsanitize=undefined miscompilation)
Jakub Jelinek [Fri, 29 Mar 2019 20:10:19 +0000 (21:10 +0100)]
re PR sanitizer/89869 (-fsanitize=undefined miscompilation)

PR sanitizer/89869
* typeck.c: Include gimplify.h.
(cp_build_modify_expr) <case COND_EXPR>: Unshare rhs before using it
for second time.  Formatting fixes.

* g++.dg/ubsan/vptr-14.C: New test.

From-SVN: r270024

5 years agore PR c/89872 (GCC does not generate read access to volatile compound literal)
Jakub Jelinek [Fri, 29 Mar 2019 19:32:20 +0000 (20:32 +0100)]
re PR c/89872 (GCC does not generate read access to volatile compound literal)

PR c/89872
* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
non-addressable complit into its initializer if it is volatile.

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

From-SVN: r270023

5 years agoopts-common.c (integral_argument): Set errno properly in one case.
Roman Zhuykov [Fri, 29 Mar 2019 18:44:01 +0000 (18:44 +0000)]
opts-common.c (integral_argument): Set errno properly in one case.

    * opts-common.c (integral_argument): Set errno properly in one case.

    * gcc.dg/diag-sanity.c: New test.

From-SVN: r270022

5 years agoPR c++/89876 - ICE with deprecated conversion.
Marek Polacek [Fri, 29 Mar 2019 18:40:31 +0000 (18:40 +0000)]
PR c++/89876 - ICE with deprecated conversion.

* call.c (convert_like_real): Only give warnings with tf_warning.

* g++.dg/warn/conv5.C: New test.

From-SVN: r270021

5 years agore PR c++/89871 (Wall + designated initializers)
Marek Polacek [Fri, 29 Mar 2019 15:24:00 +0000 (15:24 +0000)]
re PR c++/89871 (Wall + designated initializers)

PR c++/89871
* g++.dg/cpp2a/desig14.C: New test.

From-SVN: r270019

5 years agoRemove -Wchkp from documentation.
Martin Liska [Fri, 29 Mar 2019 14:53:12 +0000 (15:53 +0100)]
Remove -Wchkp from documentation.

2019-03-29  Martin Liska  <mliska@suse.cz>

* doc/invoke.texi: Remove -Wchkp from documentation.

From-SVN: r270017

5 years agoDump -fdbg-cnt limit reach also to stderr stream.
Martin Liska [Fri, 29 Mar 2019 11:45:56 +0000 (12:45 +0100)]
Dump -fdbg-cnt limit reach also to stderr stream.

2019-03-29  Martin Liska  <mliska@suse.cz>

* dbgcnt.c (print_limit_reach): New function.
(dbg_cnt): Use it.
2019-03-29  Martin Liska  <mliska@suse.cz>

* gcc.dg/ipa/ipa-icf-39.c: Prine '***dbgcnt' output.
* gcc.dg/pr68766.c: Likewise.

From-SVN: r270015

5 years agoFix multiple values for -fdbg-cnt.
Martin Liska [Fri, 29 Mar 2019 11:45:39 +0000 (12:45 +0100)]
Fix multiple values for -fdbg-cnt.

2019-03-29  Martin Liska  <mliska@suse.cz>

* dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
(dbg_cnt_process_opt): Parse first tokens aas
dbg_cnt_process_single_pair is also using strtok.

From-SVN: r270014

5 years agore PR rtl-optimization/87485 (Compile time hog w/ -O2 -fschedule-insns -fno-guess...
Jakub Jelinek [Fri, 29 Mar 2019 11:42:51 +0000 (12:42 +0100)]
re PR rtl-optimization/87485 (Compile time hog w/ -O2 -fschedule-insns -fno-guess-branch-probability -fno-isolate-erroneous-paths-dereference -fno-omit-frame-pointer -fno-split-wide-types -fno-tree-ccp -fno-tree-sra)

PR rtl-optimization/87485
* function.c (expand_function_end): Move stack_protect_epilogue
before loading of return value into hard register(s).

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

From-SVN: r270013

5 years agoDaily bump.
GCC Administrator [Fri, 29 Mar 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270012

5 years agore PR middle-end/89621 (ICE with allocatable character and openmp)
Jakub Jelinek [Thu, 28 Mar 2019 22:33:29 +0000 (23:33 +0100)]
re PR middle-end/89621 (ICE with allocatable character and openmp)

PR middle-end/89621
* tree-inline.h (struct copy_body_data): Add
dont_remap_vla_if_no_change flag.
* tree-inline.c (remap_type_3, remap_type_2): New functions.
(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
and remap_type_2 returns false.
* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
only from where it is copied to nested contexts.

* gfortran.dg/gomp/pr89621.f90: New test.

From-SVN: r270009

5 years agoPR c++/66548 - Invalid class member access expression in decltype sometimes
Martin Sebor [Thu, 28 Mar 2019 21:32:11 +0000 (21:32 +0000)]
PR c++/66548 - Invalid class member access expression in decltype sometimes

PR c++/66548 - Invalid class member access expression in decltype sometimes
accepted

gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/decltype-pr66548.C: New test.

From-SVN: r270007

5 years agoPR c++/81506 - Invalid declaration with decltype accepted
Martin Sebor [Thu, 28 Mar 2019 21:20:18 +0000 (21:20 +0000)]
PR c++/81506 - Invalid declaration with decltype accepted

testsuite/ChangeLog:
* g++.dg/cpp0x/decltype-pr81506.C: New test.

From-SVN: r270006

5 years agoPR c++/89612 - ICE with member friend template with noexcept.
Marek Polacek [Thu, 28 Mar 2019 20:24:48 +0000 (20:24 +0000)]
PR c++/89612 - ICE with member friend template with noexcept.

* pt.c (maybe_instantiate_noexcept): For function templates, use their
template result (function decl).  Don't set up local specializations.
Temporarily turn on processing_template_decl.  Update the template type
too.

* g++.dg/cpp0x/noexcept38.C: New test.
* g++.dg/cpp0x/noexcept39.C: New test.
* g++.dg/cpp1z/noexcept-type21.C: New test.

From-SVN: r270005

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Uros Bizjak [Thu, 28 Mar 2019 19:33:22 +0000 (20:33 +0100)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR target/89865
* config/i386/i386.md (RMW operation with LEA peephole):
Use LEAMODE mode attribute instead of SWI mode iterator for
LEA pattern.

From-SVN: r270004

5 years agore PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2...
Uros Bizjak [Thu, 28 Mar 2019 19:15:58 +0000 (20:15 +0100)]
re PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2 -mtune=pentium3m)

PR target/89848
* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
Also process XEXP (src, 0) of a shift insn.

testsuite/ChangeLog:

PR target/89848
* gcc.target/i386/pr89848.c: New test.

From-SVN: r270003

5 years agoPR c++/89836 - bool constant expression and explicit conversions.
Marek Polacek [Thu, 28 Mar 2019 18:23:18 +0000 (18:23 +0000)]
PR c++/89836 - bool constant expression and explicit conversions.

* call.c (build_converted_constant_expr_internal): New function,
renamed from...
(build_converted_constant_expr): ...this.  New.
(build_converted_constant_bool_expr): New.
* cp-tree.h (build_converted_constant_bool_expr): Declare.
* decl.c (build_explicit_specifier): Call
build_converted_constant_bool_expr.

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

From-SVN: r270002

5 years agore PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds...
Jakub Jelinek [Thu, 28 Mar 2019 17:14:05 +0000 (18:14 +0100)]
re PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds maximum 2147483648)

PR c/89812
* gcc.dg/attr-aligned-3.c: Limit the test to known ELF targets
other than AVR.  Add dg-options "".

From-SVN: r270001

5 years agoDon't revisit a variant we are already visiting.
Ville Voutilainen [Thu, 28 Mar 2019 16:18:49 +0000 (18:18 +0200)]
Don't revisit a variant we are already visiting.

* include/std/variant (__variant_construct_single): New.
(__variant_construct): Use it.
(_M_destructive_move): Likewise.
(_M_destructive_copy): Likewise.
(_Copy_assign_base::operator=): Adjust.
(_Move_assign_base::operator=): Likewise.
(swap): Likewise.

From-SVN: r269996

5 years agore PR c++/89785 (Incorrect "not a constant expression" error with switch statement...
Jakub Jelinek [Thu, 28 Mar 2019 14:47:47 +0000 (15:47 +0100)]
re PR c++/89785 (Incorrect "not a constant expression" error with switch statement that returns)

PR c++/89785
* constexpr.c (struct check_for_return_continue_data): New type.
(check_for_return_continue): New function.
(potential_constant_expression_1) <case SWITCH_STMT>: Walk
SWITCH_STMT_BODY to find RETURN_EXPRs or CONTINUE_STMTs not nested
in loop bodies and set *jump_target to that if found.

* g++.dg/cpp1y/constexpr-89785-1.C: New test.
* g++.dg/cpp1y/constexpr-89785-2.C: New test.

From-SVN: r269995

5 years agooptinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)
David Malcolm [Thu, 28 Mar 2019 14:40:56 +0000 (14:40 +0000)]
optinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)

optrecord_json_writer::optinfo_to_json can in theory be called from any
optimization pass, but currently uses get_fnname_from_decl, which
is RTL-specific.

In that PR, Jakub suggested using either DECL_ASSEMBLER_NAME or the
"printable name" (via current_function_name).

This patch makes it use DECL_ASSEMBLER_NAME.

gcc/ChangeLog:
PR middle-end/89725
* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.

From-SVN: r269994

5 years agoregcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test.
Jakub Jelinek [Thu, 28 Mar 2019 14:20:10 +0000 (15:20 +0100)]
regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test.

* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
test.
(cprop_hardreg_bb, cprop_hardreg_debug): New functions.
(pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
immediately after first one with df_analyze in between, but rather
process all bbs, queueing ones that need second pass in a worklist,
df_analyze, process queued debug insn changes and if second pass is
needed, process bbs from worklist, df_analyze, process queued debug
insns again.

From-SVN: r269992

5 years agortl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of...
Jakub Jelinek [Thu, 28 Mar 2019 14:07:40 +0000 (15:07 +0100)]
rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P.

* rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
or CALL_P instead of INSN_P && !DEBUG_INSN_P.
(INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.

From-SVN: r269991

5 years agoPR c/79022 fix mismatch parameter order in declaratio
Jonathan Wakely [Thu, 28 Mar 2019 13:42:48 +0000 (13:42 +0000)]
PR c/79022 fix mismatch parameter order in declaratio

The declaration of create_nested_ptr_option in the header has the 'from'
and 'to' parameters in the opposite order from the definition in
gengtype.c:

  /* Return an options structure for a "nested_ptr" option.  */
  options_p
  create_nested_ptr_option (options_p next, type_p t,
                            const char *to, const char *from)

and the only caller in gengtype-parse.c:

  return create_nested_ptr_option (prev, ty, to, from);

This patch swaps the parameter names in the declaration.

PR c/79022
* gengtype.h (create_nested_ptr_option): Fix parameter names to match
definition.

From-SVN: r269990

5 years agoRevert r254150 (PR bootstrap/89829).
Martin Liska [Thu, 28 Mar 2019 08:44:44 +0000 (09:44 +0100)]
Revert r254150 (PR bootstrap/89829).

2019-03-28  Martin Liska  <mliska@suse.cz>

PR bootstrap/89829
* Makefile.in: Revert r254150.
* Makefile.tpl: Likewise.

From-SVN: r269985

5 years agoMAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnu...
Ben Elliston [Thu, 28 Mar 2019 06:55:57 +0000 (17:55 +1100)]
MAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnumber.

* MAINTAINERS (Various Maintainers): Remove myself from dfp.c and
related, and libdecnumber.

From-SVN: r269984

5 years agoDaily bump.
GCC Administrator [Thu, 28 Mar 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269983

5 years agore PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutin...
Janus Weil [Wed, 27 Mar 2019 22:40:22 +0000 (23:40 +0100)]
re PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutine through procedure pointer)

fix PR 85537

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

PR fortran/85537
* expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures
in procedure pointer initialization.

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

PR fortran/85537
* gfortran.dg/dummy_procedure_11.f90: Fix test case.
* gfortran.dg/pointer_init_11.f90: New test case.

From-SVN: r269980

5 years agore PR target/85667 (ms_abi rules aren't followed when returning short structs with...
Mateusz B [Wed, 27 Mar 2019 21:17:48 +0000 (22:17 +0100)]
re PR target/85667 (ms_abi rules aren't followed when returning short structs with float values)

PR target/85667
* config/i386/i386.c (ix86_function_value_1): Call the newly added
function for 32-bit MS_ABI.
(function_value_ms_32): New function.

testsuite/ChangeLog:

PR target/85667
* gcc.target/i386/pr85667-5.c: New testcase.
* gcc.target/i386/pr85667-6.c: New testcase.

From-SVN: r269979

5 years agopr81740-2.c: Require vect_hw_misalign.
Bill Schmidt [Wed, 27 Mar 2019 20:39:22 +0000 (20:39 +0000)]
pr81740-2.c: Require vect_hw_misalign.

2019-03-27  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign.

From-SVN: r269978

5 years agoPR c++/89831 - error with qualified-id in const member function.
Jason Merrill [Wed, 27 Mar 2019 20:39:19 +0000 (16:39 -0400)]
PR c++/89831 - error with qualified-id in const member function.

Since the fix for 15272 we were remembering the wrong function to use at
instantiation time, because the type of the SCOPE_REF didn't reflect the
cv-quals of 'this'.  Conveniently, we can fix this by simplifying the code.

* semantics.c (finish_non_static_data_member): Use object cv-quals
in scoped case, too.

From-SVN: r269977

5 years agoFix ChangeLog
Jason Merrill [Wed, 27 Mar 2019 19:26:17 +0000 (15:26 -0400)]
Fix ChangeLog

From-SVN: r269976

5 years agoPR c++/89241 - ICE with lambda in template parameter list.
Jason Merrill [Wed, 27 Mar 2019 18:39:20 +0000 (14:39 -0400)]
PR c++/89241 - ICE with lambda in template parameter list.

We were getting confused by a lambda in template definition context that
isn't actually in the scope of any templated entity.  Fixed by telling
type_dependent_expression_p that such a lambda is type-dependent even if we
can't tell that from its closure type.  I've also restored the error for
defining a non-lambda class in a default template argument, and for a lambda
befor C++20.

* parser.c (cp_parser_lambda_expression): Also reject a lambda in a
template parameter list before C++20.
* pt.c (type_dependent_expression_p): True for LAMBDA_EXPR.
* semantics.c (begin_class_definition): Restore error about defining
non-lambda class in template parm list.

From-SVN: r269972

5 years agoteam.c (gomp_team_start): Initialize pool->threads[0].
Kevin Buettner [Wed, 27 Mar 2019 18:30:44 +0000 (18:30 +0000)]
team.c (gomp_team_start): Initialize pool->threads[0].

libgomp/ChangeLog:

* team.c (gomp_team_start): Initialize pool->threads[0].

From-SVN: r269971

5 years agoFix scc clobber in movdi_symbol.
Andrew Stubbs [Wed, 27 Mar 2019 17:06:26 +0000 (17:06 +0000)]
Fix scc clobber in movdi_symbol.

2019-03-27  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.md (CC_SAVE_REG): New constant.
(movdi): Call gen_movdi_symbol_save_scc.
(gen_movdi_symbol_save_scc): New insn and split.

From-SVN: r269970

5 years agore PR rtl-optimization/89313 (ICE in process_alt_operands, at lra-constraints.c:2962)
Peter Bergner [Wed, 27 Mar 2019 16:59:15 +0000 (16:59 +0000)]
re PR rtl-optimization/89313 (ICE in process_alt_operands, at lra-constraints.c:2962)

gcc/
PR rtl-optimization/89313
* function.c (matching_constraint_num): New static function.
(match_asm_constraints_1): Use it.  Fixup white space and comment.
Don't replace inputs with non-matching constraints which conflict
with early clobber outputs.

gcc/testsuite/
PR rtl-optimization/89313
* gcc.dg/pr89313.c: New test.

From-SVN: r269969

5 years agore PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c ...
Jeff Law [Wed, 27 Mar 2019 16:18:06 +0000 (10:18 -0600)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c   -O1 start with r265398)

PR rtl-optimization/87761
PR rtl-optimization/89826
* regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
slightly later.
(pass_cprop_hardreg::execute): Call df_analyze after adding the
note problem to get REG_DEAD/REG_UNUSED notes updated.

PR rtl-optimization/87761
PR rtl-optimization/89826
* gcc.c-torture/execute/pr89826.c: New test.

From-SVN: r269967

5 years agoPR c++/86932 - missed SFINAE with empty pack.
Jason Merrill [Wed, 27 Mar 2019 14:27:00 +0000 (10:27 -0400)]
PR c++/86932 - missed SFINAE with empty pack.

The issue here was that when processing the explicit template args in
fn_type_unification we added an empty argument pack for the parameter pack,
so we never tried to do any deduction for it, and therefore never looked at
its type.  We need that empty pack behavior for partial ordering, but we
don't want it here, so let's make it conditional on tf_partial.

* pt.c (coerce_template_parms): Don't add an empty pack if
tf_partial.
(fn_type_unification): Pass tf_partial to coerce_template_parms.

From-SVN: r269965