Alan Modra [Wed, 22 May 2019 04:34:26 +0000 (14:04 +0930)]
[RS6000] Don't pass -many to the assembler
I'd like to remove -many from the options passed by default to the
assembler, on the grounds that a gcc bug in instruction selection (eg.
emitting a power9 insn for -mcpu=power8) is better found at assembly
time than run time.
For now, just do this when --enable-checking or gcc is not a release.
This patch also emits .machine assembler directives for ELF targets
when functions are compiled for different cpus via attributes or
pragmas. That's necessary when the initial -m<cpu> option passed to
the assembler doesn't enable the superset of all opcodes emitted, as
seen by a failure of gcc.target/powerpc/clone2.c without .machine
when building gcc for power8.
rs6000_machine_from_flags deliberately uses ISA_2_4_MASKS rather than
ISA_2_2_MASKS for power5 because "friz" and other similar instructions
enabled by gcc with TARGET_FPRND are enabled in gas by "-mpower5".
(gas -mpower5 supports power5+ too.) rs6000-cpus.def puts
OPTION_MASK_FPRND in ISA_2_4_MASKS, so ISA_2_4_MASKS is the one to use
in deciding to pass "-mpower5" to gas.
O3-pr70130.c also failed on an earlier version of this patch (when
only testing one ISA bit to determine .machine). This is a test for a
power7 vector bug, but on power8 hw check_vect_support_and_set_flags
passes -mpower8-vector which means the test isn't exercising the
original bug exactly. I reckon that is wrong, and similary for other
vector testcases that ask for a specific cpu. I've fixed it here by
explicitly passing -mno-power8-vector and similar vector options.
* config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
(ASM_CPU_SPEC): Conditionally add -many.
* config/rs6000/rs6000.c (rs6000_machine): New static var.
(rs6000_machine_from_flags, emit_asm_machine): New functions..
(rs6000_file_start): ..extracted from here, and modified to
test all ISA bits.
(rs6000_output_function_prologue): Emit .machine as necessary.
* testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
power mnemonics.
* testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
added by check_vect_support_and_set_flags.
* testsuite/gcc.dg/vect/pr48765.c: Likewise.
* testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
From-SVN: r271500
Hans-Peter Nilsson [Wed, 22 May 2019 00:43:23 +0000 (00:43 +0000)]
re PR middle-end/90553 (Register allocation allocates post-incremented address-load of call to call-clobbered register)
PR middle-end/90553
* gcc.dg/torture/pr90553.c: New test.
From-SVN: r271499
Hans-Peter Nilsson [Wed, 22 May 2019 00:35:32 +0000 (00:35 +0000)]
re PR middle-end/90553 (Register allocation allocates post-incremented address-load of call to call-clobbered register)
PR middle-end/90553
* ira-lives.c (process_bb_node_lives): Consider defs
for a call insn to be die before the call, not after.
From-SVN: r271498
Hans-Peter Nilsson [Wed, 22 May 2019 00:30:42 +0000 (00:30 +0000)]
In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>...
In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>:
...a change introduced in r94104 where BITS_PER_WORD was chosenperhaps because we expect register-sized writes into this area.
See <https://gcc.gnu.org/ml/gcc-patches/2005-01/msg01564.html>
for the r94104 change.
* function.c (assign_parm_setup_block): Raise alignment of
stacked parameter only for STRICT_ALIGNMENT targets.
From-SVN: r271497
GCC Administrator [Wed, 22 May 2019 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271496
Paolo Carlini [Tue, 21 May 2019 23:11:26 +0000 (23:11 +0000)]
parser.c (cp_parser_template_declaration_after_parameters): Use DECL_SOURCE_LOCATION in literal operator template errors.
/cp
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
* parser.c (cp_parser_template_declaration_after_parameters): Use
DECL_SOURCE_LOCATION in literal operator template errors.
/testsuite
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/udlit-tmpl-arg-neg2.C: Check locations too.
* g++.dg/cpp0x/udlit-tmpl-parms-neg.C: Likewise.
From-SVN: r271492
Paolo Carlini [Tue, 21 May 2019 22:26:42 +0000 (22:26 +0000)]
re PR c++/67184 (Missed optimization with C++11 final specifier)
/cp
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67184
PR c++/69445
* call.c (build_over_call): Devirtualize when the final overrider
comes from the base.
/testsuite
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67184
PR c++/69445
* g++.dg/other/final3.C: New.
* g++.dg/other/final4.C: Likewise.
* g++.dg/other/final5.C: Likewise.
From-SVN: r271491
Paolo Carlini [Tue, 21 May 2019 22:26:10 +0000 (22:26 +0000)]
re PR c++/67184 (Missed optimization with C++11 final specifier)
/cp
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67184
PR c++/69445
* call.c (build_over_call): Devirtualize when the final overrider
comes from the base.
/testsuite
2019-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67184
PR c++/69445
* g++.dg/other/final3.C: New.
* g++.dg/other/final4.C: Likewise.
* g++.dg/other/final5.C: Likewise.
From-SVN: r271490
Thomas Rodgers [Tue, 21 May 2019 22:15:00 +0000 (22:15 +0000)]
LWG 3062 - Unnecessary decay_t in is_execution_policy_v
* include/pstl/execution_defs.h (__enable_if_execution_policy):
Use std::__remove_cvref_t when building with GCC.
From-SVN: r271489
Segher Boessenkool [Tue, 21 May 2019 22:08:20 +0000 (00:08 +0200)]
rs6000: wz -> d+p7
* config/rs6000/constraints.md (define_register_constraint "wz"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wz.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271488
Segher Boessenkool [Tue, 21 May 2019 22:07:19 +0000 (00:07 +0200)]
rs6000: wl -> d+p6
* config/rs6000/constraints.md (define_register_constraint "wl"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wl.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271487
Segher Boessenkool [Tue, 21 May 2019 22:06:25 +0000 (00:06 +0200)]
rs6000: wm -> wa+p8v
* config/rs6000/constraints.md (define_register_constraint "wm"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wm.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271486
Segher Boessenkool [Tue, 21 May 2019 22:05:25 +0000 (00:05 +0200)]
rs6000: wk -> ws+p8v
* config/rs6000/constraints.md (define_register_constraint "wk"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wk.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271485
Segher Boessenkool [Tue, 21 May 2019 22:04:41 +0000 (00:04 +0200)]
rs6000: wj -> wi+p8v
Also deletes VS_64dm, it's unused.
* config/rs6000/constraints.md (define_register_constraint "wj"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wj.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
(VS_64dm): Delete.
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271484
Segher Boessenkool [Tue, 21 May 2019 22:03:37 +0000 (00:03 +0200)]
rs6000: wh -> d+p8v
This replaces the "wh" constraint by "d", with isa "p8v".
* config/rs6000/constraints.md (define_register_constraint "wh"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wh.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271483
Marek Polacek [Tue, 21 May 2019 21:25:23 +0000 (21:25 +0000)]
DR 1940 - static_assert in anonymous unions.
* g++.dg/DRs/dr1940.C: New test.
From-SVN: r271482
Uros Bizjak [Tue, 21 May 2019 17:57:11 +0000 (19:57 +0200)]
re PR target/90547 (ICE in gen_lowpart_general, at rtlhooks.c:63)
PR target/90547
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
Avoid calling gen_lowpart with CONST operand.
testsuite/ChangeLog:
PR target/90547
* gcc.target/i386/pr90547.c: New test.
From-SVN: r271479
Alexandre Oliva [Tue, 21 May 2019 17:09:13 +0000 (17:09 +0000)]
preserve more debug stmts in gimple jump threading
Gimple jump threading does not duplicate forwarder blocks that might
be present before or after the second copied block. This silently
drops debug binds and markers that might be present in them. This
patch attempts to preserve them.
For blocks after either copied block, we attempt to append debug stmts
to the copied block, if it does not end with a block-ending stmt.
Failing that, for blocks between both copied blocks, we prepend its
debug stmts to the copy of the second block.
If everything fails, we still drop debug stmts on the floor, though
preexisting code consolidates debug binds in the block that threading
flows into, so only markers are really lost. We can't do much better
than that without conditional binds and markers, or debug stmts in
edges, or somesuch.
If we append debug stmts to a reusable template block, we copy it
after splitting out the debug stmts, and before putting them back.
for gcc/ChangeLog
* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
field template_last_to_copy.
(ssa_create_duplicates): Set it, and use it. Attempt to
preserve more debug stmts.
From-SVN: r271477
Rainer Orth [Tue, 21 May 2019 16:59:39 +0000 (16:59 +0000)]
Fix dg-require-* syntax
* gcc.dg/Wattribute-alias.c: Pass emtpy arg to dg-require-ifunc.
* gcc.c-torture/execute/
20030125-1.c: Pass emtpy arg to dg-require-weak.
* gcc.dg/torture/ftrapv-2.c: Pass empty arg to dg-require-fork.
* gcc.target/i386/pr84723-1.c: Remove dg-require-ifunc.
* gcc.target/i386/pr84723-2.c: Likewise.
* gcc.target/i386/pr84723-3.c: Likewise.
* gcc.target/i386/pr84723-4.c: Likewise.
* gcc.target/i386/pr84723-5.c: Likewise.
From-SVN: r271476
Iain Sandoe [Tue, 21 May 2019 16:33:48 +0000 (16:33 +0000)]
darwin, testsuite - fix PR 67958
These tests require specific scan-asms in some cases because
of the different codegen for Dawin. Added some explanations
too.
2019-05-21 Iain Sandoe <iain@sandoe.co.uk>
PR testsuite/67958
* gcc.target/i386/pr32219-1.c: Adjust scan-asms for Darwin, comment
the differences.
* gcc.target/i386/pr32219-2.c: Likewise.
* gcc.target/i386/pr32219-3.c: Likewise.
* gcc.target/i386/pr32219-4.c: Likewise.
* gcc.target/i386/pr32219-5.c: Likewise.
* gcc.target/i386/pr32219-6.c: Likewise.
* gcc.target/i386/pr32219-7.c: Likewise.
* gcc.target/i386/pr32219-8.c: Likewise.
From-SVN: r271475
Iain Sandoe [Tue, 21 May 2019 16:24:25 +0000 (16:24 +0000)]
darwin, testsuite - fix PR 63891.
This is a testcase failing because one part of the codegen is
(correctly) generating the scan-asm-not signature.
Fixed by altering the build options.
gcc/testsuite/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
PR target/63891
* gcc.dg/darwin-weakimport-3.c: Adjust options and explain
the reasons.
From-SVN: r271474
Uros Bizjak [Tue, 21 May 2019 16:00:37 +0000 (18:00 +0200)]
sse.md (VF1_AVX2): New mode iterator.
* config/i386/sse.md (VF1_AVX2): New mode iterator.
(signbit<mode>2): New expander
testsuite/ChangeLog:
* gcc.target/i386/vect-signbitf.c: New test.
From-SVN: r271473
James Clarke [Tue, 21 May 2019 15:42:00 +0000 (15:42 +0000)]
re PR bootstrap/87338 (gcc 8.2 fails to bootstrap on ia64)
PR bootstrap/87338
* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
From-SVN: r271472
Nathan Sidwell [Tue, 21 May 2019 15:31:28 +0000 (15:31 +0000)]
[C++ PATCH] Using decls
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01411.html
* name-lookup.c (do_nonmember_using_decl): Drop INSERT_P
parameter. Document.
(finish_nonmember_using_decl): Adjust do_nonmember_using_decl
calls. Remove stray FIXME comment.
From-SVN: r271471
Uros Bizjak [Tue, 21 May 2019 15:17:57 +0000 (17:17 +0200)]
cpuid.h (__cpuid): For 32bit targets...
* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
%ebx and %ecx bafore calling cpuid with leaf 1 or
non-constant leaf argument.
From-SVN: r271469
Janne Blomqvist [Tue, 21 May 2019 15:17:44 +0000 (18:17 +0300)]
libfortran/90038: Document new wait=.false. implementation
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/90038
* intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new
wait=.false. implementation.
From-SVN: r271468
Nathan Sidwell [Tue, 21 May 2019 14:33:24 +0000 (14:33 +0000)]
[C++ PATCH] Using decls
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01396.html
gcc/cp/
* name-lookup.h (struct cp_binding_level): Drop usings field.
(finish_namespace_using_decl, finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this.
* name-lookup.c (push_using_decl_1, push_using_decl):
(do_nonmember_using_decl): ... here. Add INSERT_P arg. Reimplement.
(validate_nonmember_using_decl, finish_namespace_using_decl)
(finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this. Drop DECL parm.
* parser.c (cp_parser_using_declaration): Don't do lookup here.
* pt.c (tsubst_expr): Do not do using decl lookup here.
gcc/testsuite/
* g++.dg/lookup/using53.C: Adjust diagnostic.
libcc1/
* libcp1plugin.cc (plugin_add_using_decl): Use
finish_nonmember_using_decl.
From-SVN: r271467
Jonathan Wakely [Tue, 21 May 2019 13:50:41 +0000 (14:50 +0100)]
PR libstdc++/90252 fix effective-target check for TBB
PR libstdc++/90252
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Use "additional_flags" to pass -ltbb to v3_target_compile command.
Use check_v3_target_prop_cached to cache the result of the test.
From-SVN: r271466
Jonathan Wakely [Tue, 21 May 2019 13:50:35 +0000 (14:50 +0100)]
Fix names of _Lock_policy constants in libstdc++ manual
* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
From-SVN: r271465
Alan Modra [Tue, 21 May 2019 13:36:04 +0000 (23:06 +0930)]
PR90545, gcc.target/powerpc/fold-vec-splats-floatdouble.c fails
I figure a tweak to register_move_cost is better than sprinkling ?s
in instruction operand alternatives.
PR target/90545
* config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
power9 direct move cost.
* testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
Correct comments and rename functions to suit parameters.
From-SVN: r271464
Richard Biener [Tue, 21 May 2019 12:01:00 +0000 (12:01 +0000)]
re PR tree-optimization/90510 (Unnecessary permutation)
2019-05-21 Richard Biener <rguenther@suse.de>
PR middle-end/90510
* fold-const.c (fold_read_from_vector): New function.
* fold-const.h (fold_read_from_vector): Declare.
* match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
single-element insert permutations. Canonicalize selector
further and fix issue with last commit.
* gcc.target/i386/pr90510.c: New testcase.
From-SVN: r271463
Martin Liska [Tue, 21 May 2019 11:07:00 +0000 (13:07 +0200)]
Add missing "" for dg-require-ifunc.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.target/i386/pr90500-1.c: Add missing '""'.
* gcc.target/i386/pr90500-2.c: Likewise.
From-SVN: r271462
Vladislav Ivanishin [Tue, 21 May 2019 10:45:32 +0000 (10:45 +0000)]
Don't split non-critical edges in crited
gcc/ChangeLog:
* tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
parameter with default value false to declaration.
(split_edges_for_insertion): New inline function. Wrapper for
split_critical_edges with for_edge_insertion_p = true.
* tree-cfg.c (split_critical_edges): Don't split non-critical
edges if for_edge_insertion_p is false. Fix whitespace.
* tree-ssa-pre.c (pass_pre::execute): Call
split_edges_for_insertion instead of split_critical_edges.
* gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
* gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
(pass_data_sink_code): Update function name in the comment.
From-SVN: r271461
Vladislav Ivanishin [Tue, 21 May 2019 10:39:05 +0000 (10:39 +0000)]
tree-ssa-uninit: suppress more spurious warnings
* tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
around is_value_included_in that knows how to handle BIT_AND_EXPR.
(is_pred_expr_subset_of): Use the new function. Handle more cases where
code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
positives.
testsuite/
* gcc.dg/uninit-28-gimple.c: New test.
* gcc.dg/uninit-29-gimple.c: New test.
* gcc.dg/uninit-30-gimple.c: New test.
* gcc.dg/uninit-31-gimple.c: New test.
From-SVN: r271460
Janne Blomqvist [Tue, 21 May 2019 08:37:05 +0000 (11:37 +0300)]
contrib/mklog: Open files in text mode
Due to the python 3 conversion, files should be opened in text mode,
matching stdin/stdout.
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
* mklog: Open files in text mode.
From-SVN: r271459
Martin Liska [Tue, 21 May 2019 07:33:41 +0000 (09:33 +0200)]
Enable -O2 for pr90263.c test.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.dg/pr90263.c: Add -O2.
From-SVN: r271458
Eric Botcazou [Tue, 21 May 2019 07:00:45 +0000 (07:00 +0000)]
c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
c-family/
* c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
* c-ada-spec.c (print_assignment_operator): New function.
(dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
assignment operators declared as methods and filter out the others.
cp/
* decl2.c (cpp_check) <IS_ASSIGNMENT_OPERATOR>: New case.
From-SVN: r271457
Janne Blomqvist [Tue, 21 May 2019 06:59:16 +0000 (09:59 +0300)]
Convert contrib/mklog script to Python 3
Upstream will drop support for Python 2.x on January 1, 2020. This
patch converts the contrib/mklog script to Python 3. The process for
the conversion was as follows.
- Use the futurize tool (https://python-future.org ) to apply the
print_with_import, except, and dict transformations.
- Remove the "from __future__ import print_function".
- Change the shebang line to search for python3 in the environment.
- Modify the run() function to return a str instead of bytes.
- Update the copyright year.
contrib/ChangeLog:
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
* mklog: Convert to Python 3.
From-SVN: r271456
Martin Liska [Tue, 21 May 2019 06:55:56 +0000 (08:55 +0200)]
fix diagnostic quoting/spelling in rs6000
2019-05-21 Martin Liska <mliska@suse.cz>
* config/rs6000/driver-rs6000.c (elf_platform): Do not use
an extra newline.
* config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
(altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
vec_lvsr.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Quote a C type.
(rs6000_function_arg): Likewise.
(rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
(rs6000_expand_ternop_builtin): Use interval syntax.
(get_element_number): Likewise.
(altivec_expand_builtin): Likewise.
(rs6000_get_function_versions_dispatcher): Quote target_clones.
Fix test-suite.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.target/powerpc/ppc64-abi-warn-1.c: Wrap a type.
* gcc.target/powerpc/pr80315-1.c: Use new interval format.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.
* gcc.target/powerpc/warn-lvsl-lvsr.c: Wrap builtin names.
From-SVN: r271455
Martin Liska [Tue, 21 May 2019 06:55:07 +0000 (08:55 +0200)]
Move a test-case (PR testsuite/90551).
2019-05-21 Martin Liska <mliska@suse.cz>
PR testsuite/90551
* pr90263.c: Move from gcc.c-torture/compile
into gcc.dg.
From-SVN: r271454
Thomas Rodgers [Tue, 21 May 2019 04:37:45 +0000 (04:37 +0000)]
tbb-backend effective target should check ability to link TBB
PR libstdc++/90252
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Changed v3_target_compile check from preprocess to executable.
Added "-ltbb" to v3_target_compile flags.
From-SVN: r271451
Thomas Rodgers [Tue, 21 May 2019 01:06:32 +0000 (01:06 +0000)]
Check TBB version in tbb-backed effective target check
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Add check for Thread Building Blocks 2018 or later.
From-SVN: r271450
GCC Administrator [Tue, 21 May 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271449
Uros Bizjak [Mon, 20 May 2019 22:24:38 +0000 (00:24 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.
Remove -flax-vector-conversions.
(dg-additional-options): Remove.
(test): Change to void. Declare m0 and m1 as __m64 and
cast initializer in a proper way. Do not return result.
(dg-final): Scan for 2 instances of movq.
From-SVN: r271445
Joseph Myers [Mon, 20 May 2019 22:22:36 +0000 (23:22 +0100)]
* es.po, sv.po: Update.
From-SVN: r271443
Uros Bizjak [Mon, 20 May 2019 22:01:32 +0000 (00:01 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.
From-SVN: r271442
Mark Eggleston [Mon, 20 May 2019 21:49:33 +0000 (15:49 -0600)]
gfortran.texi: Remove reference to the ASSIGN statement...
* gfortran.texi: Remove reference to the ASSIGN statement, capitalise
complex, state that padding is with spaces and modify the Hollerith
constant examples.
From-SVN: r271441
Jakub Jelinek [Mon, 20 May 2019 21:33:46 +0000 (23:33 +0200)]
re PR c++/59813 (tail-call elimination didn't fire for left-shift of char to cout)
PR c++/59813
PR target/90418
* function.h (struct function): Add calls_eh_return member.
* gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
gimplifying __builtin_eh_return call.
* tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
to cfun.
(expand_call_inline): Or in src_cfun->calls_eh_return into
dst_cfun->calls_eh_return.
* tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
cfun->calls_eh_return.
* lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
* lto-streamer-out.c (output_struct_function_base): Write
calls_eh_return.
From-SVN: r271440
Jakub Jelinek [Mon, 20 May 2019 21:29:17 +0000 (23:29 +0200)]
re PR libgomp/90527 (alloc.c:72:7: error: implicit declaration of function ‘posix_memalign’)
PR libgomp/90527
* alloc.c (_GNU_SOURCE): Define.
From-SVN: r271438
Jonathan Wakely [Mon, 20 May 2019 20:21:15 +0000 (21:21 +0100)]
Fix test failure due to Networking TS headers using mutexes
Only include the Networking headers for targets with Gthreads, so that
the uses of std::mutex and std::condition_variable don't cause errors.
* testsuite/experimental/names.cc: Only include Networking TS headers
on targets with the necessary Gthreads support.
From-SVN: r271437
Marek Polacek [Mon, 20 May 2019 19:10:57 +0000 (19:10 +0000)]
CWG 2094 - volatile scalars are trivially copyable.
PR c++/85679
* tree.c (trivially_copyable_p): Don't check CP_TYPE_VOLATILE_P for
scalar types.
* g++.dg/ext/is_trivially_constructible1.C: Change the expected result
for volatile int.
* g++.dg/ext/is_trivially_copyable.C: New test.
* testsuite/20_util/is_trivially_copyable/value.cc: Change the expected
result for volatile int.
From-SVN: r271435
Marek Polacek [Mon, 20 May 2019 19:04:52 +0000 (19:04 +0000)]
name-lookup.c (finish_using_directive): Don't issue inform() if the warning didn't trigger.
* name-lookup.c (finish_using_directive): Don't issue inform() if the
warning didn't trigger. Add quoting. Tweak the inform message.
* g++.dg/lookup/strong-using2.C: New test.
From-SVN: r271432
Marek Polacek [Mon, 20 May 2019 18:59:05 +0000 (18:59 +0000)]
pt.c (convert_template_argument): Add a diagnostic for the [temp.arg]/2 ambiguity case.
* pt.c (convert_template_argument): Add a diagnostic for the
[temp.arg]/2 ambiguity case.
* g++.dg/cpp2a/nontype-class17.C: New test.
From-SVN: r271431
Marek Polacek [Mon, 20 May 2019 18:23:06 +0000 (18:23 +0000)]
* g++.dg/ext/utf8-2.C: Accept both "char" and "char8_t" in aka.
From-SVN: r271430
Jeff Law [Mon, 20 May 2019 18:17:33 +0000 (12:17 -0600)]
Wtype-limits-Wextra.c: Adjust expected output after recent diagnostic cleanups.
* gcc.dg/Wtype-limits-Wextra.c: Adjust expected output after
recent diagnostic cleanups.
From-SVN: r271429
Paolo Carlini [Mon, 20 May 2019 18:00:46 +0000 (18:00 +0000)]
cp-tree.h: Remove remnants of CONV_NONCONVERTING.
2019-05-20 Paolo Carlini <paolo.carlini@oracle.com>
* cp-tree.h: Remove remnants of CONV_NONCONVERTING.
From-SVN: r271428
Vladislav Ivanishin [Mon, 20 May 2019 15:33:12 +0000 (15:33 +0000)]
Add myself to MAINTAINERS
2019-05-20 Vladislav Ivanishin <vlad@ispras.ru>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r271425
Christophe Lyon [Mon, 20 May 2019 15:01:46 +0000 (15:01 +0000)]
[testsuite] PR90106 Fix cdce3.c testcase
2019-05-20 Christophe Lyon <christophe.lyon@linaro.org>
PR tree-optimization/90106
* gcc.dg/cdce3.c: Add hard_float effective target.
From-SVN: r271424
Marc Glisse [Mon, 20 May 2019 14:58:53 +0000 (16:58 +0200)]
Tweak gcc.dg/torture/pta-ptrarith-3.c
2019-05-20 Marc Glisse <marc.glisse@inria.fr>
* gcc.dg/torture/pta-ptrarith-3.c: Relax the matched pattern.
From-SVN: r271423
Marc Glisse [Mon, 20 May 2019 14:53:29 +0000 (16:53 +0200)]
[i386] Fold __builtin_ia32_shufpd to VEC_PERM_EXPR
2019-05-20 Marc Glisse <marc.glisse@inria.fr>
PR rtl-optimization/43147
* config/i386/i386.c (ix86_gimple_fold_builtin): Handle
IX86_BUILTIN_SHUFPD.
From-SVN: r271422
Jonathan Wakely [Mon, 20 May 2019 14:38:21 +0000 (15:38 +0100)]
Fix failing tests for use of non-reserved names
Defining 'ptr' fails on Solaris because it's used in <netdb.h>.
Including the Filesystem TS header fails if the TS support wasn't
enabled by configure.
* testsuite/17_intro/names.cc: Do not check 'ptr' on Solaris.
* testsuite/experimental/names.cc: Include <experimental/filesystem>
conditionally.
From-SVN: r271421
Nathan Sidwell [Mon, 20 May 2019 13:49:53 +0000 (13:49 +0000)]
[C++ PATCH] Commonixe using directive finishing
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01251.html
gcc/cp/
* name-lookup.c (finish_namespace_using_directive)
(finish_local_using_directive): Merge to ...
(finish_using_directive): ... here. Handle both contexts.
* name-lookup.h (finish_namespace_using_directive)
(finish_local_using_directive): Replace with ...
(finish_using_directive): ... this.
* parser.c (cp_parser_using_directive): Adjust.
* pt.c (tsubst_expr): Likewise.
libcc1/
* libcp1plugin.cc (plugin_add_using_namespace): Call renamed
finish_using_directive.
From-SVN: r271420
Jan Hubicka [Mon, 20 May 2019 13:37:11 +0000 (15:37 +0200)]
tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
* tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
(refs_may_alias_p_1): ... here; update stats.
(refs_may_alias_p): Do not update stats here.
From-SVN: r271419
Nathan Sidwell [Mon, 20 May 2019 12:46:54 +0000 (12:46 +0000)]
[C++ PATCH] namespace using directives
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01245.html
* cp-tree.h (struct lang_decl_ns): Remove usings field.
(DECL_NAMESPACE_USING): Delete.
* name-lookup.c (name_lookup::search_usings): Use namespace's
binding scope.
(name_lookup::queue_namespae): Likewise.
(finish_namespace_using_directive, push_namespace): Likewise.
(has_using_namespace_std_directive): Just search the entire
binding stack.
From-SVN: r271416
Iain Sandoe [Mon, 20 May 2019 12:28:18 +0000 (12:28 +0000)]
darwin, testsuite - fix PR58321
Darwin doesn't emit a .file directive by default
and one of the scan-asm hits for ELF targets comes from
this directive. Adjust for Darwin and explain.
2019-05-20 Iain Sandoe <iain@sandoe.co.uk>
PR testsuite/58321
* gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and
add a comment as to the reason for the difference.
* gcc.target/i386/memset-strategy-1.c: Likewise.
From-SVN: r271415
Richard Biener [Mon, 20 May 2019 12:02:35 +0000 (12:02 +0000)]
tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR doesn't produce pointers.
2019-05-20 Richard Biener <rguenther@suse.de>
* tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
doesn't produce pointers.
{TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
the first operand points to.
From-SVN: r271414
Jan Hubicka [Mon, 20 May 2019 12:01:40 +0000 (14:01 +0200)]
tree-ssa-alias.c (compare_sizes): New function.
* tree-ssa-alias.c (compare_sizes): New function.
(sompare_type_sizes): New function
(aliasing_component_refs_p): Use it.
(indirect_ref_may_alias_decl_p): Likewise.
From-SVN: r271413
Jonathan Wakely [Mon, 20 May 2019 11:32:51 +0000 (12:32 +0100)]
PR c++/90532 Ensure __is_constructible(T[]) is false
An array of an unknown bound is an incomplete type, so no object of such
a type can be constructed. This means __is_constructible should always
be false for an array of unknown bound.
This patch also changes the std::is_default_constructible trait to use
std::is_constructible, which now gives the right answer for arrays of
unknown bound.
gcc/cp:
PR c++/90532 Ensure __is_constructible(T[]) is false
* method.c (is_xible_helper): Return error_mark_node for construction
of an array of unknown bound.
gcc/testsuite:
PR c++/90532 Ensure __is_constructible(T[]) is false
* g++.dg/ext/90532.C: New test.
libstdc++-v3:
PR c++/90532 Ensure __is_constructible(T[]) is false
* include/std/type_traits (__do_is_default_constructible_impl)
(__is_default_constructible_atom, __is_default_constructible_safe):
Remove.
(is_default_constructible): Use is_constructible.
* testsuite/20_util/is_constructible/value.cc: Check int[] case.
* testsuite/20_util/is_default_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_default_constructible/value.cc:
Likewise.
From-SVN: r271412
Rainer Orth [Mon, 20 May 2019 11:26:43 +0000 (11:26 +0000)]
Reject -mx32 on Solaris/x86
* config/i386/sol2.h (CC1_SPEC): Reject -mx32.
From-SVN: r271411
Rainer Orth [Mon, 20 May 2019 11:22:40 +0000 (11:22 +0000)]
Fix %e in Solaris specs
* config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
(LIBLSAN_EARLY_SPEC): Likewise.
* config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
From-SVN: r271410
Pádraig Brady [Mon, 20 May 2019 11:15:03 +0000 (11:15 +0000)]
std::allocator::deallocate support sized-deallocation
Pass the size to the allocator so that it may optimize deallocation.
This was seen to significantly reduce the work required in jemalloc,
with about 40% reduction in CPU cycles in the free path.
Note jemalloc >= 5.2 is required to fix a crash with 0 sizes.
2019-05-20 Pádraig Brady <pbrady@fb.com>
* libstdc++-v3/include/ext/new_allocator.h (deallocate): Pass the size
to the deallocator with -fsized-deallocation.
From-SVN: r271409
Jonathan Wakely [Mon, 20 May 2019 11:14:56 +0000 (12:14 +0100)]
Fix test bug with mismatched alignment in allocate/deallocate
* testsuite/experimental/memory_resource/new_delete_resource.cc: Fix
test by passing correct alignment to deallocate function.
From-SVN: r271408
Martin Liska [Mon, 20 May 2019 10:48:46 +0000 (12:48 +0200)]
Add missing ATTRIBUTE_UNUSED for ix86_libc_has_fast_function.
2019-05-20 Martin Liska <mliska@suse.cz>
* config/i386/i386.c (ix86_libc_has_fast_function):
Add ATTRIBUTE_UNUSED for the argument.
From-SVN: r271406
Richard Biener [Mon, 20 May 2019 10:33:54 +0000 (10:33 +0000)]
gimple-match-head.c: Include vec-perm-indices.h.
2019-05-20 Richard Biener <rguenther@suse.de>
* gimple-match-head.c: Include vec-perm-indices.h.
* generic-match-head.c: Likewise.
* fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
is included.
* fold-const.c (fold_vec_perm): Export.
(fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
(match.pd): ...here.
From-SVN: r271404
Jakub Jelinek [Mon, 20 May 2019 09:49:07 +0000 (11:49 +0200)]
cfgloop.h (struct loop): Add simdlen member.
* cfgloop.h (struct loop): Add simdlen member.
* cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
* omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
* tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
as new argument to autovectorize_vector_sizes target hook. If
loop->simdlen, pick up vector size where the vectorization factor
is equal to loop->simd, and if there is none, fall back to the first
successful one.
(vect_transform_loop): Adjust autovectorize_vector_sizes target hook
caller.
* omp-low.c (omp_clause_aligned_alignment): Likewise.
* omp-general.c (omp_max_vf): Likewise.
* optabs-query.c (can_vec_mask_load_store_p): Likewise.
* tree-vect-slp.c (vect_slp_bb): Likewise.
* target.def (autovectorize_vector_sizes): Add ALL argument and
document it.
* doc/tm.texi: Adjust documentation.
* targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
* targhooks.h (default_autovectorize_vector_sizes): Likewise.
* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
bool argument.
* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
preferred vector size is not 512-bit or 256-bit, just put those
unpreferred ones last.
* gcc.target/i386/avx512f-simd-1.c: New test.
From-SVN: r271403
Christophe Lyon [Mon, 20 May 2019 09:12:03 +0000 (09:12 +0000)]
[testsuite] aarch64,arm Add missing quotes to expected error message
2019-05-20 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/target_attr_10.c: Add quotes to expected
error message.
* gcc.target/arm/attr-neon-builtin-fail.c: Likewise.
From-SVN: r271402
Martin Liska [Mon, 20 May 2019 09:11:04 +0000 (11:11 +0200)]
Add missing default default_libc_has_fast_function implementation.
2019-05-20 Martin Liska <mliska@suse.cz>
* targhooks.c (default_libc_has_fast_function): New function.
* targhooks.h (default_libc_has_fast_function): Likewise.
From-SVN: r271401
Martin Liska [Mon, 20 May 2019 07:55:00 +0000 (09:55 +0200)]
Come up with hook libc_has_fast_function (PR middle-end/90263).
2019-05-20 Martin Liska <mliska@suse.cz>
PR middle-end/90263
* builtins.c (expand_builtin_memory_copy_args): When having a
target with fast mempcpy implementation do now use memcpy.
* config/i386/i386.c (ix86_libc_has_fast_function): New.
(TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
* doc/tm.texi: Likewise.
* doc/tm.texi.in: Likewise.
* target.def:
* expr.c (emit_block_move_hints): Add 2 new arguments.
* expr.h (emit_block_move_hints): Bail out when libcall
to memcpy would be used.
2019-05-20 Martin Liska <mliska@suse.cz>
PR middle-end/90263
* gcc.c-torture/compile/pr90263.c: New test.
* lib/target-supports.exp: Add check_effective_target_glibc.
From-SVN: r271400
Martin Liska [Mon, 20 May 2019 07:53:42 +0000 (09:53 +0200)]
Add vertical spacing in order to separate functions.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.c: Add vertical spacing in order
to separate functions.
* profile-count.h: Likewise.
From-SVN: r271399
Martin Liska [Mon, 20 May 2019 07:53:31 +0000 (09:53 +0200)]
Do not use full qualified names if possible.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.h: Do not use full qualified
names if possible.
* profile-count.c (profile_count::to_frequency): Likewise.
From-SVN: r271398
Martin Liska [Mon, 20 May 2019 07:53:18 +0000 (09:53 +0200)]
Use capital letters for enum value names.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.h (enum profile_quality): Use capital letters
for enum value names. Use the adjusted names.
* profile-count.c: Use the adjusted names.
From-SVN: r271397
Richard Biener [Mon, 20 May 2019 07:18:10 +0000 (07:18 +0000)]
re PR middle-end/90518 (ICE: in emit_move_insn, at expr.c:3745 in gcc.dg/gimplefe-40.c)
2019-05-20 Richard Biener <rguenther@suse.de>
PR testsuite/90518
* gcc.dg/gimplefe-40.c: Restrict to targets with appropriate
vector support.
* gcc.dg/gimplefe-41.c: Likewise.
From-SVN: r271396
Andrew Pinski [Mon, 20 May 2019 06:59:06 +0000 (06:59 +0000)]
[PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator
libcpp/ChangeLog:
2019-05-19 Andrew Pinski <apinski@marvell.com>
PR pch/81721
* lex.c (cpp_token_val_index <case SPELL_OPERATOR>): If tok->flags
has NAMED_OP set, then return CPP_TOKEN_FLD_NODE.
gcc/testsuite/ChangeLog:
2019-05-19 Andrew Pinski <apinski@marvell.com>
PR pch/81721
* g++.dg/pch/operator-1.C: New testcase.
* g++.dg/pch/operator-1.Hs: New file.
From-SVN: r271395
GCC Administrator [Mon, 20 May 2019 00:16:46 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271394
Segher Boessenkool [Mon, 20 May 2019 00:14:36 +0000 (02:14 +0200)]
rs6000: Delete the "wH" and "wI" constraints
This replaces "wH" by "v", "wI" by "d", and when both are allowed it
uses "wa"; all with isa "p8v".
* config/rs6000/constraints.md (define_register_constraint "wH"):
Delete.
(define_register_constraint "wI"): Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
resp. "d", or with "wa" as appropriate, all with "p8v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271390
Segher Boessenkool [Mon, 20 May 2019 00:13:41 +0000 (02:13 +0200)]
rs6000: Delete the "wy" constraint
This replaces the "wy" constraint by "wa", with isa "p8v". It also
creates a new attribute <Fisa>, used together with all <Fv2>.
* config/rs6000/constraints.md (define_register_constraint "wy"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wy.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
(define_mode_attr Fisa): New.
* config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271389
Segher Boessenkool [Mon, 20 May 2019 00:12:43 +0000 (02:12 +0200)]
rs6000: Delete the "wu" constraint
This replaces the "wu" constraint by "v", with isa "p8v". Or, in most
cases, use "wa", since the instructions allow all VSX registers, and it
does not change how GCC behaves, so it is clearer that way.
This also delete the unused <Fa>.
* config/rs6000/constraints.md (define_register_constraint "wu"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wu.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
both with "p8v".
(define_mode_attr Fa): Delete.
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271388
Segher Boessenkool [Mon, 20 May 2019 00:11:34 +0000 (02:11 +0200)]
rs6000: Delete "wJ" and "wK" constraints
This replaces "wJ" by "wI", and "wK by "wH", both with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wJ"):
Delete.
(define_register_constraint "wK"): Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
Replace "wK" constraint by "wH" with "p9v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271387
Segher Boessenkool [Mon, 20 May 2019 00:10:31 +0000 (02:10 +0200)]
rs6000: Delete the "wb" constraint
This replaces the "wb" constraint by "v", with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wb"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wb.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271386
Segher Boessenkool [Mon, 20 May 2019 00:09:34 +0000 (02:09 +0200)]
rs6000: Delete the "wo" constraint
This replaces the "wo" constraint by "wa", with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wo"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wo.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
* config/rs6000/altivec.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271385
Janne Blomqvist [Sun, 19 May 2019 19:38:11 +0000 (22:38 +0300)]
libfortran/90038 Reap dead children when wait=.false.
When using posix_spawn or fork to launch a child process, the parent
needs to wait for the child, otherwise the dead child is left as a
zombie process. For this purpose one can install a signal handler for
SIGCHLD.
2019-05-19 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/90038
* intrinsics/execute_command_line (sigchld_handler): New function.
(execute_command_line): Install handler for SIGCHLD.
* configure.ac: Check for presence of sigaction and waitpid.
* config.h.in: Regenerated.
* configure: Regenerated.
Regtested on x86_64-pc-linux-gnu.
From-SVN: r271384
Peter Bergner [Sun, 19 May 2019 16:20:44 +0000 (16:20 +0000)]
* MAINTAINERS: Update my email address.
From-SVN: r271382
Paul Thomas [Sun, 19 May 2019 12:32:55 +0000 (12:32 +0000)]
re PR fortran/90498 (ICE with select type/associate and derived type argument containing class(*))
2019-05-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/90498
* trans-stmt.c (trans_associate_var) Do not use the saved
descriptor if the expression is a COMPONENT_REF.
2019-05-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/90498
* gfortran.dg/associate_48.f90 : New test.
From-SVN: r271380
Thomas Koenig [Sun, 19 May 2019 11:26:20 +0000 (11:26 +0000)]
re PR fortran/78290 (Gfortran incorrectly creates a copy of an array passed to an array pointer dummy argument)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78290
* gfortran.dg/pr78290.f90: New test.
From-SVN: r271379
Thomas Koenig [Sun, 19 May 2019 11:24:17 +0000 (11:24 +0000)]
re PR fortran/88821 (Inline packing of non-contiguous arguments)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* ChangeLog: Add forgotten entry.
From-SVN: r271378
Thomas Koenig [Sun, 19 May 2019 10:21:06 +0000 (10:21 +0000)]
re PR fortran/88821 (Inline packing of non-contiguous arguments)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* expr.c (gfc_is_simply_contiguous): Return true for
an EXPR_ARRAY.
* trans-array.c (is_pointer): New function.
(gfc_conv_array_parameter): Call gfc_conv_subref_array_arg
when not optimizing and not optimizing for size if the formal
arg is passed by reference.
* trans-expr.c (gfc_conv_subref_array_arg): Add arguments
fsym, proc_name and sym. Add run-time warning for temporary
array creation. Wrap argument if passing on an optional
argument to an optional argument.
* trans.h (gfc_conv_subref_array_arg): Add optional arguments
fsym, proc_name and sym to prototype.
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* gfortran.dg/alloc_comp_auto_array_3.f90: Add -O0 to dg-options
to make sure the test for internal_pack is retained.
* gfortran.dg/assumed_type_2.f90: Split compile and run time
tests into this and
* gfortran.dg/assumed_type_2a.f90: New file.
* gfortran.dg/c_loc_test_22.f90: Likewise.
* gfortran.dg/contiguous_3.f90: Likewise.
* gfortran.dg/internal_pack_11.f90: Likewise.
* gfortran.dg/internal_pack_12.f90: Likewise.
* gfortran.dg/internal_pack_16.f90: Likewise.
* gfortran.dg/internal_pack_17.f90: Likewise.
* gfortran.dg/internal_pack_18.f90: Likewise.
* gfortran.dg/internal_pack_4.f90: Likewise.
* gfortran.dg/internal_pack_5.f90: Add -O0 to dg-options
to make sure the test for internal_pack is retained.
* gfortran.dg/internal_pack_6.f90: Split compile and run time
tests into this and
* gfortran.dg/internal_pack_6a.f90: New file.
* gfortran.dg/internal_pack_8.f90: Likewise.
* gfortran.dg/missing_optional_dummy_6: Split compile and run time
tests into this and
* gfortran.dg/missing_optional_dummy_6a.f90: New file.
* gfortran.dg/no_arg_check_2.f90: Split compile and run time tests
into this and
* gfortran.dg/no_arg_check_2a.f90: New file.
* gfortran.dg/typebound_assignment_5.f90: Split compile and run time
tests into this and
* gfortran.dg/typebound_assignment_5a.f90: New file.
* gfortran.dg/typebound_assignment_6.f90: Split compile and run time
tests into this and
* gfortran.dg/typebound_assignment_6a.f90: New file.
* gfortran.dg/internal_pack_19.f90: New file.
* gfortran.dg/internal_pack_20.f90: New file.
* gfortran.dg/internal_pack_21.f90: New file.
From-SVN: r271377
Thomas Koenig [Sun, 19 May 2019 08:22:41 +0000 (08:22 +0000)]
re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90329
* invoke.texi: Document -fbroken-callers.
* lang.opt: Add -fbroken-callers.
* trans-decl.c (create_function_arglist): Only set
DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
From-SVN: r271376
GCC Administrator [Sun, 19 May 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271375
Iain Sandoe [Sat, 18 May 2019 08:44:18 +0000 (08:44 +0000)]
Darwin, objective-c - register gnu-runtime headers correctly.
Darwin is able to use two runtimes for objective-c; the
default is its native "NeXT" runtime, but also it can build
code using the "gnu-runtime". In order to do this, we have to
be able to find the gnu-runtime headers (which are installed
into the compiler's tree).
The process to do this is erroneously prepending the sysroot
to this when a sysroot is in force. The gnu-runtime headers have
never been installed in a Darwin (macOS) SDK so we must make
sure that they are found local to the compiler.
gcc/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-c.c (darwin_register_objc_includes): Do not
prepend the sysroot when building gnu-runtime header search
paths.
From-SVN: r271371
Iain Sandoe [Sat, 18 May 2019 08:27:24 +0000 (08:27 +0000)]
objective-c - add instancetype.
The instancetype has been added as a typedef alias to id
in order to allow diagnosis of cases where a class is used
or returned where an instance is expected.
This adds the typedef, and tests that we can parse it.
It doesn't alter the diagnostics yet.
gcc/objc/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
(objc_global_trees): Add instance type and name.
(INSTANCE_TYPEDEF_NAME): New.
* objc/objc-act.c (synth_module_prologue): Build decls for
objc_instancetype_type and objc_instancetype_name.
gcc/testsuite/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc.dg/instancetype-0.m: New.
From-SVN: r271370