gcc.git
5 years agoAdd myself to MAINTAINERS
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

5 years ago[testsuite] PR90106 Fix cdce3.c testcase
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

5 years agoTweak gcc.dg/torture/pta-ptrarith-3.c
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

5 years ago[i386] Fold __builtin_ia32_shufpd to VEC_PERM_EXPR
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

5 years agoFix failing tests for use of non-reserved names
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

5 years ago[C++ PATCH] Commonixe using directive finishing
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

5 years agotree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
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

5 years ago[C++ PATCH] namespace using directives
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

5 years agodarwin, testsuite - fix PR58321
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

5 years agotree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR doesn't produce pointers.
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

5 years agotree-ssa-alias.c (compare_sizes): New function.
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

5 years agoPR c++/90532 Ensure __is_constructible(T[]) is false
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

5 years agoReject -mx32 on Solaris/x86
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

5 years agoFix %e in Solaris specs
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

5 years agostd::allocator::deallocate support sized-deallocation
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

5 years agoFix test bug with mismatched alignment in allocate/deallocate
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

5 years agoAdd missing ATTRIBUTE_UNUSED for ix86_libc_has_fast_function.
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

5 years agogimple-match-head.c: Include vec-perm-indices.h.
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

5 years agocfgloop.h (struct loop): Add simdlen member.
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

5 years ago[testsuite] aarch64,arm Add missing quotes to expected error message
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

5 years agoAdd missing default default_libc_has_fast_function implementation.
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

5 years agoCome up with hook libc_has_fast_function (PR middle-end/90263).
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

5 years agoAdd vertical spacing in order to separate functions.
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

5 years agoDo not use full qualified names if possible.
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

5 years agoUse capital letters for enum value names.
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

