gcc.git
5 years agoFix typo in ChangeLog
Christophe Lyon [Thu, 4 Apr 2019 07:48:56 +0000 (09:48 +0200)]
Fix typo in ChangeLog

From-SVN: r270143

5 years agoDF usage in loop-invariant.c (PR46590)
Richard Sandiford [Thu, 4 Apr 2019 07:35:34 +0000 (07:35 +0000)]
DF usage in loop-invariant.c (PR46590)

- df_live is already present at -O2, so we only need to add it and
  mark all blocks dirty for -O

- df_process_deferred_rescans should be enough to force a rescan of
  blocks affected by moving invariants, but calling it in find_defs
  means that we don't do any rescans for the final loop

2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR rtl-optimization/46590
* loop-invariant.c (find_defs): Move df_remove_problem and
df_process_deferred_rescans to move_invariants.
Move df_live_add_problem and df_live_set_all_dirty calls
to move_invariants.
(move_invariants): Likewise.
(move_loop_invariants): Likewise, making the df_live calls
conditional on -O.  Remove the problem again if we added it
locally.

From-SVN: r270142

5 years agoDaily bump.
GCC Administrator [Thu, 4 Apr 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270141

5 years agoPR c++/81866 - ICE with member template and default targ.
Jason Merrill [Wed, 3 Apr 2019 21:51:36 +0000 (17:51 -0400)]
PR c++/81866 - ICE with member template and default targ.

This testcase manages to find a way to look up the partial instantiation of
B for the default argument of C before we've created the partial
instantiation of B as part of the normal instantiation of the members of A.
Which we can deal with, but we were getting confused because the partial
instantiation was stored with a RECORD_TYPE specialization rather than
TEMPLATE_DECL.

* pt.c (tsubst_template_decl): Handle getting a type from
retrieve_specialization.

From-SVN: r270138

5 years ago[multiple changes]
Dominique d'Humieres [Wed, 3 Apr 2019 21:32:13 +0000 (23:32 +0200)]
[multiple changes]

2019-04-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68567
* expr.c (gfc_reduce_init_expr): Add extra check to avoid
dereferencing a null pointer.

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

PR fortran/68567
* gfortran.dg/parameter_array_error_1.f90: New test.

From-SVN: r270137

5 years agoPR c++/86586 - -fcompare-debug=-Wsign-compare.
Jason Merrill [Wed, 3 Apr 2019 20:12:00 +0000 (16:12 -0400)]
PR c++/86586 - -fcompare-debug=-Wsign-compare.

This patch limits constexpr folding for -Wsign-compare to only cases that we
would warn for without considering constant values, avoiding the folding in
the testcase in question.

gcc/c-family/
* c-warn.c (warn_for_sign_compare): Call fold_for_warn.
gcc/cp/
* typeck.c (cp_build_binary_op): Don't fold for -Wsign-compare.

From-SVN: r270136

5 years agoPR c++/89331 - ICE with offsetof in incomplete class.
Jason Merrill [Wed, 3 Apr 2019 20:09:17 +0000 (16:09 -0400)]
PR c++/89331 - ICE with offsetof in incomplete class.

We were aborting when build_base_path returned an error because of the
derived class not being complete yet, which wasn't considered by the assert.
Fixed by checking for complete type first.  The semantics.c change avoids
a duplicate error message.

* semantics.c (finish_offsetof): Handle error_mark_node.
* typeck.c (build_class_member_access_expr): Call
complete_type_or_maybe_complain before converting to base.

From-SVN: r270135

5 years agore PR tree-optimization/89730 (-flive-patching=inline-only-static should grant always...
Qing Zhao [Wed, 3 Apr 2019 19:00:25 +0000 (19:00 +0000)]
re PR tree-optimization/89730 (-flive-patching=inline-only-static should grant always_inline attribute for extern function)

2019-04-03  qing zhao  <qing.zhao@oracle.com>

PR tree-optimization/89730
* ipa-inline.c (can_inline_edge_p): Delete the checking for
-flive-patching=inline-only-static.
(can_inline_edge_by_limits_p): Add the checking for
-flive-patching=inline-only-static and grant always_inline
even when -flive-patching=inline-only-static is specified.

* gcc.dg/live-patching-4.c: New test.

From-SVN: r270134

5 years agogo-torture.exp: Only add lto to TORTURE_OPTIONS if it is supported.
Clément Chigot [Wed, 3 Apr 2019 18:21:38 +0000 (18:21 +0000)]
go-torture.exp: Only add lto to TORTURE_OPTIONS if it is supported.

* lib/go-torture.exp: Only add lto to TORTURE_OPTIONS if it is
supported.

From-SVN: r270133

5 years agoFix typo in comment
Jonathan Wakely [Wed, 3 Apr 2019 17:56:41 +0000 (18:56 +0100)]
Fix typo in comment

* files.c (search_path_exhausted): Fix typo in comment.

From-SVN: r270132

5 years agore PR rtl-optimization/81025 (gcc ICE while building glibc for MIPS soft-float multi...
Jeff Law [Wed, 3 Apr 2019 16:03:37 +0000 (10:03 -0600)]
re PR rtl-optimization/81025 (gcc ICE while building glibc for MIPS soft-float multi-lib variant)

        PR rtl-optimization/81025
        * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.

From-SVN: r270129

5 years ago[testsuite] PR71598: Fix testcases
Christophe Lyon [Wed, 3 Apr 2019 13:17:04 +0000 (13:17 +0000)]
[testsuite] PR71598: Fix testcases

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

PR c/71598
* gcc.dg/torture/pr71598-1.c: Skip if short_enums target.
* gcc.dg/torture/pr71598-2.c: Skip if not short_enums target.

From-SVN: r270126

5 years agore PR rtl-optimization/84101 (-O3 and -ftree-vectorize trying too hard for function...
Richard Biener [Wed, 3 Apr 2019 12:30:16 +0000 (12:30 +0000)]
re PR rtl-optimization/84101 (-O3 and -ftree-vectorize trying too hard for function returning trivial pair-of-uint64_t-structure)

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

PR tree-optimization/84101
* tree-vect-stmts.c: Include explow.h for hard_function_value,
regs.h for hard_regno_nregs.
(cfun_returns): New helper.
(vect_model_store_cost): When vectorizing a store to a decl
we return and the function ABI returns in a multi-reg location
account for the possible spilling that will happen.

* gcc.target/i386/pr84101.c: New testcase.

From-SVN: r270123

5 years agoS/390: Reject long disp for vector load/store early
Andreas Krebbel [Wed, 3 Apr 2019 11:26:09 +0000 (11:26 +0000)]
S/390: Reject long disp for vector load/store early

The vector memory instructions only support short displacements.
Reject invalid displacements early to prevent plenty of lay
instructions to be generated later which then cannot be merged
properly.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_legitimate_address_p): Reject long
displacement addresses for vector mode operands.

From-SVN: r270122

5 years agoFix previous ChangeLog entry
Jonathan Wakely [Wed, 3 Apr 2019 10:11:30 +0000 (11:11 +0100)]
Fix previous ChangeLog entry

From-SVN: r270121

5 years ago[ARC] Restore blink first when optimizing for speed.
Claudiu Zissulescu [Wed, 3 Apr 2019 10:08:04 +0000 (12:08 +0200)]
[ARC] Restore blink first when optimizing for speed.

When not optimizing for size, we can restore first blink, hence the return
instruction will be executed faster.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (GMASK_LEN): Define.
(arc_restore_callee_saves): Restore first blink when
!optimize_size.

From-SVN: r270120

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