Martin Liska [Tue, 26 Mar 2019 09:58:34 +0000 (09:58 +0000)]
Add missing dot.
From-SVN: r269935
Martin Liska [Tue, 26 Mar 2019 09:57:29 +0000 (10:57 +0100)]
Fix wrong option wrapping.
2019-03-26 Martin Liska <mliska@suse.cz>
* lto-symtab.c (lto_symtab_merge_decls_2): Fix option name
wrapping
From-SVN: r269934
Jakub Jelinek [Tue, 26 Mar 2019 07:54:02 +0000 (08:54 +0100)]
re PR c++/89796 (Incorrect warning generated with OpenMP atomic capture)
PR c++/89796
* semantics.c (finish_omp_atomic): Add warning_sentinel for
-Wunused-value around finish_expr_stmt call.
* g++.dg/gomp/pr89796.C: New test.
* gcc.dg/gomp/pr89796.c: New test.
From-SVN: r269933
Alan Modra [Tue, 26 Mar 2019 05:16:14 +0000 (15:46 +1030)]
[RS6000] Fix typos
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
rs6000_vector_mem init. Correct wI and wJ comment
From-SVN: r269932
GCC Administrator [Tue, 26 Mar 2019 00:16:30 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269931
Jeff Law [Mon, 25 Mar 2019 23:33:36 +0000 (17:33 -0600)]
re PR rtl-optimization/88347 (ICE in begin_move_insn, at sched-ebb.c:175)
PR rtl-optimization/88347
PR rtl-optimization/88423
* sched-deps.c (sched_analyze_insn): Take into account that for
tablejumps the barrier appears after a label and a jump_table_data.
* gcc.c-torture/compile/pr88347.c: New test.
* gcc.c-torture/compile/pr88423.c: New test.
From-SVN: r269928
Martin Sebor [Mon, 25 Mar 2019 22:56:40 +0000 (22:56 +0000)]
PR c/89812 - incorrect maximum in error: requested alignment '
536870912' exceeds maximum
2147483648
gcc/c-family/ChangeLog:
PR c/89812
* c-common.c (check_user_alignment): Rename local. Correct maximum
alignment in diagnostic. Avoid assuming argument fits in SHWI,
convert it to UHWI when it fits.
gcc/testsuite/ChangeLog:
PR c/89812
* gcc.dg/attr-aligned-3.c: New test.
From-SVN: r269927
Joseph Myers [Mon, 25 Mar 2019 21:49:28 +0000 (21:49 +0000)]
Update .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.
From-SVN: r269926
Johan Karlsson [Mon, 25 Mar 2019 21:19:09 +0000 (21:19 +0000)]
re PR debug/86964 (Too many debug symbols included, especially for extern globals)
PR debug/86964
* dwarf2out.c (premark_used_variables): New function.
(prune_unused_types_walk): Do not mark not premarked external
variables.
(prune_unused_types): Call premark_used_variables.
* gcc.dg/debug/dwarf2/pr86964.c: New testcase.
From-SVN: r269925
Vladimir Makarov [Mon, 25 Mar 2019 21:14:40 +0000 (21:14 +0000)]
re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/89676
* lra-constraints.c (curr_insn_transform): Do match reload for
early clobbers when the match was successful only for different
registers.
From-SVN: r269924
Paolo Carlini [Mon, 25 Mar 2019 20:43:36 +0000 (20:43 +0000)]
re PR c++/84661 (internal compiler error: Segmentation fault (strip_array_types()))
/cp
2019-03-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84661
PR c++/85013
* parser.c (cp_parser_binary_expression): Don't call cp_fully_fold
to undo the disabling of warnings.
/testsuite
2019-03-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84661
PR c++/85013
* g++.dg/concepts/pr84661.C: New.
* g++.dg/torture/pr85013.C: Likewise.
From-SVN: r269923
Jason Merrill [Mon, 25 Mar 2019 18:27:08 +0000 (14:27 -0400)]
PR c++/87748 - substitution failure error with decltype.
This issue is similar to PR 87480; in both cases we were doing non-dependent
substitution with processing_template_decl set, leading to member access
expressions seeming still instantiation-dependent, and therefore decltype
not being simplified to its actual type. And as in that PR, the fix is to
clear processing_template_decl while substituting a default template
argument.
* pt.c (most_specialized_partial_spec): Clear
processing_template_decl.
From-SVN: r269921
Martin Sebor [Mon, 25 Mar 2019 17:23:31 +0000 (17:23 +0000)]
extend.texi (Common Type Attributes): Document vector_size.
gcc/ChangeLog:
* doc/extend.texi (Common Type Attributes): Document vector_size.
(Common Variable Attributes): Mention size constraint. Correct
quoting and typos.
(Vector Extensions): Use @dfn when defining bas type. Clarify
base type and size constraints.
From-SVN: r269920
Marek Polacek [Mon, 25 Mar 2019 16:38:48 +0000 (16:38 +0000)]
PR c++/89214 - ICE when initializing aggregates with bases.
* typeck2.c (digest_init_r): Warn about object slicing instead of
crashing.
* g++.dg/cpp1z/aggr-base8.C: New test.
* g++.dg/cpp1z/aggr-base9.C: New test.
From-SVN: r269919
Marek Polacek [Mon, 25 Mar 2019 16:10:06 +0000 (16:10 +0000)]
PR c++/89705 - ICE with reference binding with conversion function.
* call.c (reference_binding): If the result of the conversion function
is a prvalue of non-class type, use the cv-unqualified type.
* g++.dg/cpp0x/rv-conv2.C: New test.
From-SVN: r269918
Richard Biener [Mon, 25 Mar 2019 13:53:50 +0000 (13:53 +0000)]
re PR tree-optimization/89789 (Compile time hog during RPO VN)
2019-03-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/89789
* tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
changes from non-undefined back to undefined.
* gcc.dg/torture/pr89789.c: New testcase.
From-SVN: r269917
Thomas Otto [Mon, 25 Mar 2019 13:50:46 +0000 (13:50 +0000)]
dwarf2out.c (comp_dir_string): cached_wd could be set to both a heap string and a gc string...
2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
* dwarf2out.c (comp_dir_string): cached_wd could be set to both a
heap string and a gc string, but since this variable is unknown to
ggc the gc string might get reused and corrupted. Fixed by always
using a heap string.
From-SVN: r269916
Nathan Sidwell [Mon, 25 Mar 2019 12:22:47 +0000 (12:22 +0000)]
[C++] compiler incompatibility with lambdas
https://gcc.gnu.org/ml/gcc-patches/2019-03/msg00982.html
* lambda.c (maybe_add_lambda_conv_op): Don't add to comdat group.
* g++.dg/abi/lambda-static-1.C: New.
From-SVN: r269915
Richard Biener [Mon, 25 Mar 2019 12:18:38 +0000 (12:18 +0000)]
re PR middle-end/89779 (internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798)
2019-03-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/89779
* tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
to remove IV defs, delay actual removal.
(tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
(tree_ssa_iv_optimize): Remove eliminated IV defs at the
very end, properly also reset loop control IV information.
From-SVN: r269914
Richard Biener [Mon, 25 Mar 2019 12:15:59 +0000 (12:15 +0000)]
re PR tree-optimization/89802 ([9 Regresssion] ICE: verify_gimple failed (error: dead STMT in EH table))
2019-03-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/89802
* tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
move EH data to folded stmt.
* g++.dg/tree-ssa/pr89802.C: New testcase.
From-SVN: r269913
Jakub Jelinek [Mon, 25 Mar 2019 11:53:56 +0000 (12:53 +0100)]
re PR c++/60702 (thread_local initialization)
PR c++/60702
* g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives
for _ZTH* calls.
* g++.dg/tls/thread_local11a.C: New test.
From-SVN: r269912
John David Anglin [Mon, 25 Mar 2019 11:48:36 +0000 (11:48 +0000)]
re PR libfortran/79540 (FAIL: gfortran.dg/fmt_fw_d.f90 -O0 execution test)
PR libgfortran/79540
* io/write_float.def (build_float_string): Don't copy digits when
ndigits is negative.
From-SVN: r269911
Andreas Krebbel [Mon, 25 Mar 2019 10:10:31 +0000 (10:10 +0000)]
S/390: Cleanup builtin types file
gcc/ChangeLog:
2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
* config/s390/s390-builtin-types.def: Remove few unused types and
fix sort order for others.
From-SVN: r269909
Andreas Krebbel [Mon, 25 Mar 2019 10:09:43 +0000 (10:09 +0000)]
S/390: Improve debug output for builtin matching
gcc/ChangeLog:
2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
* config/s390/s390-c.c (s390_fn_types_compatible): Print the
expected and found types with -mdebug during builtin matching.
From-SVN: r269908
Richard Biener [Mon, 25 Mar 2019 10:05:15 +0000 (10:05 +0000)]
re PR middle-end/89790 (ICE segfault in operand_equal_p() at fold-const.c:3000 with -Wduplicated-cond since r269838)
2019-03-25 Richard Biener <rguenther@suse.de>
PR middle-end/89790
* fold-const.c (operand_equal_p): Revert last change with
updated comment.
* g++.dg/pr89790.C: New testcase.
From-SVN: r269907
Kyrylo Tkachov [Mon, 25 Mar 2019 09:25:07 +0000 (09:25 +0000)]
[doc] Fix typos in MINLOC, MAXLOC documentation
I think there's a typo in the documentation of the MINLOC and MAXLOC intrinsics.
It implies that when the BACK argument is true it returns the first occurrence of the min/max value,
but my understanding is that it should return the last occurrence.
This patch fixes the documentation.
* intrinsic.texi (MINLOC): Fix typo in BACK argument documentation.
(MAXLOC): Likewise.
From-SVN: r269906
GCC Administrator [Mon, 25 Mar 2019 00:16:41 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269905
Segher Boessenkool [Sun, 24 Mar 2019 20:26:53 +0000 (21:26 +0100)]
rs6000: Make CSE'ing __tls_get_addr calls possible
CSE does not consider calls, not even const calls. This patch puts a
REG_EQUAL note on the pseudo we assign the __tls_get_addr result to,
so that those pseudos can be CSE'd and the extra calls deleted as dead
code.
CSE should really handle const calls directly, but it is stage 4.
* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
notes for the result of the __tls_get_addr calls.
* config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
From-SVN: r269902
Uros Bizjak [Sun, 24 Mar 2019 19:47:03 +0000 (20:47 +0100)]
* testsuite/ChangeLog: Fix ChangeLog entry.
From-SVN: r269901
Uros Bizjak [Sun, 24 Mar 2019 19:39:59 +0000 (20:39 +0100)]
pr82281.c: Compile only for ia32 effective target.
* gcc.target/i386/pr82281.c: Compile only for ia32 effective target.
(dg-options): Remove -m32. Add -msse2 -mtune=znver1.
* gcc.target/i386/pr89676.c: Compile only for ia32 effective target.
(dg-options): Remove -m32 and -march=i686. Add -mno-stv.
From-SVN: r269900
Jeff Law [Sun, 24 Mar 2019 19:25:49 +0000 (13:25 -0600)]
* config/bfin/bfin.md (movpdi): Fix length for alternative 1.
From-SVN: r269899
Iain Buclaw [Sun, 24 Mar 2019 16:20:43 +0000 (16:20 +0000)]
d/dmd: Merge upstream dmd
74ac873be
Introduces a fix for a segfault when building without object.d being
present, as well as MinGW host build errors in dmd/root/filename.c.
Updates a couple of non-portable tests, removing one and fixing the
other.
From-SVN: r269897
Jeff Law [Sun, 24 Mar 2019 15:20:52 +0000 (09:20 -0600)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
* regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
as needed.
(pass_cprop_hardreg::execute): Add df note problem and defer insn
rescans. Reprocess blocks as needed, calling df_analyze before
reprocessing. Always call df_analyze before fixing up debug bind
insns.
From-SVN: r269896
Thomas Koenig [Sun, 24 Mar 2019 12:51:19 +0000 (12:51 +0000)]
re PR fortran/78865 (ICE in create_tmp_var, at gimple-expr.c:473)
2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78865
* interface.c (compare_actual_formal): Change errors about
missing or extra to gfc_error_now to make sure they are issued.
Change "spec" to "specifier" in message.
* resolve.c (resolve_global_procedure): Also check for mismatching
interface with global symbols if the namespace has already been
resolved.
2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78865
* gfortran.dg/altreturn_10.f90: New test.
* gfortran.dg/whole_file_3.f90: Change dg-warning to dg-error.
From-SVN: r269895
GCC Administrator [Sun, 24 Mar 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269894
Segher Boessenkool [Sat, 23 Mar 2019 16:15:48 +0000 (17:15 +0100)]
rs6000: Fix _mm_movemask_pi8 emulation for 32 bit
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
big endian.
From-SVN: r269891
Johannes Pfau [Sat, 23 Mar 2019 15:07:25 +0000 (15:07 +0000)]
[libphobos] Update info about required autotools versions
From-SVN: r269888
Johannes Pfau [Sat, 23 Mar 2019 15:07:16 +0000 (15:07 +0000)]
[libphobos] Update MERGE file, remove ill-formatted changelog entry
Changelog entries are not required for upstream merges.
From-SVN: r269887
Andrew Pinski [Sat, 23 Mar 2019 00:22:33 +0000 (00:22 +0000)]
[AARCH64] Fix zero_extendsidi2_aarch64 type attribute
2019-03-22 Andrew Pinski <apinski@marvell.com>
* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
attrribute for uxtw.
From-SVN: r269886
GCC Administrator [Sat, 23 Mar 2019 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269885
Joseph Myers [Fri, 22 Mar 2019 21:59:36 +0000 (21:59 +0000)]
* gcc.pot: Regenerate.
From-SVN: r269882
Jonathan Wakely [Fri, 22 Mar 2019 20:57:35 +0000 (20:57 +0000)]
Remove broken links from libstdc++ manual to Doxygen pages
The Doxygen docs do not have stable URLs, so linking to specific pages
doesn't work well.
* doc/xml/manual/backwards_compatibility.xml: Remove link to
Doxygen-generated pages with unstable URL.
* doc/xml/manual/concurrency_extensions.xml: Likewise.
* doc/xml/manual/extensions.xml: Likewise.
* doc/xml/manual/parallel_mode.xml: Likewise.
* doc/xml/manual/support.xml: Likewise.
From-SVN: r269881
Jeff Law [Fri, 22 Mar 2019 18:14:56 +0000 (12:14 -0600)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
* config/mips/mips-protos.h (mips_split_move): Add new argument.
(mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
(mips_split_move): Accept new INSN argument. Try to forward SRC
into the next instruction.
(mips_split_move_insn): Pass INSN through to mips_split_move.
From-SVN: r269880
Vladimir Makarov [Fri, 22 Mar 2019 16:59:21 +0000 (16:59 +0000)]
re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/89676
* lra-constraints.c (curr_insn_transform): Do match reload for
early clobbers even if the match was successful.
2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/89676
* gcc.target/i386/pr89676.c: New.
From-SVN: r269878
Jonathan Wakely [Fri, 22 Mar 2019 16:45:48 +0000 (16:45 +0000)]
Avoid -Wconversion warnings when -Wsystem-headers is used
* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
avoid -Wconversion warnings.
From-SVN: r269876
Jakub Jelinek [Fri, 22 Mar 2019 14:42:57 +0000 (15:42 +0100)]
re PR c++/60702 (thread_local initialization)
PR c++/60702
* cp-tree.h (get_tls_wrapper_fn): Remove declaration.
(maybe_get_tls_wrapper_call): Declare.
* decl2.c (get_tls_wrapper_fn): Make static.
(maybe_get_tls_wrapper_call): New function.
* typeck.c (build_class_member_access_expr): Handle accesses to TLS
variables.
* semantics.c (finish_qualified_id_expr): Likewise.
(finish_id_expression_1): Use maybe_get_tls_wrapper_call.
* pt.c (tsubst_copy_and_build): Likewise.
* g++.dg/tls/thread_local11.C: New test.
* g++.dg/tls/thread_local11.h: New test.
* g++.dg/tls/thread_local12a.C: New test.
* g++.dg/tls/thread_local12b.C: New test.
* g++.dg/tls/thread_local12c.C: New test.
* g++.dg/tls/thread_local12d.C: New test.
* g++.dg/tls/thread_local12e.C: New test.
* g++.dg/tls/thread_local12f.C: New test.
* g++.dg/tls/thread_local12g.C: New test.
* g++.dg/tls/thread_local12h.C: New test.
* g++.dg/tls/thread_local12i.C: New test.
* g++.dg/tls/thread_local12j.C: New test.
* g++.dg/tls/thread_local12k.C: New test.
* g++.dg/tls/thread_local12l.C: New test.
From-SVN: r269875
Jakub Jelinek [Fri, 22 Mar 2019 14:40:59 +0000 (15:40 +0100)]
re PR c++/87481 (Endless loop with optimisation in C++17)
PR c++/87481
* doc/invoke.texi (-fconstexpr-ops-limit=): Document.
* c.opt (-fconstexpr-ops-limit=): New option.
* constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member.
(cxx_eval_constant_expression): When not skipping, not constant class
or location wrapper, increment *ctx->constexpr_ops_count and if it is
above constexpr_loop_nest_limit, diagnose failure.
(cxx_eval_outermost_constant_expr): Add constexpr_ops_count and
initialize ctx.constexpr_ops_count to its address.
(is_sub_constant_expr): Likewise.
* g++.dg/cpp1y/constexpr-87481.C: New test.
From-SVN: r269874
Pierre-Marie de Rodat [Fri, 22 Mar 2019 13:59:02 +0000 (13:59 +0000)]
[Ada] GNAT.Sockets: fix recent regressions
The support for IPv6 that was added since last release triggered
regressions on various platforms. The size of structures passed to low
level routines was not correct anymore: it should depend on the address
family, now.
2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
gcc/ada/
PR ada/89583
* libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
Send_Socket): Fix the computation of structure lengths passed to
low level routines.
(Is_IPv6_Address): Fix the number of expected colons.
2019-03-22 Simon Wright <simon@pushface.org>
gcc/testsuite/
PR ada/89583
* gnat.dg/socket2.adb: New.
From-SVN: r269873
Bill Schmidt [Fri, 22 Mar 2019 13:49:18 +0000 (13:49 +0000)]
mmintrin.h (_mm_sub_pi32): Fix typo.
[gcc]
2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
[gcc/testsuite]
2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
* gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd.
From-SVN: r269871
Jakub Jelinek [Fri, 22 Mar 2019 12:58:09 +0000 (13:58 +0100)]
* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
<avx512>_fmsub_<mode>_mask3<round_name>,
<avx512>_fnmadd_<mode>_mask3<round_name>,
<avx512>_fnmsub_<mode>_mask3<round_name>,
avx512f_vmfmadd_<mode>_mask3<round_name>,
avx512f_vmfmsub_<mode>_mask3<round_name>,
*avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
instead of register_operand and %v instead of v for match_operand 1.
(avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
(*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
<round_nimm_predicate> instead of register_operand and %v instead of v
for match_operand 1.
From-SVN: r269870
Jakub Jelinek [Fri, 22 Mar 2019 10:12:18 +0000 (11:12 +0100)]
sse.md (<avx512>_fmadd_<mode>_mask<round_name>, [...]): Use <round_nimm_predicate> instead of nonimmediate_operand.
* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
<avx512>_fmadd_<mode>_mask3<round_name>,
<avx512>_fmsub_<mode>_mask<round_name>,
<avx512>_fmsub_<mode>_mask3<round_name>,
<avx512>_fnmadd_<mode>_mask<round_name>,
<avx512>_fnmadd_<mode>_mask3<round_name>,
<avx512>_fnmsub_<mode>_mask<round_name>,
<avx512>_fnmsub_<mode>_mask3<round_name>,
<avx512>_fmaddsub_<mode>_mask<round_name>,
<avx512>_fmaddsub_<mode>_mask3<round_name>,
<avx512>_fmsubadd_<mode>_mask<round_name>,
<avx512>_fmsubadd_<mode>_mask3<round_name>): Use
<round_nimm_predicate> instead of nonimmediate_operand.
(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
Use register_operand instead of <round_nimm_predicate> for the
operand that needs to match output.
(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
Likewise. Formatting fixes.
From-SVN: r269869
Jakub Jelinek [Fri, 22 Mar 2019 10:08:40 +0000 (11:08 +0100)]
re PR target/89784 (Missing AVX512 intrinsics)
PR target/89784
* config/i386/i386.c (enum ix86_builtins): Remove
IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
* config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
__builtin_ia32_vfmsubss3_mask3): New builtins.
* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
avx512f_vmfmadd_<mode>_mask3<round_name>,
avx512f_vmfmadd_<mode>_maskz_1<round_name>,
*avx512f_vmfmsub_<mode>_mask<round_name>,
avx512f_vmfmsub_<mode>_mask3<round_name>,
*avx512f_vmfmasub_<mode>_maskz_1<round_name>,
*avx512f_vmfnmadd_<mode>_mask<round_name>,
*avx512f_vmfnmadd_<mode>_mask3<round_name>,
*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
*avx512f_vmfnmsub_<mode>_mask<round_name>,
*avx512f_vmfnmsub_<mode>_mask3<round_name>,
*avx512f_vmfnmasub_<mode>_maskz_1<round_name>): New define_insns.
(avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
* config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
_mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
_mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
_mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
_mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
_mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
_mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
_mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
_mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
_mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
_mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
_mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
_mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
_mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
_mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
_mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
_mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
_mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
_mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
_mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
* gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask,
__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
__builtin_ia32_vfmsubss3_mask3): Define.
* gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask,
__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
__builtin_ia32_vfmsubss3_mask3): Define.
* gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask,
__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
__builtin_ia32_vfmsubss3_mask3): Define.
* gcc.target/i386/sse-14.c: Add tests for
_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
* gcc.target/i386/sse-22.c: Likewise.
2019-03-22 Hongtao Liu <hongtao.liu@intel.com>
* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
for _mm_mask{,3,z}_*.
* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.
From-SVN: r269868
Martin Sebor [Fri, 22 Mar 2019 02:58:27 +0000 (02:58 +0000)]
PR tree-optimization/89350 - Wrong -Wstringop-overflow= warning since r261518
gcc/ChangeLog:
PR tree-optimization/89350
* builtins.c (compute_objsize): Also ignore offsets whose upper
bound is negative.
* gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
(builtin_memref::builtin_memref): Initialize new member.
Allow EXPR to be null.
(builtin_memref::extend_offset_range): Replace local with a member.
Avoid assuming pointer offsets are unsigned.
(builtin_memref::set_base_and_offset): Determine base object
before computing offset range.
(builtin_access::builtin_access): Handle memset.
(builtin_access::generic_overlap): Replace local with a member.
(builtin_access::strcat_overlap): Same.
(builtin_access::overlap): Same.
(maybe_diag_overlap): Same.
(maybe_diag_access_bounds): Same.
(wrestrict_dom_walker::check_call): Handle memset.
(check_bounds_or_overlap): Same.
gcc/testsuite/ChangeLog:
PR tree-optimization/89350
* gcc.dg/Wstringop-overflow.c: Xfail overly ambitious tests.
* gcc.dg/Wstringop-overflow-11.c: New test.
* gcc.dg/Wstringop-overflow-12.c: New test.
* gcc.dg/pr89350.c: New test.
* gcc.dg/pr40340-1.c: Adjust expected warning.
* gcc.dg/pr40340-2.c: Same.
* gcc.dg/pr40340-4.c: Same.
* gcc.dg/pr40340-5.c: Same.
From-SVN: r269867
GCC Administrator [Fri, 22 Mar 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269866
Thomas Rodgers [Thu, 21 Mar 2019 23:48:49 +0000 (23:48 +0000)]
Integrate C++17 parallel algorithms
This is the Intel implementation of the C++17 parallel
algorithms, which has been donated to both GCC and LLVM. The upstream
project is at -
https://reviews.llvm.org/source/pstl/
The new files in the include/pstl sub-directory are covered by the
LICENSE.txt in that sub-directory, as are the tests in
testsuite/**/pstl/*
* include/Makefile.am (std_header): Add ${std_srcdir}/execution.
(pstl_srcdir, pstl_builddir, pstl_headers): New variables.
(allstamped): Add stamp-pstl.
(install-headers): Add ptsl_builddir.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Add pstl configuration.
* include/pstl/LICENSE.txt: New file.
* include/pstl/algorithm_fwd.h: New file.
* include/pstl/algorithm_impl.h: New file.
* include/pstl/execution_defs.h: New file.
* include/pstl/execution_impl.h: New file.
* include/pstl/glue_algorithm_defs.h: New file.
* include/pstl/glue_algorithm_impl.h: New file.
* include/pstl/glue_execution_defs.h: New file.
* include/pstl/glue_memory_defs.h: New file.
* include/pstl/glue_memory_impl.h: New file.
* include/pstl/glue_numeric_defs.h: New file.
* include/pstl/glue_numeric_impl.h: New file.
* include/pstl/memory_impl.h: New file.
* include/pstl/numeric_fwd.h: New file.
* include/pstl/numeric_impl.h: New file.
* include/pstl/parallel_backend.h: New file.
* include/pstl/parallel_backend_tbb.h: New file.
* include/pstl/parallel_backend_utils.h: New file.
* include/pstl/parallel_impl.h: New file.
* include/pstl/pstl_config.h: New file.
* include/pstl/unseq_backend_simd.h: New file.
* include/pstl/utils.h: New file.
* include/std/algorithm: Include parallel algorithm implementations.
* include/std/execution: New file.
* include/std/memory: Include parallel algorithm implementations.
* include/std/numeric: Include parallel algorithm implementations.
* include/std/version: Add parallel algorithms feature test macro.
* testsuite/util/pstl/pstl_test_config.h: New file.
* testsuite/util/pstl/test_utils.h: New file.
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
* testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
* testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
* testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
* testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
* testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
* testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
* testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
From-SVN: r269863
Jan Hubicka [Thu, 21 Mar 2019 22:04:29 +0000 (23:04 +0100)]
re PR lto/89692 (ICE in streamer_write_chain, at tree-streamer-out.c:506)
PR lto/89692
* tree.c (fld_type_variant, fld_incomplete_type_of,
fld_process_array_type): Call fld->pset.add and don't call
add_tree_to_fld_list if it returns true.
(free_lang_data_in_type): Similarly with self-recursive call. Purge
non-marked types from TYPE_NEXT_VARIANT list.
(find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
* g++.dg/other/pr89692.C: New test.
From-SVN: r269862
Jakub Jelinek [Thu, 21 Mar 2019 22:03:07 +0000 (23:03 +0100)]
re PR c++/71446 (Incorrect overload resolution when using designated initializers)
PR c++/71446
* call.c (filed_in_pset): Change pset from hash_set<tree> * to
hash_set<tree, true> &, adjust uses accordingly.
(build_aggr_conv): Change pset from hash_set<tree> *
to hash_set<tree, true>. Replace goto fail; with return NULL;,
adjust pset uses.
From-SVN: r269861
Jakub Jelinek [Thu, 21 Mar 2019 22:01:02 +0000 (23:01 +0100)]
re PR c++/89767 (ICE with tuple and optimization)
PR c++/89767
* parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id
variables, check for duplicates in this function.
* lambda.c (add_capture): Don't check for duplicates nor use
IDENTIFIER_MARKED.
(register_capture_members): Don't clear IDENTIFIER_MARKED here.
* g++.dg/cpp1y/lambda-init18.C: New test.
* g++.dg/cpp1y/lambda-init19.C: New test.
* g++.dg/cpp1y/pr89767.C: New test.
From-SVN: r269860
Jakub Jelinek [Thu, 21 Mar 2019 22:00:04 +0000 (23:00 +0100)]
hash-table.h (hash_table): Add Lazy template parameter defaulted to false...
* hash-table.h (hash_table): Add Lazy template parameter defaulted
to false, if true, don't alloc_entries during construction, but defer
it to the first method that needs m_entries allocated.
(hash_table::hash_table, hash_table::~hash_table,
hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
hash_table::clear_slot, hash_table::traverse_noresize,
hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
* hash-set.h (hash_set): Add Lazy template parameter defaulted to
false.
(hash_set::contains): If Lazy is true, use find_slot_with_hash with
NO_INSERT instead of find_with_hash.
(hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
hash_set::m_table): Add Lazy to template params of hash_table.
(gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
* attribs.c (test_attribute_exclusions): Likewise.
* hash-set-tests.c (test_set_of_strings): Add iterator tests for
hash_set. Add tests for hash_set with Lazy = true.
c-family/
* c-common.c (per_file_includes_t): Use false as Lazy in hash_set
template param.
jit/
* jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy
in hash_set template param.
From-SVN: r269859
Thomas Schwinge [Thu, 21 Mar 2019 20:13:44 +0000 (21:13 +0100)]
[PR72741] Properly handle clauses specifying the level of parallelism for 'external' Fortran OpenACC routines
..., so as to also for these enable the generic middle end OMP code to verify
proper nesting of loops/routines regarding their levels of parallelism.
gcc/fortran/
PR fortran/72741
* openmp.c (gfc_match_oacc_routine): Set the level of parallelism
for all variants.
(gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target.
gcc/testsuite/
PR fortran/72741
* c-c++-common/goacc/routine-3-extern.c: New file.
* c-c++-common/goacc/routine-3.c: Adjust.
* c-c++-common/goacc/routine-4-extern.c: New file.
* c-c++-common/goacc/routine-4.c: Adjust.
* gfortran.dg/goacc/routine-module-3.f90: New file.
* gfortran.dg/goacc/routine-external-level-of-parallelism-1.f: New
file.
* gfortran.dg/goacc/routine-external-level-of-parallelism-2.f:
Likewise.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r269858
Thomas Schwinge [Thu, 21 Mar 2019 20:02:42 +0000 (21:02 +0100)]
[PR89773] Fortran OpenACC 'routine' directive refuses procedures with implicit EXTERNAL attribute
gcc/fortran/
PR fortran/89773
* gfortran.h (gfc_oacc_routine_name): Add loc member.
(gfc_resolve_oacc_routines): Declare.
* openmp.c (gfc_match_oacc_routine): Move some error checking
into...
(gfc_resolve_oacc_routines): ... this new function.
* resolve.c (resolve_codes): Call it.
gcc/testsuite/
PR fortran/89773
* gfortran.dg/goacc/pr89773.f90: New file.
* gfortran.dg/goacc/pr77765.f90: Adjust.
* gfortran.dg/goacc/routine-6.f90: Adjust, and extend.
From-SVN: r269857
Thomas Schwinge [Thu, 21 Mar 2019 19:54:51 +0000 (20:54 +0100)]
[PR72741] The name in a Fortran OpenACC 'routine' directive refers to the containing subroutine or function
gcc/fortran/
PR fortran/72741
* openmp.c (gfc_match_oacc_routine): Clarify.
gcc/testsuite/
PR fortran/72741
* gfortran.dg/goacc/routine-module-mod-1.f90: Update.
From-SVN: r269856
Thomas Schwinge [Thu, 21 Mar 2019 19:44:45 +0000 (20:44 +0100)]
[PR72741] Encode OpenACC 'routine' directive's level of parallelism inside Fortran module files
If 'use'ing with an old GCC a new module file (with OpenACC 'routine'
directive's level of parallelism encoded), then that expectedly fails as
follows:
f951: Fatal Error: Reading module 'routine_module_mod_1' at line 27 column 21: find_enum(): Enum not found
If 'use'ing with a new GCC an old module file (without OpenACC 'routine'
directive's level of parallelism encoded), then that (silently) continues to
accept the module file, and will proceed with the previous, erroneous behavior.
These seem to be acceptable compromises, instead of incrementing 'MOD_VERSION'.
gcc/fortran/
PR fortran/72741
* module.c (verify_OACC_ROUTINE_LOP_NONE): New function.
(enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG,
AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR,
AB_OACC_ROUTINE_LOP_SEQ.
(attr_bits): Add these.
(mio_symbol_attribute): Handle these.
gcc/testsuite/
PR fortran/72741
* gfortran.dg/goacc/routine-module-1.f90: New file.
* gfortran.dg/goacc/routine-module-2.f90: Likewise.
* gfortran.dg/goacc/routine-module-mod-1.f90: Likewise.
From-SVN: r269855
Thomas Schwinge [Thu, 21 Mar 2019 19:44:34 +0000 (20:44 +0100)]
[testsuite, Fortran] Provide 'dg-compile-aux-modules' in 'gfortran.dg/goacc/goacc.exp'
..., as yet another copy from 'gfortran.dg/dg.exp', which there are a few
already.
gcc/testsuite/
* gfortran.dg/goacc/goacc.exp (dg-compile-aux-modules): New proc.
From-SVN: r269854
Thomas Schwinge [Thu, 21 Mar 2019 19:29:57 +0000 (20:29 +0100)]
[testsuite] Fix 'dg-compile-aux-modules' diagnostic
gcc/testsuite/
PR fortran/56408
* gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
(dg-compile-aux-modules): Fix diagnostic.
* gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise.
* gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise.
From-SVN: r269851
Thomas Schwinge [Thu, 21 Mar 2019 19:16:29 +0000 (20:16 +0100)]
[testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to 'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules'
See trunk r215293. This unifies all 'dg-compile-aux-modules' instances.
gcc/testsuite/
PR fortran/56408
* gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
missing nexted dg-test call support in dejaGNU 1.4.4.
From-SVN: r269848
Thomas Schwinge [Thu, 21 Mar 2019 18:54:50 +0000 (19:54 +0100)]
[testsuite, Fortran] Consistently set 'DEFAULT_FFLAGS'
In the same 'runtest' instance, 'global' variables persist from one '*.exp'
file to another.
All other '*.exp' files are using " -pedantic-errors" instead of the empty
string as the default for 'DEFAULT_FFLAGS'. Thus this setting of
'DEFAULT_FFLAGS' is not idempotent, depends on whether
'gfortran.dg/ieee/ieee.exp', or an other defining '*.exp' file is executed
first.
gcc/testsuite/
PR fortran/29383
* gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in
other '*.exp' files.
From-SVN: r269845
Ian Lance Taylor [Thu, 21 Mar 2019 16:22:56 +0000 (16:22 +0000)]
compiler: add a newline to function receiver type's debug dump
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168408
From-SVN: r269841
Richard Biener [Thu, 21 Mar 2019 14:27:32 +0000 (14:27 +0000)]
re PR middle-end/89779 (internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798)
2019-03-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/89779
* tree.c (tree_nop_conversion): Consolidate and fix defensive
checks with respect to released SSA names now having error_mark_node
type.
* fold-const.c (operand_equal_p): Likewise.
* gcc.dg/torture/pr89779.c: New testcase.
From-SVN: r269838
Jonathan Wakely [Thu, 21 Mar 2019 14:03:56 +0000 (14:03 +0000)]
In C++17 <math.h> should not put special functions in global namespace
IS 29124 8.2 [sf.mathh] says that <math.h> should add the names of the
special functions to the global namespace. However, C++17 Annex D
[depr.c.headers] excludes those functions explicitly, so they should not
be placed in the global namespace unconditionally for C++17.
Only add them to the global namespace when IS 29124 is explicitly
requested via the __STDCPP_WANT_MATH_SPEC_FUNCS__ macro.
* include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]
(assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre)
(assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1)
(comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f)
(comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l)
(cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j)
(cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf)
(cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1)
(ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3)
(ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef)
(hermitel, laguerre, laguerref, laguerrel, legendre, legendref)
(legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel)
(sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel)
(sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations
when the special functions IS is enabled, not for C++17.
* testsuite/26_numerics/headers/cmath/functions_global_c++17.cc:
Replace with ...
* testsuite/26_numerics/headers/cmath/functions_global.cc: New test,
without checks for special functions in C++17.
* testsuite/26_numerics/headers/cmath/special_functions_global.cc:
New test.
From-SVN: r269837
Jonathan Wakely [Thu, 21 Mar 2019 12:07:10 +0000 (12:07 +0000)]
PR libstdc++/88066 Use <> for includes not ""
These headers were missed in the previous commit for this bug.
There are also several "" includes in the profile mode headers, but
because they're deprecated I'm not fixing them.
* include/backward/hash_map: Use <> for includes not "".
* include/backward/hash_set: Likewise.
* include/backward/strstream: Likewise.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/riemann_zeta.tcc: Likewise.
From-SVN: r269835
Paolo Carlini [Thu, 21 Mar 2019 12:05:32 +0000 (12:05 +0000)]
re PR c++/78645 (ICE on invalid code (Segmentation fault, cxx_eval_call_expression))
2019-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/78645
* g++.dg/cpp0x/constexpr-ice20.C: New.
From-SVN: r269834
Paolo Carlini [Thu, 21 Mar 2019 01:03:30 +0000 (01:03 +0000)]
re PR c++/89571 (ICE in nothrow_spec_p, at cp/except.c:1238)
/cp
2019-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89571
* method.c (after_nsdmi_defaulted_late_checks): Avoid passing
error_mark_node to comp_except_specs.
/testsuite
2019-03-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89571
* g++.dg/cpp0x/noexcept37.C: New.
From-SVN: r269832
GCC Administrator [Thu, 21 Mar 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269831
Iain Buclaw [Wed, 20 Mar 2019 23:52:48 +0000 (23:52 +0000)]
d: Fix ICE force_type_die, at dwarf2out.c using nested types
In functions whose return type is instantiated from a nested template,
make sure that all members of the instance are emitted before finishing
the outer function, otherwise they will be removed during the
prune_unused_types pass.
gcc/d/ChangeLog:
2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/89017
* d-codegen.cc (d_decl_context): Skip over template instances when
finding the context.
* decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override.
(build_type_decl): Include parameters in name of template types.
gcc/testsuite/ChangeLog:
2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/89017
* gdc.dg/pr89017.d: New test.
From-SVN: r269828
Janus Weil [Wed, 20 Mar 2019 21:32:23 +0000 (22:32 +0100)]
re PR fortran/71861 ([F03] ICE in write_symbol(): bad module symbol)
fix PR 71861
2019-03-20 Janus Weil <janus@gcc.gnu.org>
PR fortran/71861
* symbol.c (check_conflict): ABSTRACT attribute conflicts with
INTRINSIC attribute.
2019-03-20 Janus Weil <janus@gcc.gnu.org>
PR fortran/71861
* gfortran.dg/interface_abstract_5.f90: New test case.
From-SVN: r269827
Jason Merrill [Wed, 20 Mar 2019 20:31:40 +0000 (16:31 -0400)]
PR c++/87480 - decltype of member access in default template arg
The issue here is that declval<T>().d is considered instantiation-dependent
within a template, as the access to 'd' might depend on the particular
specialization. But when we're deducing template arguments for a call, we
know that the call and the arguments are non-dependent, so we can do the
substitution as though we aren't in a template. Which strictly speaking we
aren't, since the default argument is considered a separate definition.
* pt.c (type_unification_real): Accept a dependent result in
template context.
From-SVN: r269826
Andreas Krebbel [Wed, 20 Mar 2019 15:28:38 +0000 (15:28 +0000)]
S/390: Fix PR89775. Stackpointer save/restore instructions removed
Even if a global register is being clobbered in a function we usually
do not save and restore it. However, we still have to do this if it is
a special register. Most of the places in the backend handle this
correctly but not the prologue/epilogue optimization.
gcc/ChangeLog:
2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
PR target/89775
* config/s390/s390.c (global_not_special_regno_p): Move to make it
available to ...
(s390_optimize_register_info): Use global_not_special_regno_p to
check for global regs.
2019-03-20 Jakub Jelinek <jakub@redhat.com>
PR target/89775
* gcc.target/s390/pr89775-1.c: New test.
* gcc.target/s390/pr89775-2.c: New test.
From-SVN: r269823
Jakub Jelinek [Wed, 20 Mar 2019 11:26:42 +0000 (12:26 +0100)]
re PR target/89752 (ICE in emit_move_insn, at expr.c:3723)
PR target/89752
* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
update this_alternative nor this_alternative_set.
* g++.target/aarch64/aarch64.exp: New file.
* g++.target/aarch64/pr89752.C: New test.
From-SVN: r269819
GCC Administrator [Wed, 20 Mar 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269817
Martin Sebor [Tue, 19 Mar 2019 22:43:10 +0000 (22:43 +0000)]
PR tree-optimization/89688 - -Wstringop-overflow confused by const 2D array of char
gcc/c/ChangeLog:
PR tree-optimization/89688
* c-decl.c (finish_decl): Call braced_lists_to_string for more
kinds of initializers.
gcc/c-family/ChangeLog:
PR tree-optimization/89688
* c-common.c (braced_list_to_string): Make static.
(braced_lists_to_strings): Define new function.
* c-common.h (braced_list_to_string): Remove.
(braced_lists_to_strings): Declare.
gcc/cp/ChangeLog:
PR tree-optimization/89688
* typeck2.c (store_init_value): Call braced_lists_to_string for more
kinds of initializers.
gcc/testsuite/ChangeLog:
PR tree-optimization/89688
* gcc.dg/strlenopt-61.c: New test.
* g++.dg/warn/Wstringop-overflow-2.C: New test.
From-SVN: r269814
Jim Wilson [Tue, 19 Mar 2019 22:33:34 +0000 (22:33 +0000)]
RISC-V: Fix %lo overflow with BLKmode references.
gcc/
PR target/89411
* config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
align, size, offset. Use them to handle a BLKmode reference. Update
comment.
(riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
gcc/testsuite/
PR target/89411
* gcc.target/riscv/losum-overflow.c: New test.
From-SVN: r269813
Jakub Jelinek [Tue, 19 Mar 2019 19:04:14 +0000 (20:04 +0100)]
re PR rtl-optimization/89768 (ICE in compare_and_jump_seq at loop-unroll.c:838)
PR rtl-optimization/89768
* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
instead of GEN_INT.
(unroll_loop_runtime_iterations): Likewise.
From-SVN: r269812
Ian Lance Taylor [Tue, 19 Mar 2019 18:42:43 +0000 (18:42 +0000)]
compiler,runtime: pass old slice's ptr/len/cap by value to growslice
In the C calling convention, on AMD64, and probably a number of
other architectures, a 3-word struct argument is passed on stack.
This is less efficient than passing in three registers. Further,
this may affect the code generation in other part of the program,
even if the function is not actually called.
Slices are common in Go and append is a common slice operation,
which calls growslice in the growing path. To improve the code
generation, pass the slice header's three fields as separate
values, instead of a struct, to growslice.
The drawback is that this makes the runtime implementation
slightly diverges from the gc runtime.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168277
From-SVN: r269811
Martin Sebor [Tue, 19 Mar 2019 18:35:42 +0000 (18:35 +0000)]
PR tree-optimization/89644 - false-positive -Warray-bounds on strncpy with unterminated array
gcc/ChangeLog:
* tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
rather than endptr as an indicator of nul-termination.
From-SVN: r269809
Martin Sebor [Tue, 19 Mar 2019 17:45:34 +0000 (17:45 +0000)]
PR tree-optimization/89644 - False-positive -Warray-bounds diagnostic on strncpy
gcc/ChangeLog:
PR tree-optimization/89644
* tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
arrays in determining sequence sizes in strncpy and stpncpy.
gcc/testsuite/ChangeLog:
PR tree-optimization/89644
* gcc.dg/Wstringop-truncation-8.c: New test.
From-SVN: r269807
Martin Liska [Tue, 19 Mar 2019 17:08:28 +0000 (18:08 +0100)]
Fix set of even probabilities (PR middle-end/89737).
2019-03-19 Martin Liska <mliska@suse.cz>
PR middle-end/89737
* predict.c (combine_predictions_for_bb): Empty likely_edges and
unlikely_edges if there's an edge that belongs to both these sets.
2019-03-19 Martin Liska <mliska@suse.cz>
PR middle-end/89737
* gcc.dg/pr89737.c: New test.
From-SVN: r269804
Segher Boessenkool [Tue, 19 Mar 2019 16:58:42 +0000 (17:58 +0100)]
rs6000: Unaligned stfiwx on older CPUs (PR89746)
The "classic" PowerPCs (6xx/7xx) are not STRICT_ALIGNMENT, but their
floating point units are. This is not normally a problem, the ABIs
make everything FP aligned. The RTL patterns converting FP to integer
however get a potentially unaligned destination, and we do not want to
do an stfiwx on that on such older CPUs.
This fixes it. It does not change anything for TARGET_MFCRF targets
(POWER4 and later). It also won't change anything for strict-alignment
targets, or CPUs without hardware FP of course, or CPUs that do not
implement stfiwx (older 4xx/5xx/8xx).
It does not change the corresponding fixuns* pattern, because that can
not be enabled on any CPU that cannot handle unaligned FP well.
PR target/89746
* config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
go via a stack temporary.
From-SVN: r269802
Jakub Jelinek [Tue, 19 Mar 2019 16:10:59 +0000 (17:10 +0100)]
re PR target/89378 ([MIPS] FAIL: gcc.dg/vect/pr88598-3.c -mmsa (internal compiler error))
PR target/89378
* config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
instead of gen_rtx_SUBREG.
* config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
From-SVN: r269801
Richard Biener [Tue, 19 Mar 2019 14:57:18 +0000 (14:57 +0000)]
re PR debug/88389 (-flto -g -gsplit-dwarf is broken)
2019-03-19 Richard Biener <rguenther@suse.de>
PR debug/88389
* opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
From-SVN: r269800
Jan Hubicka [Tue, 19 Mar 2019 14:53:43 +0000 (15:53 +0100)]
re PR lto/87089 (tree check: expected class 'type', have 'declaration' (namespace_decl) in type_with_linkage_p, at ipa-utils.h)
PR lto/87809
PR lto/89335
* tree.c (free_lang_data_in_decl): Do not free context of C++
destrutors.
* g++.dg/lto/pr87089_0.C: New testcase.
* g++.dg/lto/pr87089_1.C: New testcase.
* g++.dg/lto/pr89335_0.C: New testcase.
From-SVN: r269799
Ian Lance Taylor [Tue, 19 Mar 2019 14:00:59 +0000 (14:00 +0000)]
libgo: fix build on AIX
Since aix/ppc64 has been added to GC toolchain, a mix between new and
old files were created in gcc toolchain.
This commit corrects this merge for aix/ppc64 and aix/ppc.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167658
From-SVN: r269797
Kelvin Nilsen [Tue, 19 Mar 2019 13:44:03 +0000 (13:44 +0000)]
re PR target/89736 (New test pr87532-mc.c fails on compiler not defaulting to VSX)
gcc/testsuite/ChangeLog:
2019-03-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/89736
* gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to
restrict this test to vsx targets.
From-SVN: r269796
Jakub Jelinek [Tue, 19 Mar 2019 10:05:10 +0000 (11:05 +0100)]
re PR target/89506 (ICE: in decompose, at rtl.h:2266 with -Og -g)
PR target/89506
* config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
subs for the first alternative except when operands[3] is 1.
From-SVN: r269795
Jonathan Wakely [Tue, 19 Mar 2019 09:38:41 +0000 (09:38 +0000)]
Update libstdc++ API Evolution documentation
* doc/xml/manual/allocator.xml: Link to table documenting evolution
of extension allocators.
* doc/xml/manual/evolution.xml: Use angle brackets for header names.
Document new headers in 7.2, 8.1 and 9.1 releases.
* doc/xml/manual/using.xml: Adjust link target for new_allocator.
* doc/html/*: Regenerate.
From-SVN: r269794
Jakub Jelinek [Tue, 19 Mar 2019 08:11:25 +0000 (09:11 +0100)]
re PR target/89752 (ICE in emit_move_insn, at expr.c:3723)
PR target/89752
* gimplify.c (gimplify_asm_expr): For output argument with
TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
diagnose error.
* g++.dg/ext/asm15.C: Check for particular diagnostic wording.
* g++.dg/ext/asm16.C: Likewise.
* g++.dg/ext/asm17.C: New test.
From-SVN: r269793
Eric Botcazou [Tue, 19 Mar 2019 08:06:48 +0000 (08:06 +0000)]
re PR rtl-optimization/89753 (ICE in unroll_loop_constant_iterations, at loop-unroll.c:498)
PR rtl-optimization/89753
* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
explicit unrolling factor even more robust.
From-SVN: r269791
Jakub Jelinek [Tue, 19 Mar 2019 07:25:59 +0000 (08:25 +0100)]
re PR target/89726 (Incorrect inlined version of 'ceil' for 32bit)
PR target/89726
* config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
compensation use x2 += 1 instead of x2 -= -1 and when honoring
signed zeros, do another copysign after the compensation.
* gcc.target/i386/fpprec-1.c (x): Add 6 new constants.
(expect_round, expect_rint, expect_floor, expect_ceil, expect_trunc):
Add expected results for them.
From-SVN: r269790
Jakub Jelinek [Tue, 19 Mar 2019 06:55:31 +0000 (07:55 +0100)]
re PR c/89734 (const qualifier on return type not erased inside __typeof__)
PR c/89734
* c-decl.c (grokdeclarator): Call c_build_qualified_type on function
return type even if quals_used is 0. Formatting fixes.
* gcc.dg/pr89734.c: New test.
From-SVN: r269789
GCC Administrator [Tue, 19 Mar 2019 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269788