5 years agore PR middle-end/90518 (ICE: in emit_move_insn, at expr.c:3745 in gcc.dg/gimplefe...
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

5 years ago[PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator
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

5 years agoDaily bump.
GCC Administrator [Mon, 20 May 2019 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271394

5 years agors6000: Delete the "wH" and "wI" constraints
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

5 years agors6000: Delete the "wy" constraint
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

5 years agors6000: Delete the "wu" constraint
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

5 years agors6000: Delete "wJ" and "wK" constraints
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

5 years agors6000: Delete the "wb" constraint
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

5 years agors6000: Delete the "wo" constraint
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

5 years agolibfortran/90038 Reap dead children when wait=.false.
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

5 years ago* MAINTAINERS: Update my email address.
Peter Bergner [Sun, 19 May 2019 16:20:44 +0000 (16:20 +0000)]
* MAINTAINERS: Update my email address.

From-SVN: r271382

5 years agore PR fortran/90498 (ICE with select type/associate and derived type argument contain...
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

5 years agore PR fortran/78290 (Gfortran incorrectly creates a copy of an array passed to an...
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

5 years agore PR fortran/88821 (Inline packing of non-contiguous arguments)
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

5 years agore PR fortran/88821 (Inline packing of non-contiguous arguments)
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

5 years agore PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
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

5 years agoDaily bump.
GCC Administrator [Sun, 19 May 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271375

5 years agoDarwin, objective-c - register gnu-runtime headers correctly.
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

5 years agoobjective-c - add instancetype.
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

5 years agodarwin - use switch_to_section instead of asm output.
Iain Sandoe [Sat, 18 May 2019 08:07:56 +0000 (08:07 +0000)]
darwin - use switch_to_section instead of asm output.

We have been emitting two section swiches in the Darwin's
file end function.  This means that varasm is not updated
which could matter if we elect to reorder some of the file
end operations in support of LTO actions.

2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>

* config/darwin.c (darwin_file_end): Use switch_to_section ()
instead of direct output of the asm.

From-SVN: r271369

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

From-SVN: r271368

5 years agoconv-op1.C: Adjust text of expected messages.
Martin Sebor [Fri, 17 May 2019 23:14:09 +0000 (23:14 +0000)]
conv-op1.C: Adjust text of expected messages.

gcc/testsuite/ChangeLog:

* g++.dg/overload/conv-op1.C: Adjust text of expected messages.
* g++.dg/ubsan/pr63956.C: Same.
* g++.old-deja/g++.pt/assign1.C: Same.

From-SVN: r271364

5 years agoPR libstdc++/90520 adjust Xmethod for recent unique_ptr changes
Jonathan Wakely [Fri, 17 May 2019 23:08:00 +0000 (00:08 +0100)]
PR libstdc++/90520 adjust Xmethod for recent unique_ptr changes

PR libstdc++/90520
* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
Raise exception if unique_ptr tuple member has unknown structure.
* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__call__):
Adjust worker to support new __uniq_ptr_data base class. Do not
assume field called _M_head_impl is the first tuple element.

From-SVN: r271363

5 years agogcc_diag-11.c: Remove accidentally committed test.
Martin Sebor [Fri, 17 May 2019 23:05:58 +0000 (23:05 +0000)]
gcc_diag-11.c: Remove accidentally committed test.

gcc/testsuite/ChangeLog:

* gcc.dg/gcc_diag-11.c: Remove accidentally committed test.

From-SVN: r271362

5 years agors6000: Some rs6000_emit_epilogue improvements
Segher Boessenkool [Fri, 17 May 2019 22:10:29 +0000 (00:10 +0200)]
rs6000: Some rs6000_emit_epilogue improvements

This uses epilogue_type directly.  It also changes some ints to bools,
declares variables later, and simplifies some code.

There is one actual change:

   else if (info->push_p
           && DEFAULT_ABI != ABI_V4
-          && !crtl->calls_eh_return)
+          && epilogue_type != EPILOGUE_TYPE_EH_RETURN)
     {
       /* Prevent reordering memory accesses against stack pointer restore.  */

(different because calls_eh_return can be true for sibcalls).  This is
a bugfix.  The code was never exercised.

One place in the epilogue still uses crtl->calls_eh_return.  If that
is changed the prologue has to have a corresponding change, and the
emit_prologue function does not have an epilogue_type parameter, so
bail on changing this for now.  We might want to do this (saving the
CR fields to separate stack slots) always, not just for functions
calling eh_return, but that will require more investigation.

* config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
argument to be type bool (was int before).
(rs6000_emit_epilogue): Simplify some code.  Declare some variables
at first use.  Use type bool for some variables.  Fix a theoretical
eh_return bug for svr4.

From-SVN: r271361

5 years agors6000: Add "enabled" attribute
Segher Boessenkool [Fri, 17 May 2019 21:33:13 +0000 (23:33 +0200)]
rs6000: Add "enabled" attribute

This adds the "enabled" attribute to the rs6000 backend.  It uses the
(new) "isa" attribute to automatically select which instruction
alternatives should be enabled.

For now it allows isa strings of "p5", "p6", "p7", meaning the
instructions introduced on that CPU, not requiring vectors; and "p7v",
"p8v", "p9v" for the same, but with vectors.

These are currently mapped to TARGET_POPCNTB, TARGET_CMPB,
TARGET_POPCNTD, TARGET_VSX, TARGET_P8_VECTOR, and TARGET_P9_VECTOR;
that will change to something a bit saner later.

* config/rs6000/rs6000.md (isa): New attribute.
(enabled): New attribute.

From-SVN: r271360

5 years agogcc: aarch64: move assemble_start_function / assemble_end_function
Max Filippov [Fri, 17 May 2019 20:23:49 +0000 (20:23 +0000)]
gcc: aarch64: move assemble_start_function / assemble_end_function

Change that moved assemble_start_function/assemble_end_function to
backends missed aarch64. Fix that.

gcc/
2019-05-17  Max Filippov  <jcmvbkbc@gmail.com>

* config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
assemble_start_function and assemble_end_function.

From-SVN: r271359

5 years agoOpenACC Profiling Interface (incomplete)
Thomas Schwinge [Fri, 17 May 2019 19:13:36 +0000 (21:13 +0200)]
OpenACC Profiling Interface (incomplete)

libgomp/
* acc_prof.h: New file.
* oacc-profiling.c: Likewise.
* Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES):
Add these, respectively.
* Makefile.in: Regenerate.
* env.c (initialize_env): Call goacc_profiling_initialize.
* oacc-plugin.c (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): New functions.
* oacc-plugin.h (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): Declare.
* libgomp.map (OACC_2.5.1): Add acc_prof_lookup,
acc_prof_register, acc_prof_unregister, and acc_register_library.
(GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and
GOMP_PLUGIN_goacc_thread.
* oacc-int.h (struct goacc_thread): Add prof_info, api_info,
prof_callbacks_enabled members.
(goacc_prof_enabled, goacc_profiling_initialize)
(_goacc_profiling_dispatch_p, _goacc_profiling_setup_p)
(goacc_profiling_dispatch): Declare.
(GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P)
(GOACC_PROFILING_SETUP_P): Define.
* oacc-async.c (acc_async_test, acc_async_test_all, acc_wait)
(acc_wait_async, acc_wait_all, acc_wait_all_async): Update for
OpenACC Profiling Interface.
* oacc-cuda.c (acc_get_current_cuda_device)
(acc_get_current_cuda_context, acc_get_cuda_stream)
(acc_set_cuda_stream): Likewise.
* oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device)
(acc_init, acc_set_device_type, acc_get_device_type)
(acc_get_device_num, goacc_lazy_initialize): Likewise.
* oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device)
(acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data)
(acc_unmap_data, present_create_copy, delete_copyout)
(update_dev_host): Likewise.
* oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start)
(GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait):
Likewise.
* plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free)
(GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
Likewise.
* libgomp.texi: Update.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New
file.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
Likewise.

From-SVN: r271346

5 years ago[PR89433] Repeated use of the C/C++ OpenACC 'routine' directive
Thomas Schwinge [Fri, 17 May 2019 19:13:26 +0000 (21:13 +0200)]
[PR89433] Repeated use of the C/C++ OpenACC 'routine' directive

gcc/
PR middle-end/89433
* omp-general.c (oacc_verify_routine_clauses): Change formal
parameters.  Add checking if already marked with an OpenACC
'routine' directive.  Adjust all users.
gcc/c/
PR c/89433
* c-parser.c (c_finish_oacc_routine): Rework checking if already
marked with an OpenACC 'routine' directive.
gcc/cp/
PR c++/89433
* parser.c (cp_finalize_oacc_routine): Rework checking if already
marked with an OpenACC 'routine' directive.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/routine-5.c: Update.
* c-c++-common/goacc/routine-level-of-parallelism-1.c: Likewise.
* c-c++-common/goacc/routine-level-of-parallelism-2.c: New file.

From-SVN: r271345

5 years ago[PR89433] Use 'oacc_verify_routine_clauses' for C/C++ OpenACC 'routine' directives
Thomas Schwinge [Fri, 17 May 2019 19:13:15 +0000 (21:13 +0200)]
[PR89433] Use 'oacc_verify_routine_clauses' for C/C++ OpenACC 'routine' directives

gcc/
PR middle-end/89433
* omp-general.c (oacc_build_routine_dims): Move some of its
processing into...
(oacc_verify_routine_clauses): ... this new function.
* omp-general.h (oacc_verify_routine_clauses): New prototype.
gcc/c/
PR c/89433
* c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
(c_finish_oacc_routine): Call oacc_verify_routine_clauses.
gcc/cp/
PR c++/89433
* parser.c (cp_parser_oacc_routine)
(cp_parser_late_parsing_oacc_routine): Normalize order of clauses.
(cp_finalize_oacc_routine): Call oacc_verify_routine_clauses.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/routine-2.c: Update, and move some test
into...
* c-c++-common/goacc/routine-level-of-parallelism-1.c: ... this
new file.

From-SVN: r271344

5 years ago[PR89433] Refer to OpenACC 'routine' clauses from "omp declare target" attribute
Thomas Schwinge [Fri, 17 May 2019 19:13:04 +0000 (21:13 +0200)]
[PR89433] Refer to OpenACC 'routine' clauses from "omp declare target" attribute

gcc/c-family/
PR c/89433
* c-attribs.c (c_common_attribute_table): Set min_len to -1 for
"omp declare target".
gcc/c/
PR c/89433
* c-parser.c (c_finish_oacc_routine): Refer to OpenACC 'routine'
clauses from "omp declare target" attribute.
gcc/cp/
PR c++/89433
* parser.c (cp_finalize_oacc_routine): Refer to OpenACC 'routine'
clauses from "omp declare target" attribute.
gcc/fortran/
PR fortran/89433
* f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp
declare target".
* trans-decl.c (add_attributes_to_decl): Refer to OpenACC
'routine' clauses from "omp declare target" attribute.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/classify-routine.c: Update.
* gfortran.dg/goacc/classify-routine.f95: Likewise.

From-SVN: r271343

5 years agodarwin, powerpc - adjust the formatting of picbase labels
Iain Sandoe [Fri, 17 May 2019 19:01:29 +0000 (19:01 +0000)]
darwin, powerpc - adjust the formatting of picbase labels

The rest of the Darwin ports now emit Lnnn$pb as the picbase
lable instead of the ancient (and hard to read) "L0000000nnn$pb".

This just updates this part of the rs6000 port, NFC intended.

2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>

* config/rs6000/rs6000.c (machopic_output_stub): Adjust the
formatting of picbase labels to match other ports.

From-SVN: r271342

5 years agodarwin, powerpc - fix whitespace in generated code.
Iain Sandoe [Fri, 17 May 2019 18:51:50 +0000 (18:51 +0000)]
darwin, powerpc - fix whitespace in generated code.

NFC intended, this simply adds a missing tab to the
generaed code.

2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>

        * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
        on the generated code.

From-SVN: r271341

5 years agolibfortran/90038: Use posix_spawn instead of fork
Janne Blomqvist [Fri, 17 May 2019 18:18:04 +0000 (21:18 +0300)]
libfortran/90038: Use posix_spawn instead of fork

fork() semantics can be problematic.  Most unix style OS'es have
posix_spawn which can be used to replace fork + exec in many cases.
For more information see
e.g. https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf

This replaces the one use of fork in libgfortran with posix_spawn.

2019-05-17  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/90038
        * configure.ac (AC_CHECK_FUNCS_ONCE): Check for posix_spawn.
        * intrinsics/execute_command_line (execute_command_line): Use
        posix_spawn.
        * Makefile.in: Regenerated.
        * config.h.in: Regenerated.
        * configure: Regenerated.

Regtested on x86_64-pc-linux-gnu.

From-SVN: r271340

5 years agoAdd myself to MAINTAINERS
Thomas Rodgers [Fri, 17 May 2019 18:01:45 +0000 (18:01 +0000)]
Add myself to MAINTAINERS

From-SVN: r271339

5 years agotrans.c (check_inlining_for_nested_subprog): Quote reserved names.
Martin Sebor [Fri, 17 May 2019 17:55:43 +0000 (17:55 +0000)]
trans.c (check_inlining_for_nested_subprog): Quote reserved names.

gcc/ada/ChangeLog:

        * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
        reserved names.

gcc/brig/ChangeLog:

        * brigfrontend/brig-control-handler.cc
        (brig_directive_control_handler::operator): Remove trailing newline
        from a diagnostic.
        * brigfrontend/brig-module-handler.cc
        (brig_directive_module_handler::operator): Remove a duplicated space
        from a diagnostic.

gcc/c/ChangeLog:

        * c-decl.c (start_decl): Quote keywords, operators, and
        types in diagnostics.
        (finish_decl): Same.
        * c-parser.c (c_parser_asm_statement): Same.
        (c_parser_conditional_expression): Same.
        (c_parser_transaction_cancel): Same.
        * c-typeck.c (c_common_type): Same.
        (build_conditional_expr): Same.
        (digest_init): Same.
        (process_init_element): Same.
        (build_binary_op): Same.

gcc/c-family/ChangeLog:

        * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
        keywords, operators, and types in diagnostics.
        (handle_scalar_storage_order_attribute): Same.
        (handle_mode_attribute): Same.
        (handle_visibility_attribute): Same.
        (handle_assume_aligned_attribute): Same.
        (handle_no_split_stack_attribute): Same.
        * c-common.c (shorten_compare): Same.
        (c_common_truthvalue_conversion): Same.
        (cb_get_source_date_epoch): Same.
        * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
        in diagnostics.
        (interpret_float): Same.
        * c-omp.c (c_finish_omp_for): Same.
        * c-opts.c (c_common_post_options): Same.
        * c-pch.c (c_common_pch_pragma): Same.
        * c-pragma.c (pop_alignment): Same.
        (handle_pragma_pack): Same.
        (apply_pragma_weak): Same.
        (handle_pragma_weak): Same.
        (handle_pragma_scalar_storage_order): Same.
        (handle_pragma_redefine_extname): Same.
        (add_to_renaming_pragma_list): Same.
        (maybe_apply_renaming_pragma): Same.
        (push_visibility): Same.
        (handle_pragma_visibility): Same.
        (handle_pragma_optimize): Same.
        (handle_pragma_message): Same.
        * c-warn.c (warn_for_omitted_condop): Same.
        (lvalue_error): Same.

gcc/cp/ChangeLog:

        * call.c (print_z_candidate): Wrap diagnostic text in a gettext
        macro.  Adjust.
        (print_z_candidates): Same.
        (build_conditional_expr_1): Quote keywords, operators, and types
        in diagnostics.
        (build_op_delete_call): Same.
        (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
        macro.
        (convert_like_real): Same.
        (convert_arg_to_ellipsis): Quote keywords, operators, and types
        in diagnostics.
        (build_over_call): Same.
        (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
        macro.
        * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
        (cxx_eval_constant_expression): Quote keywords, operators, and types
        in diagnostics.
        (potential_constant_expression_1): Same.
        * cp-gimplify.c (cp_genericize_r): Same.
        * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
        in diagnostics.
        (type_promotes_to): Same.
        * decl.c (check_previous_goto_1): Same.
        (check_goto): Same.
        (start_decl): Same.
        (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
        (grok_op_properties): Quote keywords, operators, and types
        in diagnostics.
        * decl2.c (grokfield): Same.
        (coerce_delete_type): Same.
        * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
        * friend.c (do_friend): Quote C++ tokens.
        * init.c (build_new_1): Quote keywords, operators, and types
        in diagnostics.
        (build_vec_delete_1): Same.
        (build_delete): Same.
        * lex.c (parse_strconst_pragma): Same.
        (handle_pragma_implementation): Same.
        (unqualified_fn_lookup_error): Same.
        * mangle.c (write_type): Same.
        * method.c (defaulted_late_check): Avoid two consecutive punctuators.
        * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
        (pop_everything): Same.
        * parser.c (cp_lexer_start_debugging): Quote a macro name.
        in a diagnostic
        (cp_lexer_stop_debugging): Same.
        (cp_parser_userdef_numeric_literal): Quote a C++ header name
        in a diagnostic.
        (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
        and types in diagnostics.
        (cp_parser_question_colon_clause): Same.
        (cp_parser_asm_definition): Same.
        (cp_parser_init_declarator): Same.
        (cp_parser_template_declaration_after_parameters): Avoid capitalizing
        a sentence in a diagnostic.
        (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
        in diagnostics.
        (cp_parser_transaction): Same.
        * pt.c (maybe_process_partial_specialization): Replace second call
        to permerror with inform for consistency with other uses.
        (expand_integer_pack): Quote keywords, operators, and types
        in diagnostics.
        * rtti.c (get_typeid): Quote keywords, operators, and types
        in diagnostics.
        (build_dynamic_cast_1): Same.
        * semantics.c (finish_asm_stmt): Same.
        (finish_label_decl): Same.
        (finish_bases): Same.
        (finish_offsetof): Same.
        (cp_check_omp_declare_reduction): Same.
        (finish_decltype_type): Same.
        * tree.c (handle_init_priority_attribute): Same.  Add detail
        to diagnostics.
        (maybe_warn_zero_as_null_pointer_constant): Same.
        * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
        in diagnostics.
        (cp_build_unary_op): Same.
        (check_for_casting_away_constness): Same.
        (build_static_cast): Same.
        (build_const_cast_1): Same.
        (maybe_warn_about_returning_address_of_local): Same.
        (check_return_expr): Same.
        * typeck2.c (abstract_virtuals_error_sfinae): Same.
        (digest_init_r): Replace a tab with spaces in a diagnostic.
        (build_functional_cast): Quote keywords, operators, and types
        in diagnostics.

gcc/d/ChangeLog:

        * d-builtins.cc (d_init_builtins): Quote keywords, operators,
        and types in diagnostics.
        * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
        * d-convert.cc (convert_expr): Same.
        * d-frontend.cc (getTypeInfoType): Quote an option name in
        a diagnostic.
        * d-lang.cc (d_handle_option): Same.
        (d_parse_file): Same.
        * decl.cc: Remove a trailing period from a diagnostic.
        * expr.cc: Use a directive for an apostrophe.
        * toir.cc: Quote keywords, operators, and types in diagnostics.
        * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.

gcc/fortran/ChangeLog:

* gfortranspec.c (append_arg): Spell out the word "argument."

gcc/ChangeLog:

        * config/i386/i386-expand.c (get_element_number): Quote keywords
        and other internal names in diagnostics.  Adjust other diagnostic
        formatting issues noted by -Wformat-diag.
        * config/i386/i386-features.c
        (ix86_mangle_function_version_assembler_name): Same.
        * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
        * config/i386/i386.c (ix86_function_type_abi): Same.
        (ix86_function_ms_hook_prologue): Same.
        (classify_argument): Same.
        (ix86_expand_prologue): Same.
        (ix86_md_asm_adjust): Same.
        (ix86_memmodel_check): Same.

gcc/ChangeLog:

        * builtins.c (expand_builtin_atomic_always_lock_free): Quote
        identifiers, keywords, operators, and types in diagnostics.  Correct
        quoting, spelling, and sentence capitalization issues.
        (expand_builtin_atomic_is_lock_free): Same.
        (fold_builtin_next_arg): Same.
        * cfgexpand.c (expand_one_var): Same.
        (tree_conflicts_with_clobbers_p): Same.
        (expand_asm_stmt): Same.
        (verify_loop_structure): Same.
        * cgraphunit.c (process_function_and_variable_attributes): Same.
        * collect-utils.c (collect_execute): Same.
        * collect2.c (maybe_run_lto_and_relink): Same.
        (is_lto_object_file): Same.
        (scan_prog_file): Same.
        * convert.c (convert_to_real_1): Same.
        * dwarf2out.c (dwarf2out_begin_prologue): Same.
        * except.c (verify_eh_tree): Same.
        * gcc.c (execute): Same.
        (eval_spec_function): Same.
        (run_attempt): Same.
        (driver::set_up_specs): Same.
        (compare_debug_auxbase_opt_spec_function): Same.
        * gcov-tool.c (unlink_gcda_file): Same.
        (do_merge): Same.
        (do_rewrite): Same.
        * gcse.c (gcse_or_cprop_is_too_expensive): Same.
        * gimplify.c (gimplify_asm_expr): Same.
        (gimplify_adjust_omp_clauses): Same.
        * hsa-gen.c (gen_hsa_addr_insns): Same.
        (gen_hsa_insns_for_load): Same.
        (gen_hsa_cmp_insn_from_gimple): Same.
        (gen_hsa_insns_for_operation_assignment): Same.
        (gen_get_level): Same.
        (gen_hsa_alloca): Same.
        (omp_simple_builtin::generate): Same.
        (gen_hsa_atomic_for_builtin): Same.
        (gen_hsa_insns_for_call): Same.
        * input.c (dump_location_info): Same.
        * ipa-devirt.c (compare_virtual_tables): Same.
        * ira.c (ira_setup_eliminable_regset): Same.
        * lra-assigns.c (lra_assign): Same.
        * lra-constraints.c (lra_constraints): Same.
        * lto-streamer-in.c (lto_input_mode_table): Same.
        * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
        (merge_and_complain): Same.
        (compile_offload_image): Same.
        (compile_images_for_offload_targets): Same.
        (debug_objcopy): Same.
        (run_gcc): Same.
        (main): Same.
        * opts.c (print_specific_help): Same.
        (parse_no_sanitize_attribute): Same.
        (print_help): Same.
        (handle_param): Same.
        * plugin.c (add_new_plugin): Same.
        (parse_plugin_arg_opt): Same.
        (try_init_one_plugin): Same.
        * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
        operators, and types in diagnostics.  Correct quoting and spelling
        issues.
        * read-rtl-function.c (parse_edge_flag_token): Same.
        (function_reader::parse_enum_value): Same.
        * reg-stack.c (check_asm_stack_operands): Same.
        * regcprop.c (validate_value_data): Same.
        * sched-rgn.c (make_pass_sched_fusion): Same.
        * stmt.c (check_unique_operand_names): Same.
        * targhooks.c (default_target_option_pragma_parse): Same.
        * tlink.c (recompile_files): Same.
        * toplev.c (process_options): Same.
        (do_compile): Same.
        * trans-mem.c (diagnose_tm_1): Same.
        (ipa_tm_scan_irr_block): Same.
        (ipa_tm_diagnose_transaction): Same.
        * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
        format a tree code name in a diagnostic.
        (verify_types_in_gimple_min_lval): Same.
        (verify_types_in_gimple_reference): Same.
        (verify_gimple_call): Same.
        (verify_gimple_assign_unary): Same.
        (verify_gimple_assign_binary): Same.
        (verify_gimple_assign_ternary): Same.
        (verify_gimple_assign_single): Same.
        (verify_gimple_switch): Same.
        (verify_gimple_label): Same.
        (verify_gimple_phi): Same.
        (verify_gimple_in_seq): Same.
        (verify_eh_throw_stmt_node): Same.
        (collect_subblocks): Same.
        (gimple_verify_flow_info): Same.
        (do_warn_unused_result): Same.
        * tree-inline.c (expand_call_inline): Same.
        * tree-into-ssa.c (update_ssa): Same.
        * tree.c (tree_int_cst_elt_check_failed): Same.
        (tree_vec_elt_check_failed): Same.
        (omp_clause_operand_check_failed): Same.
        (verify_type_variant): Same.
        (verify_type): Same.
        * value-prof.c (verify_histograms): Same.
        * varasm.c (assemble_start_function): Same.

gcc/lto/ChangeLog:

        * lto-dump.c (lto_main): Same.
        * lto.c (stream_out): Same.

gcc/objc/ChangeLog:

        * objc-act.c (objc_begin_catch_clause): Quote keywords and options
        in diagnostics.
        (objc_build_throw_stmt): Same.
        (objc_finish_message_expr): Same.
        (get_super_receiver): Same.
        * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
        out "less than" in English./
        * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
        out "greater" in English.

gcc/testsuite/ChangeLog:

        * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics.
        * c-c++-common/Wvarargs-2.c: Same.
        * c-c++-common/Wvarargs.c: Same.
        * c-c++-common/pr51768.c: Same.
        * c-c++-common/tm/inline-asm.c: Same.
        * c-c++-common/tm/safe-1.c: Same.
        * g++.dg/asm-qual-1.C: Same.
        * g++.dg/asm-qual-3.C: Same.
        * g++.dg/conversion/dynamic1.C: Same.
        * g++.dg/cpp0x/constexpr-89599.C: Same.
        * g++.dg/cpp0x/constexpr-cast.C: Same.
        * g++.dg/cpp0x/constexpr-shift1.C: Same.
        * g++.dg/cpp0x/lambda/lambda-conv11.C: Same.
        * g++.dg/cpp0x/nullptr04.C: Same.
        * g++.dg/cpp0x/static_assert12.C: Same.
        * g++.dg/cpp0x/static_assert8.C: Same.
        * g++.dg/cpp1y/lambda-conv1.C: Same.
        * g++.dg/cpp1y/pr79393-3.C: Same.
        * g++.dg/cpp1y/static_assert1.C: Same.
        * g++.dg/cpp1z/constexpr-if4.C: Same.
        * g++.dg/cpp1z/constexpr-if5.C: Same.
        * g++.dg/cpp1z/constexpr-if9.C: Same.
        * g++.dg/eh/goto2.C: Same.
        * g++.dg/eh/goto3.C: Same.
        * g++.dg/expr/static_cast8.C: Same.
        * g++.dg/ext/flexary5.C: Same.
        * g++.dg/ext/utf-array-short-wchar.C: Same.
        * g++.dg/ext/utf-array.C: Same.
        * g++.dg/ext/utf8-2.C: Same.
        * g++.dg/gomp/loop-4.C: Same.
        * g++.dg/gomp/macro-4.C: Same.
        * g++.dg/gomp/udr-1.C: Same.
        * g++.dg/init/initializer-string-too-long.C: Same.
        * g++.dg/other/offsetof9.C: Same.
        * g++.dg/ubsan/pr63956.C: Same.
        * g++.dg/warn/Wbool-operation-1.C: Same.
        * g++.dg/warn/Wtype-limits-Wextra.C: Same.
        * g++.dg/warn/Wtype-limits.C: Same.
        * g++.dg/wrappers/pr88680.C: Same.
        * g++.old-deja/g++.mike/eh55.C: Same.
        * gcc.dg/Wsign-compare-1.c: Same.
        * gcc.dg/Wtype-limits-Wextra.c: Same.
        * gcc.dg/Wtype-limits.c: Same.
        * gcc.dg/Wunknownprag.c: Same.
        * gcc.dg/Wunsuffixed-float-constants-1.c: Same.
        * gcc.dg/asm-6.c: Same.
        * gcc.dg/asm-qual-1.c: Same.
        * gcc.dg/cast-1.c: Same.
        * gcc.dg/cast-2.c: Same.
        * gcc.dg/cast-3.c: Same.
        * gcc.dg/cpp/source_date_epoch-2.c: Same.
        * gcc.dg/debug/pr85252.c: Same.
        * gcc.dg/dfp/cast-bad.c: Same.
        * gcc.dg/format/gcc_diag-1.c: Same.
        * gcc.dg/format/gcc_diag-11.c: Same.New test.
        * gcc.dg/gcc_diag-11.c: Same.New test.
        * gcc.dg/gnu-cond-expr-2.c: Same.
        * gcc.dg/gnu-cond-expr-3.c: Same.
        * gcc.dg/gomp/macro-4.c: Same.
        * gcc.dg/init-bad-1.c: Same.
        * gcc.dg/init-bad-2.c: Same.
        * gcc.dg/init-bad-3.c: Same.
        * gcc.dg/pr27528.c: Same.
        * gcc.dg/pr48552-1.c: Same.
        * gcc.dg/pr48552-2.c: Same.
        * gcc.dg/pr59846.c: Same.
        * gcc.dg/pr61096-1.c: Same.
        * gcc.dg/pr8788-1.c: Same.
        * gcc.dg/pr90082.c: Same.
        * gcc.dg/simd-2.c: Same.
        * gcc.dg/spellcheck-params-2.c: Same.
        * gcc.dg/spellcheck-params.c: Same.
        * gcc.dg/strlenopt-49.c: Same.
        * gcc.dg/tm/pr52141.c: Same.
        * gcc.dg/torture/pr51106-1.c: Same.
        * gcc.dg/torture/pr51106-2.c: Same.
        * gcc.dg/utf-array-short-wchar.c: Same.
        * gcc.dg/utf-array.c: Same.
        * gcc.dg/utf8-2.c: Same.
        * gcc.dg/warn-sprintf-no-nul.c: Same.
        * gcc.target/i386/asm-flag-0.c: Same.
        * gcc.target/i386/inline_error.c: Same.
        * gcc.target/i386/pr30848.c: Same.
        * gcc.target/i386/pr39082-1.c: Same.
        * gcc.target/i386/pr39678.c: Same.
        * gcc.target/i386/pr57756.c: Same.
        * gcc.target/i386/pr68843-1.c: Same.
        * gcc.target/i386/pr79804.c: Same.
        * gcc.target/i386/pr82673.c: Same.
        * obj-c++.dg/class-protocol-1.mm: Same.
        * obj-c++.dg/exceptions-3.mm: Same.
        * obj-c++.dg/exceptions-4.mm: Same.
        * obj-c++.dg/exceptions-5.mm: Same.
        * obj-c++.dg/exceptions-6.mm: Same.
        * obj-c++.dg/method-12.mm: Same.
        * obj-c++.dg/method-13.mm: Same.
        * obj-c++.dg/method-6.mm: Same.
        * obj-c++.dg/method-7.mm: Same.
        * obj-c++.dg/method-9.mm: Same.
        * obj-c++.dg/method-lookup-1.mm: Same.
        * obj-c++.dg/proto-lossage-4.mm: Same.
        * obj-c++.dg/protocol-qualifier-2.mm: Same.
        * objc.dg/call-super-2.m: Same.
        * objc.dg/class-protocol-1.m: Same.
        * objc.dg/desig-init-1.m: Same.
        * objc.dg/exceptions-3.m: Same.
        * objc.dg/exceptions-4.m: Same.
        * objc.dg/exceptions-5.m: Same.
        * objc.dg/exceptions-6.m: Same.
        * objc.dg/method-19.m: Same.
        * objc.dg/method-2.m: Same.
        * objc.dg/method-5.m: Same.
        * objc.dg/method-6.m: Same.
        * objc.dg/method-7.m: Same.
        * objc.dg/method-lookup-1.m: Same.
        * objc.dg/proto-hier-1.m: Same.
        * objc.dg/proto-lossage-4.m: Same.

From-SVN: r271338

5 years agore PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
Jakub Jelinek [Fri, 17 May 2019 17:50:55 +0000 (19:50 +0200)]
re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)

PR fortran/54613
* gfortran.map (GFORTRAN_9.2): Export _gfortran_{,m,s}findloc{0,1}_r10.
* Makefile.am (i_findloc0_c): Add $(srcdir)/generated/findloc0_r10.c.
(i_findloc1_c): Add $(srcdir)/generated/findloc1_r10.c.
* Makefile.in: Regenerated.
* generated/findloc0_r10.c: Generated.
* generated/findloc1_r10.c: Generated.

From-SVN: r271336

5 years agore PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
Jakub Jelinek [Fri, 17 May 2019 17:24:27 +0000 (19:24 +0200)]
re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)

PR fortran/54613
* gfortran.map (GFORTRAN_9.2): Export _gfortran_{,m,s}findloc{0,1}_r10.
* Makefile.am (i_findloc0_c): Add $(srcdir)/generated/findloc0_r10.c.
(i_findloc1_c): Add $(srcdir)/generated/findloc1_r10.c.
* Makefile.in: Regenerated.
* generated/findloc0_r10.c: Generated.
* generated/findloc1_r10.c: Generated.

From-SVN: r271335

5 years agore PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
Jakub Jelinek [Fri, 17 May 2019 17:23:30 +0000 (19:23 +0200)]
re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)

PR fortran/54613
* gfortran.map (GFORTRAN_9.2): New symbol version, export
_gfortran_{,m,s}findloc0_i2 in it.

From-SVN: r271334

5 years agomips.c (mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 with !TARGET_FLOAT32,...
Dragan Mladjenovic [Fri, 17 May 2019 16:28:28 +0000 (16:28 +0000)]
mips.c (mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 and fpxx modes.

* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
and fpxx modes.

* g++.dg/eh/o32-fp.C: New.
* gcc.target/mips/dwarfregtable-1.c: New.
* gcc.target/mips/dwarfregtable-2.c: New.
* gcc.target/mips/dwarfregtable-3.c: New.
* gcc.target/mips/dwarfregtable-4.c: New.
* gcc.target/mips/dwarfregtable.h: New.

From-SVN: r271331

5 years ago2019-05-17 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Fri, 17 May 2019 16:27:54 +0000 (16:27 +0000)]
2019-05-17  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_deque.h
(_Deque_iterator<>::__ptr_to): Remove, use std::__ptr_rebind.
(_Deque_base(_Deque_base&&, const allocator_type&)): New.
(_Deque_base::_Deque_impl_data): New.
(_Deque_base::_Deque_impl): Inherit latter.
(_Deque_base::_Deque_impl::_M_swap_data): Move...
(_Deque_base::_Deque_impl_data::_M_swap_data): ... here.
(_Deque_base::_Deque_impl()): Add noexcept qualification.
(_Deque_base::_Deque_impl(_Deque_impl&&, _Tp_alloc_type&&)): New.
(_Deque_base::_Deque_impl::_M_get_Tp_allocator()): Remove static_cast.
(deque<>::deque()): Default.
(deque<>::deque(deque&&)): Default.
(deque<>::deque(deque&&, const allocator_type&, false_type)): New.
(deque<>::deque(deque&&, const allocator_type&, true_type)): New.
(deque<>::deque(deque&&, const allocator_type&)): Delegate to latters.
(deque<>::deque<_It>(_It, _It, const allocator_type&)): Use
_M_range_initialize.
(deque<>::assign<_It>(_It, _It)): Use _M_assign_aux.
(deque<>::resize(size_type, const value_type&)): Share a single
implementation.
(deque<>::insert<_It>(const_iterator, _It, _It)): Use
_M_range_insert_aux.
[__cplusplus >= 201103L](_M_initialize_dispatch): Remove.
[__cplusplus >= 201103L](_M_assign_dispatch): Remove.
[__cplusplus >= 201103L](_M_insert_dispatch): Remove.
* testsuite/23_containers/deque/allocator/default_init.cc: New.

From-SVN: r271330

5 years agox86-64: Add vector vararg ABI tests
H.J. Lu [Fri, 17 May 2019 16:02:20 +0000 (16:02 +0000)]
x86-64: Add vector vararg ABI tests

We can scan stack for return address to get vector arguments passed on
stack.

Tested on Linux/x86-64 and Linux/x32.

* gcc.target/x86_64/abi/test_varargs-m128.c: New file.
* gcc.target/x86_64/abi/avx/test_varargs-m256.c: Likewise.
* gcc.target/x86_64/abi/avx512f/test_varargs-m512.c: Likewise.

From-SVN: r271329

5 years agoi386: Enable MMX intrinsics without SSE/SSE2/SSSE3
H.J. Lu [Fri, 17 May 2019 14:48:37 +0000 (14:48 +0000)]
i386: Enable MMX intrinsics without SSE/SSE2/SSSE3

Since MMX intrinsics are marked with SSE/SSE2/SSSE3 for SSE emulation,
enable them without SSE/SSE2/SSSE3 if MMX is enabled.

Restore TARGET_3DNOW check, which was changed to TARGET_3DNOW_A by
revision 271235.

gcc/

PR target/90497
* config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
intrinsics without SSE/SSE2/SSSE3.
* config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
check.
(*mmx_uavgv8qi3): Likewise.

gcc/testsuite/

PR target/90497
* gcc.target/i386/pr90497-1.c: New test.
* gcc.target/i386/pr90497-2.c: Likewise.

From-SVN: r271328

5 years agosoft-fp: Update soft-fp from glibc
H.J. Lu [Fri, 17 May 2019 14:37:39 +0000 (14:37 +0000)]
soft-fp: Update soft-fp from glibc

This patch is updating all soft-fp from glibc, most changes are
copyright years update, and changes other than years update are

* soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
4_FP_W_TYPEs are used for IEEE quad precision.
* soft-fp/extendhftf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/extendxftf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfhf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/trunctfxf2.c: Likewise.
* config/rs6000/ibm-ldouble.c: Likewise.

From-SVN: r271327

5 years agoPR libstdc++/90246 Improve text of std::variant exceptions and assertions
Jonathan Wakely [Fri, 17 May 2019 14:36:37 +0000 (15:36 +0100)]
PR libstdc++/90246 Improve text of std::variant exceptions and assertions

PR libstdc++/90246
* include/std/variant (holds_alternative, get, get_if): Improve
static assertion messages.
(bad_variant_access::bad_variant_access()): Change default message.
(__throw_bad_variant_access(bool)): New overload.
(get): Use new overload.
(visit, visit<R>): Improve exception message.

From-SVN: r271326

5 years agoFix std::variant test for ILP32 targets
Jonathan Wakely [Fri, 17 May 2019 14:13:43 +0000 (15:13 +0100)]
Fix std::variant test for ILP32 targets

* testsuite/20_util/variant/compile.cc: Fix narrowing test for ILP32
targets. Add more cases from P0608R3.
* testsuite/20_util/variant/run.cc: Add more cases from P0608R3.

From-SVN: r271325

5 years agoFix uses of non-reserved names for template parameters
Jonathan Wakely [Fri, 17 May 2019 14:13:40 +0000 (15:13 +0100)]
Fix uses of non-reserved names for template parameters

* include/bits/random.h (seed_seq::param): Fix non-reserved name.
* include/experimental/type_traits (is_detected_exact)
(is_detected_exact_v): Likewise.
* include/pstl/execution_defs.h (is_execution_policy)
(is_execution_policy_v, __enable_if_execution_policy): Likewise.
* include/pstl/execution_impl.h (__policy_traits): Likewise.
* testsuite/17_intro/names.cc: Check for more non-reserved names.
* testsuite/experimental/names.cc: New test.

From-SVN: r271324

5 years agoPR libstdc++/85965 move is_invocable assertions again
Jonathan Wakely [Fri, 17 May 2019 14:13:32 +0000 (15:13 +0100)]
PR libstdc++/85965 move is_invocable assertions again

This is another attempt to reduce how often the assertions are
evaluated, so that code which doesn't try to use the function objects
doesn't need them to be invocable.

For _Rb_tree we access the _M_key_compare object directly, so can't put
the assertions in an accessor function for it. However, every invocation
of _M_key_compare is accompanied by a use of _S_key, so the assertions
can be put in there.  For _Hashtable there are member functions that are
consistently used to obtain a hash code or test for equality, so the
assertions can go in those members.

PR libstdc++/85965
* include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static
assertions from the destructor.
* include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code):
Move static_assert for hash function to here.
(_Hash_table_base::_M_equals): Move static_assert for equality
predicate to here.
* include/bits/stl_tree.h (_Rb_tree::_S_value(_Const_Link_type)):
Remove.
(_Rb_tree::_S_key(_Const_Link_type)): Move assertions here. Access
the value directly instead of calling _S_value.
(_Rb_tree::_S_value(_Const_Base_ptr)): Remove.
(_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to
_S_key(_Const_Link_type).
* testsuite/23_containers/set/85965.cc: Check construction,
destruction, assignment and size() do not trigger the assertions.
* testsuite/23_containers/unordered_set/85965.cc: Likewise.
* testsuite/23_containers/map/48101_neg.cc: Call find and adjust
expected errors.
* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
* testsuite/23_containers/set/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.

From-SVN: r271323

5 years agocompiler: use SHA1-hash for symname for long gcbits symbols
Ian Lance Taylor [Fri, 17 May 2019 13:48:18 +0000 (13:48 +0000)]
compiler: use SHA1-hash for symname for long gcbits symbols

    The current scheme used by the compiler for "gcbits" symbols involves
    generating a symbol name based on a 32-char encoding of the bits data.
    This scheme works well in most cases but can generate very long symbol
    names in rare cases. To help avoid such long symbol names, switch to a
    different encoding scheme based on the SHA1 digest of the payload if
    the symbol size would be too large.

    Fixes golang/go#32083.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/177598

From-SVN: r271322

5 years agoS/390: Fix larl/PIC test case.
Robin Dapp [Fri, 17 May 2019 12:18:09 +0000 (12:18 +0000)]
S/390: Fix larl/PIC test case.

This patch adds -march=z900 to a test case that expects larl for loading
a value via the GOT.  On z10 and later, lgrl is used which is tested in
a new, separate test case.

gcc/testsuite/ChangeLog:

2019-05-17  Robin Dapp  <rdapp@linux.ibm.com>

  * gcc.target/s390/global-array-element-pic.c: Add -march=z900.
  * gcc.target/s390/global-array-element-pic2.c: New test for z10+.

From-SVN: r271321

5 years agogimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
Richard Biener [Fri, 17 May 2019 12:04:21 +0000 (12:04 +0000)]
gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.

2019-05-17  Richard Biener  <rguenther@suse.de>

c/
* gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.
(c_parser_gimple_unary_expression): Likewise.
(c_parser_gimple_parentized_ternary_expression): New function.

* gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
VEC_PERM_EXPR as __VEC_PERM with -gimple.

* gcc.dg/gimplefe-41.c: New testcase.

From-SVN: r271320

5 years agore PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)
Jun Ma [Fri, 17 May 2019 10:13:29 +0000 (10:13 +0000)]
re PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)

PR tree-optimization/90106
* gcc.dg/cdce3.c: New test.

From-SVN: r271319

5 years agoS/390: Fix vec_sldw builtin
Andreas Krebbel [Fri, 17 May 2019 10:08:13 +0000 (10:08 +0000)]
S/390: Fix vec_sldw builtin

The builtin was wired up to the wrong pattern.  Fixed with this patch.

gcc/ChangeLog:

2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
vec_sldw insn pattern.

gcc/testsuite/ChangeLog:

2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>

* gcc.target/s390/zvector/vec-sldw.c: New test.

From-SVN: r271318

5 years agoFix __invoke_r<void> to be valid in C++11
Jonathan Wakely [Fri, 17 May 2019 09:28:17 +0000 (10:28 +0100)]
Fix __invoke_r<void> to be valid in C++11

* include/bits/invoke.h [__cplusplus < 201703L] (__invoke_r<void>):
Use _GLIBCXX14_CONSTEXPR because void functions cannot be constexpr
in C++11.

From-SVN: r271317

5 years agoAdd missing piece of P0777R1 and update C++20 status docs
Jonathan Wakely [Fri, 17 May 2019 09:28:13 +0000 (10:28 +0100)]
Add missing piece of P0777R1 and update C++20 status docs

* doc/xml/manual/status_cxx2020.xml: Update P0608R3, P0777R1, and
P1165R1 entries.
* doc/html/*: Regenerate.
* include/std/tuple (make_from_tuple): Use remove_reference_t instead
of decay_t (P0777R1).

From-SVN: r271316

5 years agoccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
Richard Biener [Fri, 17 May 2019 08:15:46 +0000 (08:15 +0000)]
ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.

2019-05-17  Richard Biener  <rguenther@suse.de>

* ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.

From-SVN: r271315

5 years agoHandle a location with NULL as a file (PR driver/90496)
Martin Liska [Fri, 17 May 2019 07:24:28 +0000 (07:24 +0000)]
Handle a location with NULL as a file (PR driver/90496)

2019-05-17  Martin Liska  <mliska@suse.cz>

PR driver/90496
* toplev.c (output_stack_usage): With LTO and sanitizer it
happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
has no file location.

From-SVN: r271313

5 years agoHandle a location with NULL as a file (PR driver/90495)
Martin Liska [Fri, 17 May 2019 07:22:00 +0000 (09:22 +0200)]
Handle a location with NULL as a file (PR driver/90495)

2019-05-17  Martin Liska  <mliska@suse.cz>

PR driver/90495
* toplev.c (output_stack_usage): With LTO and sanitizer it
happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
has no file location.

From-SVN: r271312

5 years agoRemove a test-case that leads to a huge stack (and file) allocation (PR middle-end...
Martin Liska [Fri, 17 May 2019 07:21:46 +0000 (09:21 +0200)]
Remove a test-case that leads to a huge stack (and file) allocation (PR middle-end/90478).

2019-05-17  Martin Liska  <mliska@suse.cz>

PR middle-end/90478
* gcc.dg/tree-ssa/pr90478-2.c: Remove.

From-SVN: r271311

5 years agore PR go/90482 (Many 32-bit Solaris/SPARC tests FAIL with SIGBUS)
Ian Lance Taylor [Fri, 17 May 2019 05:49:22 +0000 (05:49 +0000)]
re PR go/90482 (Many 32-bit Solaris/SPARC tests FAIL with SIGBUS)

PR go/90482
    compiler: make value method of direct interface type takes pointer

    Currently, a value method of a direct interface type takes the
    value of the receiver, which is pointer shaped, as the first
    parameter. When this method is called through interface, we
    actually pass the interface data as a pointer. On most platforms
    this is ok, as the underlying calling convention is the same,
    except that on SPARC32, the calling convention is actually
    different.

    This CL changes the method function actually takes a pointer.
    The function will convert the pointer to the pointer-shaped
    receiver type (a no-op conversion from machine code's aspect).
    For a direct call, in the caller we convert the receiver to a
    pointer (also no-op conversion) before invoking the method. For
    an interface call, we pass the pointer as before. This way, it is
    consistent that we always pass a pointer.

    Hopefully this fixes SPARC32 build and https://gcc.gnu.org/PR90482.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/177758

From-SVN: r271310

5 years agoMove from state of allocators (LWG2593)
François Dumont [Fri, 17 May 2019 04:55:37 +0000 (04:55 +0000)]
Move from state of allocators (LWG2593)

2019-05-17  François Dumont  <fdumont@gcc.gnu.org>

Move from state of allocators (LWG2593)
* include/bits/stl_deque.h
(_Deque_base(_Deque_base&&, false_type)): Remove.
(_Deque_base(_Deque_base&&, true_type)): Remove.
(_Deque_base(_Deque_base&&)): Adapt.
(_Deque_base::_M_move_impl()): Remove.
* testsuite/util/testsuite_allocator.h
(propagating_allocator(propagating_allocator&&)): Preserve move from
state.
* testsuite/23_containers/deque/allocator/move_assign.cc (test02):
Adapt.
* testsuite/23_containers/forward_list/allocator/move_assign.cc (test02):
Adapt.
* testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt.
* testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt.
* testsuite/23_containers/multimap/allocator/move_assign.cc (test02):
Adapt.
* testsuite/23_containers/multiset/allocator/move_assign.cc (test02):
Adapt.
* testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt.
* testsuite/23_containers/unordered_map/allocator/move_assign.cc
(test02): Adapt.
* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
(test02): Adapt.
* testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
(test02): Adapt.
* testsuite/23_containers/unordered_set/allocator/move_assign.cc
(test02): Adapt.
* testsuite/23_containers/vector/allocator/move_assign.cc (test02):
Adapt.
* testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02):
Adapt.
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc
(test02): Adapt.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
(test02): Adapt.

From-SVN: r271309

5 years agocompiler: intrinsify runtime/internal/atomic functions
Cherry Zhang [Fri, 17 May 2019 00:21:22 +0000 (00:21 +0000)]
compiler: intrinsify runtime/internal/atomic functions

    Currently runtime/internal/atomic functions are implemented in C
    using C compiler intrinsics. This CL lets the Go frontend
    recognize these functions and turn them into intrinsics directly.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/176918

* go-gcc.cc (Gcc_backend::Gcc_backend): Define atomic builtins.

From-SVN: r271308

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

From-SVN: r271307

5 years agocompiler: add intrinsics for runtime/internal/sys functions
Ian Lance Taylor [Thu, 16 May 2019 23:23:58 +0000 (23:23 +0000)]
compiler: add intrinsics for runtime/internal/sys functions

    runtime/internal/sys.Ctz32/64 and Bswap32/64 are currently
    implemented with compiler builtin functions. But if they are
    called from another package, the compiler does not know and
    therefore cannot turn them into compiler intrinsics. This CL
    makes the compiler recognize these functions and turn them into
    intrinsics directly, as the gc compiler does.

    This CL sets up a way for adding intrinsics in the compiler.
    More intrinsics will be added in later CLs.

    Also move the handling of runtime.getcallerpc/sp to the new way
    of generating intrinsics.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/176917

From-SVN: r271303

5 years agoRemove incorrect assertion from filesystem::absolute
Jonathan Wakely [Thu, 16 May 2019 22:52:10 +0000 (23:52 +0100)]
Remove incorrect assertion from filesystem::absolute

The assertion is wrong, it should be *s.end() == 0, but that's not
allowed. Just remove it, but keep the comment.

* src/c++17/fs_ops.cc (absolute(const path&, error_code&))
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.

From-SVN: r271300

5 years agore PR c++/90484 (ICE in equal_mem_array_ref_p at gcc/tree-ssa-scopedtables.c:550...
Jakub Jelinek [Thu, 16 May 2019 21:45:34 +0000 (23:45 +0200)]
re PR c++/90484 (ICE in equal_mem_array_ref_p at gcc/tree-ssa-scopedtables.c:550 since r270433 on i586)

PR c++/90484
* tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
sz0 is equal to sz1, instead return false in that case.

From-SVN: r271299

5 years agoomp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF has non-constant expression...
Jakub Jelinek [Thu, 16 May 2019 21:44:40 +0000 (23:44 +0200)]
omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF has non-constant expression...

* omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
has non-constant expression, force sctx.lane and use two
argument IFN_GOMP_SIMD_LANE instead of single argument.
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
two argument IFN_GOMP_SIMD_LANE without lhs.
* tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
member.
(LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
Define.
(LOOP_REQUIRES_VERSIONING): Or in
LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
simd_if_cond.
(vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
* tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
from simd if clause if needed.

* gcc.dg/vect/vect-simd-1.c: New test.
* gcc.dg/vect/vect-simd-2.c: New test.
* gcc.dg/vect/vect-simd-3.c: New test.
* gcc.dg/vect/vect-simd-4.c: New test.

From-SVN: r271298

5 years agoImplement sane variant converting constructor (P0608R3)
Jonathan Wakely [Thu, 16 May 2019 20:30:35 +0000 (21:30 +0100)]
Implement sane variant converting constructor (P0608R3)

* include/std/variant (__overload_set): Remove.
(_Arr): New helper.
(_Build_FUN): New class template to define a single FUN overload,
with specializations to prevent unwanted conversions, as per P0608R3.
(_Build_FUNs): New class template to build an overload set of FUN.
(_FUN_type): New alias template to perform overload resolution.
(__accepted_type): Use integer_constant base for failure case. Use
_FUN_type for successful case.
(variant::__accepted_index): Use _Tp instead of _Tp&&.
(variant::variant(_Tp&&)): Likewise.
(variant::operator=(_Tp&&)): Likewise.

From-SVN: r271296

5 years agoChanges to std::variant to reduce code size
Jonathan Wakely [Thu, 16 May 2019 20:30:27 +0000 (21:30 +0100)]
Changes to std::variant to reduce code size

* include/std/variant (_Variant_storage<false, _Types...>::_M_reset):
Replace raw visitation with a runtime check for the valueless state
and a non-raw visitor.
(_Variant_storage<false, _Types...>::_M_reset_impl): Remove.
(variant::index()): Remove branch.
(variant::swap(variant&)): Use valueless_by_exception() instead of
comparing the index to variant_npos, and add likelihood attribute.

From-SVN: r271295

5 years agotree-affine.c (expr_to_aff_combination): New function split out from...
Richard Biener [Thu, 16 May 2019 19:06:55 +0000 (19:06 +0000)]
tree-affine.c (expr_to_aff_combination): New function split out from...

2019-05-16  Richard Biener  <rguenther@suse.de>

* tree-affine.c (expr_to_aff_combination): New function split
out from...
(tree_to_aff_combination): ... here.
(aff_combination_expand): Avoid building a GENERIC tree.

From-SVN: r271294

5 years agogcc: move assemble_start_function / assemble_end_function to output_mi_thunk
Max Filippov [Thu, 16 May 2019 17:38:29 +0000 (17:38 +0000)]
gcc: move assemble_start_function / assemble_end_function to output_mi_thunk

Let backends call assemble_start_function after they have generated
thunk function body so that a constant pool could be output if it is
required. This may help backends to avoid implementing custom constant
loading code specifically for the MI thunk and reuse existing
functionality.

gcc/
2019-05-16  Max Filippov  <jcmvbkbc@gmail.com>

* cgraphunit.c (cgraph_node::expand_thunk): Remove
assemble_start_function and assemble_end_function calls.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
assemble_start_function and assemble_end_function.
* config/arc/arc.c (arc_output_mi_thunk): Likewise.
* config/arm/arm.c (arm_output_mi_thunk): Likewise.
* config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
* config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
* config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
* config/csky/csky.c (csky_output_mi_thunk): Likewise.
* config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
* config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
* config/i386/i386.c (x86_output_mi_thunk): Likewise.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
* config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
Likewise.
* config/mips/mips.c (mips_output_mi_thunk): Likewise.
* config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
* config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
* config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
* config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
* config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
* config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
* config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/s390/s390.c (s390_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/spu/spu.c (spu_output_mi_thunk): Likewise.
* config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
Likewise.
* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
* config/vax/vax.c (vax_output_mi_thunk): Likewise.

From-SVN: r271293

5 years agotree-ssa-alias.c (alias_stats): Add aliasing_component_refs_p_may_alias and aliasing_...
Jan Hubicka [Thu, 16 May 2019 15:33:01 +0000 (17:33 +0200)]
tree-ssa-alias.c (alias_stats): Add aliasing_component_refs_p_may_alias and aliasing_component_refs_p_no_alias.

* tree-ssa-alias.c (alias_stats): Add
aliasing_component_refs_p_may_alias and
aliasing_component_refs_p_no_alias.
(dump_alias_stats): Print aliasing_component_refs_p stats.
(aliasing_component_refs_p): Update stats.

From-SVN: r271292

5 years agoReplace _Equal_helper with simpler class template
Jonathan Wakely [Thu, 16 May 2019 14:18:50 +0000 (15:18 +0100)]
Replace _Equal_helper with simpler class template

By defining the new helper inside _Hashtable_base it doesn't need all
the template parameters to be provided, and by making it only
responsible for checking a possibly-cached hash code it only has to do
one thing.  The caller can use the equality predicate itself instead of
duplicating that in the helper template.

* include/bits/hashtable_policy.h (_Equal_helper): Remove.
(_Hashtable_base::_Equal_hash_code): Define new class template.
(_Hashtable_base::_M_equals): Use _Equal_hash_code instead of
_Equal_helper.

From-SVN: r271291

5 years agoChange EBO accessors from static to non-static member functions
Jonathan Wakely [Thu, 16 May 2019 14:18:45 +0000 (15:18 +0100)]
Change EBO accessors from static to non-static member functions

* include/bits/hashtable_policy.h (_Hashtable_ebo_helper::_S_get):
Replace with _M_get non-static member function.
(_Hashtable_ebo_helper::_S_cget): Replace with _M_cget non-static
member function.
(_Hash_code_base, _Local_iterator_base, _Hashtable_base):
(_Hashtable_alloc): Adjust to use non-static members of EBO helper.

From-SVN: r271290

5 years agoDo not allow target_clones with alias attr (PR lto/90500).
Martin Liska [Thu, 16 May 2019 13:08:48 +0000 (15:08 +0200)]
Do not allow target_clones with alias attr (PR lto/90500).

2019-05-16  Martin Liska  <mliska@suse.cz>

PR lto/90500
* multiple_target.c (expand_target_clones): Do not allow
target_clones being used with a symbol that is an alias.
2019-05-16  Martin Liska  <mliska@suse.cz>

PR lto/90500
* gcc.target/i386/pr90500-1.c: New test.
* gcc.target/i386/pr90500-2.c: New test.

From-SVN: r271289