]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoRemove handle_pointers argument from all the vrp_val*{min,max} functions. Always
aldyh [Mon, 4 Nov 2019 22:05:26 +0000 (22:05 +0000)] 
Remove handle_pointers argument from all the vrp_val*{min,max} functions.  Always
assume pointers should be handled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277796 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-reference.c (init_function_info): Initialize
hubicka [Mon, 4 Nov 2019 21:56:02 +0000 (21:56 +0000)] 
* ipa-reference.c (init_function_info): Initialize
info->global.statics_read.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277795 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUse the value_range_base constructors in value_range_base::invert to
aldyh [Mon, 4 Nov 2019 21:41:12 +0000 (21:41 +0000)] 
Use the value_range_base constructors in value_range_base::invert to
make sure we build canonically correct ranges.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277794 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[D] Remove unchecked to_constant in VECTOR_TYPE handling
rsandifo [Mon, 4 Nov 2019 21:14:22 +0000 (21:14 +0000)] 
[D] Remove unchecked to_constant in VECTOR_TYPE handling

The SVE port now tries to register variable-length VECTOR_TYPEs
at start-up, so it's no longer possible to use the asserting
to_constant on the number of vector elements.  This patch punts
on variable element counts instead, just like we do for other
things that the frontend doesn't recognise.

The brace indentation matches the surrounding style.

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

gcc/d/
* d-builtins.cc (build_frontend_type): Cope with variable
TYPE_VECTOR_SUBPARTS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277793 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove unused range_int_cst_singleton_p.
aldyh [Mon, 4 Nov 2019 19:52:24 +0000 (19:52 +0000)] 
Remove unused range_int_cst_singleton_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277792 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoHandle VR_UNDEFINED in value_range_base::normalize_addresses().
aldyh [Mon, 4 Nov 2019 19:52:15 +0000 (19:52 +0000)] 
Handle VR_UNDEFINED in value_range_base::normalize_addresses().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277791 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImplement debugging functions for assert_info's.
aldyh [Mon, 4 Nov 2019 19:52:06 +0000 (19:52 +0000)] 
Implement debugging functions for assert_info's.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277790 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-inline-transform.c: Include ipa-utils.h
hubicka [Mon, 4 Nov 2019 19:39:52 +0000 (19:39 +0000)] 
* ipa-inline-transform.c: Include ipa-utils.h
(inline_call): Set thunk_expansion flag.
* ipa-utils.h (thunk_expansion): Declare.
* ipa-devirt.c (thunk_expansion): New global var.
(devirt_node_removal_hook): Do not invalidate cache while
doing thunk expansion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277789 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoSLP: Initialize variable to fix bootstrap after r277784.
tnfchris [Mon, 4 Nov 2019 19:25:20 +0000 (19:25 +0000)] 
SLP: Initialize variable to fix bootstrap after r277784.

This initializes the rstmt variable with NULL and adds an assert to
check that a value has been given by one of the if cases before use.

This fixes the bootstrap failure due to -Werror.

Committed under the gcc obvious rule.

gcc/ChangeLog:

* tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277788 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR testsuite/92302
ebotcazou [Mon, 4 Nov 2019 18:30:23 +0000 (18:30 +0000)] 
PR testsuite/92302
* gcc.target/sparc/sparc-ret-3.c: Accept more registers in address.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277787 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR tree-optimization/92349 - ICE in -Warray-bounds of a VLA member
msebor [Mon, 4 Nov 2019 18:15:43 +0000 (18:15 +0000)] 
PR tree-optimization/92349 - ICE in -Warray-bounds of a VLA member

gcc/testsuite/ChangeLog:

PR tree-optimization/92349
* gcc.dg/Warray-bounds-50.c: New test.

gcc/ChangeLog:

PR tree-optimization/92349
* tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
memebers have constant sizes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277786 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[vect] Clean up orig_loop_vinfo from vect_analyze_loop
avieira [Mon, 4 Nov 2019 17:19:23 +0000 (17:19 +0000)] 
[vect] Clean up orig_loop_vinfo from vect_analyze_loop

gcc/ChangeLog:
2019-11-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
parameter.
* tree-vectorizer.h (vect_analyze_loop): Update declaration.
* tree-vectorizer.c (try_vectorize_loop_1): Update calls to
vect_analyze_loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277785 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[SLP] SLP vectorization: vectorize vector constructors
avieira [Mon, 4 Nov 2019 16:39:32 +0000 (16:39 +0000)] 
[SLP] SLP vectorization: vectorize vector constructors

gcc/ChangeLog:
2019-11-04  Joel Hutton  <Joel.Hutton@arm.com>

* expr.c (store_constructor): Modify to handle single element vectors.
* tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
constructors.
(vect_slp_check_for_constructors): New function.
(vect_slp_analyze_bb_1): Call new function to check for vector
constructors.
(vectorize_slp_instance_root_stmt): New function.
(vect_schedule_slp): Call new function to vectorize root stmt of vector
constructors.
* tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.

gcc/testsuite/ChangeLog:
2019-11-04  Joel Hutton  <Joel.Hutton@arm.com>

* gcc.dg/vect/bb-slp-40.c: New test.
* gcc.dg/vect/bb-slp-41.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277784 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-04 Richard Biener <rguenther@suse.de>
rguenth [Mon, 4 Nov 2019 14:50:11 +0000 (14:50 +0000)] 
2019-11-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/92345
* tree-vect-loop.c (vect_is_simple_reduction): Return whether
we produced a reduction chain.
(vect_analyze_scalar_cycles_1): Do not add reduction chains to
LOOP_VINFO_REDUCTIONS.

* gcc.dg/torture/pr92345.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277782 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * cgraphclones.c (cgraph_node::create_version_clone): Do not
hubicka [Mon, 4 Nov 2019 14:07:09 +0000 (14:07 +0000)] 
* cgraphclones.c (cgraph_node::create_version_clone): Do not
duplicate summaries.
* ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
first.
(ipa_fn_summary_t::duplicate): Use get instead of get_create to
access call summaries.
(dump_ipa_call_summary): Be ready for missing edge summaries.
(analyze_function_body): Use get instead of get_create to access
edge summary.
(estimate_calls_size_and_time): Do not access summaries of
inlined edges; sanity check they are missing.
(ipa_call_context::estimate_size_and_time): Use get instead
of get_create to access node summary.
(inline_update_callee_summaries): Do not update depth of
inlined edge.
(ipa_merge_fn_summary_after_inlining): Remove inline edge from
growth caches.
(ipa_merge_fn_summary_after_inlining): Use get instead
of get_create.
* ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
* ipa-inline-analyssi.c (edge_growth_cache): Turn to
fast summary.
(initialize_growth_caches): Update.
(do_estimate_edge_time): Remove redundant copy of context.
(ipa_remove_from_growth_caches): New function.
* ipa-inline.c (flatten_function): Update overall summary
only when optimizing.
(inline_to_all_callers): Update overall summary of function
inlined to.
* ipa-inline.h (edge_growth_cache): Turn to fast summary.
* symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
to false.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277780 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-04 Richard Biener <rguenther@suse.de>
rguenth [Mon, 4 Nov 2019 14:05:24 +0000 (14:05 +0000)] 
2019-11-04  Richard Biener  <rguenther@suse.de>

* system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
* ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277779 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ggc-common.c: Include system.h before malloc.h.
dje [Mon, 4 Nov 2019 13:52:46 +0000 (13:52 +0000)] 
    * ggc-common.c: Include system.h before malloc.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277778 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agopass --enable-obsolete down to gcc/configure for auto-build.h
aoliva [Mon, 4 Nov 2019 13:40:12 +0000 (13:40 +0000)] 
pass --enable-obsolete down to gcc/configure for auto-build.h

Configuring GCC for obsolete targets works as long as build = host.
When it isn't, --enable-obsolete is not passed down to the additional
build configure started by gcc/configure, used to generate
auto-build.h.  The build configure fails and we end up without a
auto-build.h, but the host configure proceeds, so we only get a fatal
failure much later, when make realizes auto-build.h is not there and
there's no rule to create it.

This patch gets the host configure to fail when the build configure
does, leaving the temporary build configure dir behind for
investigation.  It also arranges for --eanble-obsolete to be passed
down to the build configure.

Alas, the latter triggered a warning in the build configure because
--enable-obsolete is not a recognized configure option.  That's not
reported in the host configure because of the
--disable-option-checking passed by the top-level configure, so I
arranged for that to be passed down to the build configure as well.

Finally, since my initial suspicion when investigating this failure
was that auto-build.h had been removed after configuration and there
was no rule to rebuild it, I'm adding rules to gcc/Makefile to get it
created or updated as needed.  Since it is configure that creates it,
as run by e.g. config.status --recheck, and config.status is created
after auto-build.h, I've made config.status depend on auto-build.h,
and added a dummy rule to create auto-build.h.  This would normally
not be enough to create a header when needed, but since Makefile
depends on config.status, and make first updates Makefile, it ends up
working, as long as nothing else that Makefile depends on requires
auto-build.h but not config.status.  The config.status dependency and
the auto-build.h rule are only enabled in the cases in which
auto-build.h is actually used, namely when build != host.

for  gcc/ChangeLog

* configure.ac: Pass --enable-obsolete=* and
--enable-option-checking=* down to build configure, and fail
if it fails.  AC_SUBST HAVE_AUTO_BUILD.
* configure: Rebuild.
* Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
[HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277777 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgomp - remove dg-run if dg-options O2 is used
burnus [Mon, 4 Nov 2019 13:18:50 +0000 (13:18 +0000)] 
libgomp - remove dg-run if dg-options O2 is used

* testsuite/libgomp.fortran/pr66199-1.f90: Remove
'dg-do run' (implies torture test) as 'dg-options "O2"' is used.
* testsuite/libgomp.fortran/pr66199-2.f90: Ditto.
* testsuite/libgomp.fortran/taskloop2.f90: Ditto.
* testsuite/libgomp.fortran/taskloop3.f90: Ditto.
* testsuite/libgomp.fortran/taskloop4.f90: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277776 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgcc: Fix incorrect use of USE_TM_CLONE_REGISTRY
jozefl [Mon, 4 Nov 2019 12:41:56 +0000 (12:41 +0000)] 
libgcc: Fix incorrect use of USE_TM_CLONE_REGISTRY

2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* crtstuff.c: Define USE_TM_CLONE_REGISTRY to 0 if it's undefined and
the target output object format is not ELF.
s/defined(USE_TM_CLONE_REGISTRY)/USE_TM_CLONE_REGISTRY.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277775 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMSP430: Add -mtiny-printf option
jozefl [Mon, 4 Nov 2019 11:23:46 +0000 (11:23 +0000)] 
MSP430: Add -mtiny-printf option

2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

gcc/
* config.in: Regenerate.
* config/msp430/msp430.c (msp430_option_override): Emit an error if
-mtiny-printf is used without GCC being configured with
--enable-newlib-nano-formatted-io.
* config/msp430/msp430.h (LINK_SPEC): Pass
"--wrap puts --wrap printf" when -mtiny-printf is used.
* config/msp430/msp430.opt: Document -mtiny-printf.
* configure: Regenerate.
* configure.ac: Enable --enable-newlib-nano-formatted-io flag.
Define HAVE_NEWLIB_NANO_FORMATTED_IO if
--enable-newlib-nano-formatted-io is passed.
* doc/invoke.texi: Document -mtiny-printf.

gcc/testsuite/
* gcc.target/msp430/tiny-printf.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277774 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRegenerate gcc/configure
jozefl [Mon, 4 Nov 2019 11:18:24 +0000 (11:18 +0000)] 
Regenerate gcc/configure

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277773 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoMSP430: Add new methods of finding external MCU data file
jozefl [Mon, 4 Nov 2019 11:01:03 +0000 (11:01 +0000)] 
MSP430: Add new methods of finding external MCU data file

MCU data file can now be specified with an environment variable or installed
into a toolchain subdirectory.

2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

gcc/
* config/msp430/driver-msp430.c
(msp430_get_linker_devices_include_path): New spec function.
* config/msp430/msp430-devices.c (msp430_dirname): New function.
(extract_devices_dir_from_exec_prefix): New function.
(extract_devices_dir_from_collect_gcc): New function.
(msp430_check_env_var_for_devices): New function.
(msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
(parse_devices_csv): Call msp430_check_env_var_for_devices if
devices.csv was not found using other methods.
* config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
New prototype.
(msp430_dirname): Likewise.
* config/msp430/msp430.c (msp430_register_pre_includes): New function.
* config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
msp430_get_linker_devices_include_path.
(TARGET_EXTRA_PRE_INCLUDES): Define.
* doc/invoke.texi: Document new ways of searching for support files.

gcc/testsuite/
* gcc.target/msp430/devices/csv-using-env-var.c: New test.
* gcc.target/msp430/devices/csv-using-installed.c: New test.
* gcc.target/msp430/devices/csv-using-option.c: New test.
* gcc.target/msp430/devices/devices-main.c: New test source file.
* gcc.target/msp430/devices/msp430-devices.h: New test.
* gcc.target/msp430/msp430.exp (msp430_device_permutations_runtest):
Add special cases for csv-using* tests.
Define TESTING_HARD_DATA when running tests that use hard-coded device
data.
(get_installed_device_data_path): New.
(msp430_hide_installed_devices_data): New.
(msp430_restore_installed_devices_data): New.
(msp430_test_installed_device_data): New.
(msp430_install_device_data): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277772 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-04 Richard Biener <rguenther@suse.de>
rguenth [Mon, 4 Nov 2019 10:08:22 +0000 (10:08 +0000)] 
2019-11-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/92301
* tree-vect-stmts.c (process_use): Force reduction PHI defs live
as required by epilogue generation

* gcc.dg/pr92301.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277771 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgomp/testsuite - use unique numbers with Fortran's 'stop'
burnus [Mon, 4 Nov 2019 10:01:22 +0000 (10:01 +0000)] 
libgomp/testsuite - use unique numbers with Fortran's 'stop'

        PR fortran/92305
        * testsuite/libgomp.fortran/allocatable2.f90: Use
        unique numbers with 'stop'.
        * testsuite/libgomp.fortran/use_device_addr-1.f90: Ditto.
        * testsuite/libgomp.fortran/use_device_addr-2.f90: Ditto.
        * testsuite/libgomp.fortran/use_device_ptr-1.f90: Ditto.
        * testsuite/libgomp.oacc-fortran/lib-15.f90: Ditto.
        * testsuite/libgomp.oacc-fortran/pset-1.f90: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277769 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix hash_operand for fields of a CONSTRUCTOR.
marxin [Mon, 4 Nov 2019 09:11:26 +0000 (09:11 +0000)] 
Fix hash_operand for fields of a CONSTRUCTOR.

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

PR ipa/92304
* fold-const.c (operand_compare::hash_operand): Fix field
hashing of CONSTRUCTOR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277768 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCome up with ggc_delete.
marxin [Mon, 4 Nov 2019 09:11:14 +0000 (09:11 +0000)] 
Come up with ggc_delete.

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

* ggc.h (ggc_delete): New function.
* ipa-fnsummary.c (ipa_free_fn_summary): Use it.
* ipa-prop.c (ipa_free_all_edge_args): Likewise.
(ipa_free_all_node_params): Likewise.
* ipa-sra.c (ipa_sra_analysis): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277767 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-04 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 4 Nov 2019 07:39:21 +0000 (07:39 +0000)] 
2019-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/92113
    * ChangeLog: Fix PR number

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277766 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 4 Nov 2019 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277764 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-03 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 3 Nov 2019 22:33:53 +0000 (22:33 +0000)] 
2019-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/92133
    * trans-decl.c (gfc_get_symbol_decl): If __def_init actually
    contains a value, put it into  the read-only section.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277760 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImprove effectivity of ipa_polymorphi_context cache.
hubicka [Sun, 3 Nov 2019 22:32:56 +0000 (22:32 +0000)] 
Improve effectivity of ipa_polymorphi_context cache.

        * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
set_switch_stmt_execution_predicate, compute_bb_predicates,
will_be_nonconstant_expr_predicate,
phi_result_unknown_predicate,
analyze_function_body): Pass arround params summary.
(ipa_call_context::duplicate_from): New comment;
only duplicate useful values.
(ipa_call_context::equal_to): Only compare useful values.
(remap_edge_summaries): Pass params_summary.
(remap_hint_predicate): Likewise.
(ipa_merge_fn_summary_after_inlining): Likewise.
(inline_read_section): Initialize params summary used flags.
* ipa-predicate.c (predicate::remap_after_inlining): Pass
around param_summary.
(add_condition): Initialized used params summary flags.
* ipa-predicate.h (inline_param_summary::equals_to): Make const.
(inline_param_summary::useless_p): New predicate.
(remap_after_inlining, add_condition): Update prototype
* ipa-prop.c (ipa_populate_param_decls): Watch overflow in
move_cost.
(ipa_note_param_call): Add parameter POLYMORPHIC; update params
summaries.
(ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
(ipa_analyze_virtual_call_uses): Likewise.
(update_indirect_edges_after_inlining): Update param summaries.
(ipa_print_node_params): Print used flags.
(ipa_read_indirect_edge_info): Update param summareis.
* ipa-prop.h (ipa_param_descriptor): Add
used_by_ipa_predicates, used_by_indirect_call
and used_by_polymorphic_call.
(ipa_set_param_used_by_ipa_predicates,
ipa_set_param_used_by_indirect_call,
ipa_set_param_used_by_polymorphic_call,
ipa_is_param_used_by_ipa_predicates,
ipa_is_param_used_by_indirect_call,
ipa_is_param_used_by_polymorphic_call): New inline functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277759 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/88565 - enhance -Warray-bounds for C++ trailing class member arrays
msebor [Sun, 3 Nov 2019 22:11:37 +0000 (22:11 +0000)] 
PR c++/88565 - enhance -Warray-bounds for C++ trailing class member arrays

gcc/testsuite/ChangeLog:

* g++.dg/warn/Warray-bounds-9.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277758 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
hubicka [Sun, 3 Nov 2019 16:37:45 +0000 (16:37 +0000)] 
* ipa-fnsummary.c (ipa_call_context::duplicate_from): New
member function.
(ipa_call_context::release): Add ALL parameter.
(ipa_call_context::equal_to): New member function.
* ipa-fnsummary.h (ipa_call_context): Add empty constructor;
duplicate_form, release, equal_to and exists_p member functoins.
* ipa-inline-analysis.c (node_context_cache_entry): New
class.
(node_context_summary): Likewise.
(node_context_cache, node_context_cache_hit, node_context_cache_miss,
node_context_clear): New static vars.
(initialize_growth_caches): New function.
(free_growth_caches): Also delete node_context_cache; output stats.
(do_estimate_edge_time): Cache contexts.
(reset_node_cache): New function.
* ipa-inline.c (reset_edge_caches): Reset also node cache.
(inline_small_functions): Initialize growth caches.
* ipa-inline.h (reset_node_cache, initialize_growth_caches):
Declare.
* ipa-predicate.h (inline_param_summary::equal_to): New.
* ipa-prop.c (ipa_agg_jf_item::equal_to): New.
* ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
(ipa_agg_jump_function): Implement equal_to member function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277757 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-fnsummary.c (inline_read_section): Set vector size
hubicka [Sun, 3 Nov 2019 15:58:43 +0000 (15:58 +0000)] 
* ipa-fnsummary.c (inline_read_section): Set vector size
ahead of time.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277756 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * ipa-fnsummary.c (ipa_call_context): New constructor.
hubicka [Sun, 3 Nov 2019 13:52:59 +0000 (13:52 +0000)] 
* ipa-fnsummary.c (ipa_call_context): New constructor.
(estimate_node_size_and_time): Turn to ...
(ipa_call_context::estimate_size_and_time): ... this one.
(ipa_call_context::release): New.
* ipa-fnsummary.h (ipa_call_context): New class.
(estimate_node_size_and_time): Remove.
* ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
do_estimate_edge_hints): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277755 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config.in: Regenerate.
hubicka [Sun, 3 Nov 2019 12:50:22 +0000 (12:50 +0000)] 
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for mallinfo.
* ggc-common.c: Include malloc.h if available;
include options.h
(report_heap_memory_use): New functoin.
* ggc-page.c (ggc_grow): Do not print "start".
* ggc.h (report_heap_memory_use): Declare.
* pases.c (execute_one_pass): Report memory after IPA passes.
(ipa_read_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277754 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config.in: Regenerate.
hubicka [Sun, 3 Nov 2019 12:48:43 +0000 (12:48 +0000)] 
  * config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for mallinfo.
* ggc-common.c: Include malloc.h if available;
include options.h
(report_heap_memory_use): New functoin.
* ggc-page.c (ggc_grow): Do not print "start".
* ggc.h (report_heap_memory_use): Declare.
* pases.c (execute_one_pass): Report memory after IPA passes.
(ipa_read_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.

* lto/lto-common.c (read_cgraph_and_symbols): Improve -Q reporting.
* lto.c (lto_wpa_write_files): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277753 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibgcc/
olegendo [Sun, 3 Nov 2019 12:09:26 +0000 (12:09 +0000)] 
libgcc/
PR libgcc/78804
* fp-bit.h: Remove FLOAT_BIT_ORDER_MISMATCH.
* fp-bit.c (pack_d, unpack_d): Remove special cases for
FLOAT_BIT_ORDER_MISMATCH.
* config/arc/t-arc: Remove FLOAT_BIT_ORDER_MISMATCH.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277752 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sun, 3 Nov 2019 00:16:16 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277749 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago/cp
paolo [Sat, 2 Nov 2019 09:13:37 +0000 (09:13 +0000)] 
/cp
2019-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

* typeck.c (composite_pointer_type): Add a const op_location_t&
parameter and use it in diagnostics.
(composite_pointer_error): Likewise.
(composite_pointer_type_r): Add a const op_location_t&
parameter and forward it.
(cp_build_binary_op): Adjust calls.
(common_pointer_type): Likewise.
* call.c (add_builtin_candidate): Likewise.
(build_conditional_expr_1): Likewise.
* cp-tree.h (composite_pointer_type): Update declaration.

* typeck.c (cxx_sizeof_expr): Use cp_expr_loc_or_input_loc
in permerror.
(cxx_alignof_expr): Likewise.
(lvalue_or_else): Likewise.

/testsuite
2019-11-02  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/conversion/ptrmem9.C: Check location.
* g++.dg/expr/cond2.C: Likewise.
* g++.dg/warn/Waddress-1.C: Check locations.
* g++.old-deja/g++.bugs/900324_02.C: Check location.
* g++.old-deja/g++.jason/rfg20.C: Likewise.
* g++.old-deja/g++.law/typeck1.C: Likewise.
* g++.old-deja/g++.rfg/00321_01-.C: Likewise.
* g++.old-deja/g++.rfg/00324_02-.C: Likewise.

* g++.dg/diagnostic/alignof1.C: New.
* g++.dg/expr/sizeof1.C: Check location.
* g++.dg/cpp0x/rv-lvalue-req.C: Check locations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277743 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gimplify.h (omp_construct_selector_matches): Change return
jakub [Sat, 2 Nov 2019 09:02:21 +0000 (09:02 +0000)] 
* gimplify.h (omp_construct_selector_matches): Change return
type to int, add a new SCORES argument.
* gimplify.c (omp_construct_selector_matches): Likewise.  If
SCORES is non-NULL, compute scores of each construct.
* omp-general.h (omp_get_context_selector): Declare.
* omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
Adjust omp_construct_selector_matches callers.
(omp_get_context_selector): New function, moved from c-family/c-omp.c.
(omp_context_compute_score): New function.
(omp_resolve_declare_variant): Compute scores and decide based on
that.
c-family/
* c-common.h (c_omp_get_context_selector): Remove.
* c-omp.c (c_omp_get_context_selector): Moved to omp-general.c
and renamed to omp_get_context_selector.
c/
* c-parser.c (c_finish_omp_declare_variant): Use
omp_get_context_selector instead of c_omp_get_context_selector.
cp/
* decl.c (omp_declare_variant_finalize_one): Use
omp_get_context_selector instead of c_omp_get_context_selector.
testsuite/
* c-c++-common/gomp/declare-variant-12.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277742 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/89640
jakub [Sat, 2 Nov 2019 06:53:53 +0000 (06:53 +0000)] 
PR c++/89640
* parser.c (cp_parser_decl_specifier_seq): Don't parse attributes
if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.

* g++.dg/cpp1z/attr-lambda1.C: New test.
* g++.dg/ext/attr-lambda2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277741 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sat, 2 Nov 2019 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277740 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR bootstrap/92314
jakub [Fri, 1 Nov 2019 23:34:21 +0000 (23:34 +0000)] 
PR bootstrap/92314
* configure.ac: Don't look for omp-device-properties files from
installed offloading compilers.  Instead add tmake_file snippets
for configured offloading targets and use files they generate.
* Makefile.in (install): Don't depend on
install-omp-device-properties.
(install-omp-device-properties): Remove goal.
* config/i386/t-omp-device: New file.
* config/i386/t-intelmic (omp-device-properties): Remove goal.
* config/nvptx/t-omp-device: New file.
* config/nvptx/t-nvptx (omp-device-properties): Remove goal.
* configure: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277735 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * omp-general.h (omp_context_selector_set_compare): Declare.
jakub [Fri, 1 Nov 2019 23:30:55 +0000 (23:30 +0000)] 
* omp-general.h (omp_context_selector_set_compare): Declare.
* omp-general.c (omp_construct_simd_compare,
omp_context_selector_props_compare, omp_context_selector_set_compare,
omp_context_selector_compare): New functions.
(omp_resolve_declare_variant): Prune variants that are strict subset
of another variant.
c-family/
* c-omp.c (c_omp_mark_declare_variant): Use
omp_context_selector_set_compare.
testsuite/
* c-c++-common/gomp/declare-variant-6.c: Expect construct rather than
constructor in diagnostic messages.
* c-c++-common/gomp/declare-variant-7.c: Likewise.
* c-c++-common/gomp/declare-variant-11.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277734 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/88335 - Implement P1073R3: Immediate functions
jakub [Fri, 1 Nov 2019 23:28:20 +0000 (23:28 +0000)] 
PR c++/88335 - Implement P1073R3: Immediate functions
c-family/
* c-common.h (enum rid): Add RID_CONSTEVAL.
* c-common.c (c_common_reswords): Add consteval.
cp/
* cp-tree.h (struct lang_decl_fn): Add immediate_fn_p bit.
(DECL_IMMEDIATE_FUNCTION_P, SET_DECL_IMMEDIATE_FUNCTION_P): Define.
(enum cp_decl_spec): Add ds_consteval.
(fold_non_dependent_expr): Add another tree argument defaulted to
NULL_TREE.
* name-lookup.h (struct cp_binding_level): Add immediate_fn_ctx_p
member.
* parser.c (cp_keyword_starts_decl_specifier_p): Adjust comments
for C++11 and C++20 specifiers.  Handle RID_CONSTEVAL.
(CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): Adjust comment.
(CP_PARSER_FLAGS_CONSTEVAL): New.
(cp_parser_skip_balanced_tokens): New forward declaration.
(cp_parser_lambda_declarator_opt): Handle ds_consteval.  Set
current_binding_level->immediate_fn_ctx_p before parsing parameter
list if decl-specifier-seq contains consteval specifier.
(cp_parser_decl_specifier_seq): Handle RID_CONSTEVAL.
(cp_parser_explicit_instantiation): Diagnose explicit instantiation
with consteval specifier.
(cp_parser_init_declarator): For consteval or into flags
CP_PARSER_FLAGS_CONSTEVAL.
(cp_parser_direct_declarator): If CP_PARSER_FLAGS_CONSTEVAL, set
current_binding_level->immediate_fn_ctx_p in the sk_function_parms
scope.
(set_and_check_decl_spec_loc): Add consteval entry, formatting fix.
* call.c (build_addr_func): For direct calls to immediate functions
use build_address rather than decay_conversion.
(build_over_call): Evaluate immediate function invocations.
* error.c (dump_function_decl): Handle DECL_IMMEDIATE_FUNCTION_P.
* semantics.c (expand_or_defer_fn_1): Use tentative linkage and don't
call mark_needed for immediate functions.
* typeck.c (cxx_sizeof_or_alignof_expr): Likewise.  Formatting fix.
(cp_build_addr_expr_1): Reject taking address of immediate function
outside of immediate function.
* decl.c (validate_constexpr_redeclaration): Diagnose consteval
vs. non-consteval or vice versa redeclaration.  Use
SET_DECL_IMMEDIATE_FUNCTION_P if new_decl is immediate function.
(check_tag_decl): Use %qs with keyword string to simplify translation.
Handle ds_consteval.
(start_decl): Adjust diagnostics for static or thread_local variables
in immediate functions.
(grokfndecl): Call sorry_at on virtual consteval.  Use %qs with keyword
to string to simplify translation.  Diagnose consteval main.  Use
SET_DECL_IMMEDIATE_FUNCTION_P for consteval.
(grokdeclarator): Handle consteval.  Use %qs with keyword strings to
simplify translation.  Use separate ifs instead of chained else if
for invalid specifiers.  For constinit clear constinit_p rather than
constexpr_p.
* constexpr.c (find_immediate_fndecl): New function.
(cxx_eval_outermost_constant_expr): Allow consteval calls returning
void.  Diagnose returning address of immediate function from consteval
evaluation.
(fold_non_dependent_expr_template): Add OBJECT argument, pass it
through to cxx_eval_outermost_constant_expr.
(fold_non_dependent_expr): Add OBJECT argument, pass it through to
fold_non_dependent_expr_template.
(fold_non_dependent_init): Adjust fold_non_dependent_expr_template
caller.
* method.c (defaulted_late_check): Adjust diagnostics for consteval.
* lambda.c (maybe_add_lambda_conv_op): Copy over
DECL_DECLARED_CONSTEXPR_P and DECL_IMMEDIATE_FUNCTION_P bits from
callop to both artificial functions.
* init.c (build_value_init): Don't do further processing if
build_special_member_call returned a TREE_CONSTANT.  Formatting fix.
testsuite/
* g++.dg/cpp2a/consteval1.C: New test.
* g++.dg/cpp2a/consteval2.C: New test.
* g++.dg/cpp2a/consteval3.C: New test.
* g++.dg/cpp2a/consteval4.C: New test.
* g++.dg/cpp2a/consteval5.C: New test.
* g++.dg/cpp2a/consteval6.C: New test.
* g++.dg/cpp2a/consteval7.C: New test.
* g++.dg/cpp2a/consteval8.C: New test.
* g++.dg/cpp2a/consteval9.C: New test.
* g++.dg/cpp2a/consteval10.C: New test.
* g++.dg/cpp2a/consteval11.C: New test.
* g++.dg/cpp2a/consteval12.C: New test.
* g++.dg/cpp2a/consteval13.C: New test.
* g++.dg/cpp2a/consteval14.C: New test.
* g++.dg/ext/consteval1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277733 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/91369 - Implement P0784R7: constexpr new
jakub [Fri, 1 Nov 2019 23:26:17 +0000 (23:26 +0000)] 
PR c++/91369 - Implement P0784R7: constexpr new
* cp-tree.h (CALL_FROM_NEW_OR_DELETE_P): Define.
* init.c (build_new_1, build_vec_delete_1, build_delete): Set
CALL_FROM_NEW_OR_DELETE_P on the CALL_EXPR to allocator functions.
* constexpr.c (is_std_allocator_allocate): Only allow
global replaceable allocator functions if CALL_FROM_NEW_OR_DELETE_P
or in std::allocate<T>::{,de}allocate.
(potential_constant_expression_1): Likewise.

* g++.dg/cpp2a/constexpr-new6.C: New test.
* g++.dg/cpp2a/constexpr-new7.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277732 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc.dg/pr36902.c: Terminate dg-warning regexp string.
jakub [Fri, 1 Nov 2019 23:22:57 +0000 (23:22 +0000)] 
* gcc.dg/pr36902.c: Terminate dg-warning regexp string.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277730 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR middle-end/91679 - missing -Warray-bounds accessing a member array in a local...
msebor [Fri, 1 Nov 2019 21:09:20 +0000 (21:09 +0000)] 
PR middle-end/91679 - missing -Warray-bounds accessing a member array in a local buffer
PR middle-end/91647 - new FAILs for Warray-bounds-8 and Wstringop-overflow-3.C
PR middle-end/91463 - missing -Warray-bounds accessing past the end of a statically initialized flexible array member
PR middle-end/92312 - bogus -Wstringop-overflow storing into a trailing array backed by larger buffer

gcc/ChangeLog:

PR middle-end/91679
PR middle-end/91647
PR middle-end/91463
PR middle-end/92312
* c-family/c-pretty-print.c (direct_abstract_declarator): Print
bound in zero-length arrays.
* gcc/c-family/c.opt (-Wzero-length-bounds): New option.
* gcc/doc/invoke.texi (-Wzero-length-bounds): Document.
* gimple-match-head.c (try_conditional_simplification): Use memcpy
instead of a hand-rolled loop to avoid PR 92323.
* tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
with initializers.
(vrp_prop::check_mem_ref): Handle declared struct objects.
* tree.c (last_field): New function.
(array_at_struct_end_p): Handle MEM_REF.
(get_initializer_for): New helper.
(component_ref_size): Add argument.  Rename locals.  Call
get_initializer_for instead of fold_ctor_reference.  Correct handling
of flexible array members.
* wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.

gcc/testsuite/ChangeLog:

PR middle-end/91679
PR middle-end/91647
PR middle-end/91463
PR middle-end/92312
* c-c++-common/Warray-bounds-2.c: Disable VRP.  Adjust expected messages.
* g++.dg/warn/Warray-bounds-8.C: Remove xfails.
* gcc.dg/Warray-bounds-48.c: New test.
* gcc.dg/Warray-bounds-49.c: New test.
* gcc.dg/Wstringop-overflow-16.c: Adjust text of expected messages.
* gcc.dg/Wstringop-overflow-21.c: New test.
* gcc.dg/Wzero-length-array-bounds.c: New test.
* gcc.dg/pr36902.c: Remove xfail.
* gcc.dg/strlenopt-57.c: Add an expected warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277728 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRISC-V: Build soft-float divide routines for -mno-fdiv.
wilson [Fri, 1 Nov 2019 20:35:12 +0000 (20:35 +0000)] 
RISC-V: Build soft-float divide routines for -mno-fdiv.

Using -mno-fdiv gives linker errors unless we build the missing divide
routines in libgcc always.  There is at least one university project
designing RISC-V parts without FP divide that wants to use the option.

libgcc/
* config/riscv/t-softfp32 (softfp_extra): Add FP divide routines

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277723 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix nodiscard test failures.
jason [Fri, 1 Nov 2019 20:12:30 +0000 (20:12 +0000)] 
Fix nodiscard test failures.

* g++.dg/cpp2a/nodiscard-once.C: Expect nodiscard warning.
* g++.dg/cpp2a/nodiscard-reason.C: Adjust expected warnings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277719 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 1 Nov 2019 16:59:06 +0000 (16:59 +0000)] 
2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>

* decl.c (match_byte_typespec): New function.  Match BYTE type-spec.
(gfc_match_decl_type_spec): Use it.

2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/byte_3.f: New test.
* gfortran.dg/byte_4.f90: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277715 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 1 Nov 2019 16:27:38 +0000 (16:27 +0000)] 
2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/90988
* decl.c (gfc_match_private, gfc_match_public): Fixed-form source code
does not require whitespace between PRIVATE (or PUBLIC) and an entity.

2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/90988
* gfortran.dg/pr90988_4.f: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277714 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/testsuite/ChangeLog:
msebor [Fri, 1 Nov 2019 15:42:25 +0000 (15:42 +0000)] 
gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Declare test functions
with noipa attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277711 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
linkw [Fri, 1 Nov 2019 14:08:50 +0000 (14:08 +0000)] 
2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>

  * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
  * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS, UNSPEC_VSX_CVSPUXDS): Remove.
  (vsx_xvcvspdp): New define_expand, old define_insn split to...
  (vsx_xvcvspdp_be): ... this.  New.  And...
  (vsx_xvcvspdp_le): ... this.  New.
  (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
  (vsx_xvcv<su>xwdp_be): ... this.  New.  And...
  (vsx_xvcv<su>xwdp_le): ... this.  New.
  (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
  (vsx_xvcvsp<su>xds_be): ... this.  New.  And...
  (vsx_xvcvsp<su>xds_le): ... this.  New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277709 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
linkw [Fri, 1 Nov 2019 13:17:48 +0000 (13:17 +0000)] 
2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>

  * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
  UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
  UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
  UNSPEC_VSX_XVCVSPSXWS): Remove.
  (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
  vsx_xvcv<su>xwsp): Update define_insn RTL patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277708 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[C++ PATCH] cleanup check_field_decls
nathan [Fri, 1 Nov 2019 12:59:25 +0000 (12:59 +0000)] 
[C++ PATCH] cleanup check_field_decls

https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00012.html
cp/
* class.c (check_field_decls): Refactor.

testsuite/
* g++.dg/template/fn.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277707 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
linkw [Fri, 1 Nov 2019 11:52:15 +0000 (11:52 +0000)] 
2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>

    * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
    (UNSPEC_VSX_XVCDPSP): Remove.
    * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
    Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277706 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoOpenMP] use_device_addr/use_device_ptr with Fortran allocatable/pointer arrays
burnus [Fri, 1 Nov 2019 07:59:23 +0000 (07:59 +0000)] 
OpenMP] use_device_addr/use_device_ptr with Fortran allocatable/pointer arrays

        gcc/fortran/
        * f95-lang.c (LANG_HOOKS_OMP_ARRAY_DATA): Set to gfc_omp_array_data.
        * trans-array.c (gfc_conv_descriptor_data_get): Handle also
        REFERENCE_TYPE.
        * trans-openmp.c (gfc_omp_array_data): New.
        * trans.h (gfc_omp_array_data): New prototype.

        gcc/
        * hooks.c (hook_tree_tree_bool_null): New.
        * hooks.h (hook_tree_tree_bool_null): Declare.
        * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
        (LANG_HOOKS_DECLS): Add it.
        * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
        * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
        (lower_omp_target): Handle Fortran array with descriptor in
        OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.

        libgomp/
        * testsuite/libgomp.fortran/use_device_addr-1.f90 (test_nullptr_1,
        test_dummy_opt_nullptr_callee_1): Add present but unallocated test.
        * testsuite/libgomp.fortran/use_device_addr-2.f90: Likewise.
        * testsuite/libgomp.fortran/use_device_addr-3.f90: New.
        * testsuite/libgomp.fortran/use_device_addr-4.f90: New.
        * testsuite/testsuite/libgomp.fortran/use_device_ptr-1.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277705 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-11-01 Kewen Lin <linkw@gcc.gnu.org>
linkw [Fri, 1 Nov 2019 07:11:12 +0000 (07:11 +0000)] 
2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>

  PR testsuite/92127
  * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Disable unroll.
  * gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277704 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Fri, 1 Nov 2019 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277703 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRegenerate libstdc++ HTML docs
redi [Thu, 31 Oct 2019 23:03:26 +0000 (23:03 +0000)] 
Regenerate libstdc++ HTML docs

* doc/html/*: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277699 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd remaining changes from P1065R2 "constexpr INVOKE"
redi [Thu, 31 Oct 2019 23:03:22 +0000 (23:03 +0000)] 
Add remaining changes from P1065R2 "constexpr INVOKE"

* include/bits/refwrap.h (reference_wrapper, ref, cref): Add constexpr
specifiers for C++20.
* include/std/functional (_Mem_fn, mem_fn, _Bind, _Bind_result, bind)
(bind_front, _Not_fn, not_fn): Likewise.
* testsuite/20_util/bind/constexpr.cc: New test.
* testsuite/20_util/function_objects/bind_front/constexpr.cc: New test.
* testsuite/20_util/function_objects/mem_fn/constexpr.cc: New test.
* testsuite/20_util/function_objects/not_fn/constexpr.cc: New test.
* testsuite/20_util/reference_wrapper/constexpr.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277698 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPartial implementation of C++20 of <ranges> header
redi [Thu, 31 Oct 2019 21:42:18 +0000 (21:42 +0000)] 
Partial implementation of C++20 of <ranges> header

* doc/doxygen/user.cfg.in: Add new header.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include new header.
* include/std/ranges: New header.
(ranges::sentinel_t, ranges::range_value_t, ranges::range_reference_t)
(ranges::range_rvalue_reference_t, ranges::sized_range)
(ranges::output_range, ranges::input_ranges, ranges::forward_range)
(ranges::bidirectional_range, ranges::random_access_range)
(ranges::contiguous_range, ranges::common::range): Define.
* testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Check
that disabled_sized_sentinel can be specialized.
* testsuite/std/ranges/access/begin.cc: Include <ranges> instead of
<iterator>.
* testsuite/std/ranges/access/cbegin.cc: Likewise.
* testsuite/std/ranges/access/cdata.cc: Likewise.
* testsuite/std/ranges/access/cend.cc: Likewise.
* testsuite/std/ranges/access/crbegin.cc: Likewise.
* testsuite/std/ranges/access/crend.cc: Likewise.
* testsuite/std/ranges/access/data.cc: Likewise.
* testsuite/std/ranges/access/empty.cc: Likewise.
* testsuite/std/ranges/access/end.cc: Likewise.
* testsuite/std/ranges/access/end_neg.cc: Likewise.
* testsuite/std/ranges/access/rbegin.cc: Likewise.
* testsuite/std/ranges/access/rend.cc: Likewise.
* testsuite/std/ranges/access/size.cc: Likewise.
* testsuite/std/ranges/access/size_neg.cc: Likewise.
* testsuite/std/ranges/headers/ranges/synopsis.cc: New test.
* testsuite/std/ranges/range.cc: New test.
* testsuite/std/ranges/refinements.cc: New test.
* testsuite/std/ranges/sized.cc: New test.
* testsuite/util/testsuite_iterators.h: Add aliases for range types.
(output_iterator_wrapper::WritableObject::operator=): Add const
qualifier so that output_iterator_wrapper satisfies writable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277697 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoTest --help=common for full sentences
aoliva [Thu, 31 Oct 2019 17:47:29 +0000 (17:47 +0000)] 
Test --help=common for full sentences

The portion of help.exp that checks that help output contains full
sentences failed to cover common options.

for  gcc/testsuite/ChangeLog

* gcc.misc-tests/help.exp: Test --help=common for full sentences.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277686 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR preprocessor/92296
jakub [Thu, 31 Oct 2019 17:38:44 +0000 (17:38 +0000)] 
PR preprocessor/92296
* internal.h (struct def_pragma_macro): Add is_builtin bitfield.
(_cpp_restore_special_builtin): Declare.
* init.c (_cpp_restore_special_builtin): New function.
* directives.c (do_pragma_push_macro): For NT_BUILTIN_MACRO
set is_builtin and don't try to grab definition.
(cpp_pop_definition): Use _cpp_restore_special_builtin to restore
builtin macros.

* c-c++-common/cpp/pr92296-1.c: New test.
* c-c++-common/cpp/pr92296-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277685 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-10-31 Jozef Lawrynowicz <jozef.l@mittosystems.com>
jozefl [Thu, 31 Oct 2019 17:36:53 +0000 (17:36 +0000)] 
2019-10-31  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* gcc.target/msp430/devices-main.c: Move to devices subdirectory.
* gcc.target/msp430/devices/bad-devices-1.c: Update #include path to
devices-main.c.
* gcc.target/msp430/devices/bad-devices-2.c: Likewise.
* gcc.target/msp430/devices/bad-devices-3.c: Likewise.
* gcc.target/msp430/devices/bad-devices-4.c: Likewise.
* gcc.target/msp430/devices/bad-devices-5.c: Likewise.
* gcc.target/msp430/devices/bad-devices-6.c: Likewise.
* gcc.target/msp430/devices/csv-device-order.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_00.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_01.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_02.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_04.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_08.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_10.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_11.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_12.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_14.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_18.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_20.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_21.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_22.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_24.c: Likewise.
* gcc.target/msp430/devices/csv-msp430_28.c: Likewise.
* gcc.target/msp430/devices/csv-msp430fr5969.c: Likewise.
* gcc.target/msp430/devices/hard-cc430f5123.c: Likewise.
* gcc.target/msp430/devices/hard-foo.c: Likewise.
* gcc.target/msp430/devices/hard-msp430afe253.c: Likewise.
* gcc.target/msp430/devices/hard-msp430cg4616.c: Likewise.
* gcc.target/msp430/devices/hard-msp430f4783.c: Likewise.
* gcc.target/msp430/devices/hard-rf430frl154h_rom.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277684 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Fix g++.target/aarch64/sve/vcond_1_run.C
rsandifo [Thu, 31 Oct 2019 17:29:28 +0000 (17:29 +0000)] 
[AArch64] Fix g++.target/aarch64/sve/vcond_1_run.C

This had been failing since a mass renaming.  Noticed it a few times
before but somehow never got around to fixing it.

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

gcc/testsuite/
* g++.target/aarch64/sve/vcond_1_run.C: Update test name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277683 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Split gcc.target/aarch64/sve/vcond_4*
rsandifo [Thu, 31 Oct 2019 17:27:02 +0000 (17:27 +0000)] 
[AArch64] Split gcc.target/aarch64/sve/vcond_4*

vcond_4.c combined too much stuff into one test, so that when we needed
to add XFAILs for one set of routines, we lost testing of others that
used the same instructions.  This patch splits it into four:

vcond_4.c:
  The main test for selects between a vector and a scalar, with all
  elements having the same size.

  After Prathamesh's fix for PR91272, we are now guaranteed to use the
  conditionally-loaded vector as the "then" value and the scalar as the
  "else" value.

vcond_4_zero.c:
  Like vcond_4.c, but comparing with zero.

vcond_4_sel.c:
  Tests for selects between two scalars, with all elements having
  the same size.  The optimisers can legitimately switch the "then"
  and "else" order and adjust the comparison to match.

vcond_4_costly.c:
  Like vcnod_4.c, but with mixed element sizes.  The sequences tested
  here will not be the preferred ones once we support mixtures of vector
  sizes, but it still tests an important code path.

This means that vcond_4_run.c now only tests what's left in vcond_4.c,
but that seems OK, since the main point was to ensure correct exception
behaviour.

Similarly it means that vcond_5.c only tests what's left in vcond_4.c,
but that too is OK, since the point of the test was to compare the
default handling of each comparison in vcond_4.c with the
-fno-trapping-math equivalent.

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

gcc/testsuite/
* gcc.target/aarch64/sve/vcond_4.c: Split parts out into...
* gcc.target/aarch64/sve/vcond_4_costly.c,
* gcc.target/aarch64/sve/vcond_4_sel.c,
* gcc.target/aarch64/sve/vcond_4_zero.c: ...these new tests.
* gcc.target/aarch64/sve/vcond_4_run.c: Adjust accordingly.
* gcc.target/aarch64/sve/vcond_5.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277682 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Split gcc.target/aarch64/sve/reduc_strict_3.c
rsandifo [Thu, 31 Oct 2019 17:21:11 +0000 (17:21 +0000)] 
[AArch64] Split gcc.target/aarch64/sve/reduc_strict_3.c

This patch splits gcc.target/aarch64/sve/reduc_strict_3.c into one
test per function, so that it's easier to see what each scan is
matching and also so that we no longer rely on the number of times
that each dump message is printed.

The patch also generalises the tests to work with scalable vectors.
I think the test probably predates support for variable-length
loop-aware SLP.

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

gcc/testsuite/
* gcc.target/aarch64/sve/reduc_strict_3.c: Split all but the
first function out into...
* gcc.target/aarch64/sve/reduc_strict_4.c,
* gcc.target/aarch64/sve/reduc_strict_5.c,
* gcc.target/aarch64/sve/reduc_strict_6.c,
* gcc.target/aarch64/sve/reduc_strict_7.c,
* gcc.target/aarch64/sve/reduc_strict_8.c,
* gcc.target/aarch64/sve/reduc_strict_9.c: ...these new tests.
Test for scalable vectors instead of 256-bit vectors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277681 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[AArch64] Fix build for non-default languages
rsandifo [Thu, 31 Oct 2019 17:16:31 +0000 (17:16 +0000)] 
[AArch64] Fix build for non-default languages

The SVE PCS support broke go, D and Ada because those languages don't
call TARGET_INIT_BUILTINS.  We therefore ended up trying to get the
TYPE_MAIN_VARIANT of a null __SVBool_t.

We shouldn't really need to apply TYPE_MAIN_VARIANT there anyway,
since the ABI-defined types are (and need to be) their own main
variants.  This patch asserts for that instead.

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

gcc/
* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
Assert that the type we store in abi_vector_types is its own
main variant.
(svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277680 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR fortran/92284
jakub [Thu, 31 Oct 2019 16:37:55 +0000 (16:37 +0000)] 
PR fortran/92284
* gfortran.dg/bind_c_array_params_3_aux.c: Include
../../../libgfortran/ISO_Fortran_binding.h rather than
ISO_Fortran_binding.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277679 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoEnsure that gfortran.dg/achar_2.f90 can fail
burnus [Thu, 31 Oct 2019 16:09:49 +0000 (16:09 +0000)] 
Ensure that gfortran.dg/achar_2.f90 can fail

        * gfortran.dg/achar_2.f90: Remove bogus line from
        last commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277678 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[arm] Avoid using negative offsets for 'immediate' addresses when compiling for Thumb2
rearnsha [Thu, 31 Oct 2019 16:07:09 +0000 (16:07 +0000)] 
[arm] Avoid using negative offsets for 'immediate' addresses when compiling for Thumb2

Thumb2 code now uses the Arm implementation of legitimize_address.
That code has a case to handle addresses that are absolute CONST_INT
values, which is a common use case in deeply embedded targets (eg:
void *p = (void*)0x12345678).  Since thumb has very limited negative
offsets from a constant, we want to avoid forming a CSE base that will
then be used with a negative value.

This was reported upstream originally in
https://gcc.gnu.org/ml/gcc-help/2019-10/msg00122.html

For example,

void test1(void) {
  volatile uint32_t * const p = (uint32_t *) 0x43fe1800;

  p[3] = 1;
  p[4] = 2;
  p[1] = 3;
  p[7] = 4;
  p[0] = 6;
}

With the new code, instead of

        ldr     r3, .L2
        subw    r2, r3, #2035
        movs    r1, #1
        str     r1, [r2]
        subw    r2, r3, #2031
        movs    r1, #2
        str     r1, [r2]
        subw    r2, r3, #2043
        movs    r1, #3
        str     r1, [r2]
        subw    r2, r3, #2019
        movs    r1, #4
        subw    r3, r3, #2047
        str     r1, [r2]
        movs    r2, #6
        str     r2, [r3]
        bx      lr

We now get

        ldr     r3, .L2
        movs    r2, #1
        str     r2, [r3, #2060]
        movs    r2, #2
        str     r2, [r3, #2064]
        movs    r2, #3
        str     r2, [r3, #2052]
        movs    r2, #4
        str     r2, [r3, #2076]
        movs    r2, #6
        str     r2, [r3, #2048]
        bx      lr

* config/arm/arm.c (arm_legitimize_address): Don't form negative
offsets from a CONST_INT address when TARGET_THUMB2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277677 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[arm] Pattern match insns for a + ~b + Carry
rearnsha [Thu, 31 Oct 2019 16:04:53 +0000 (16:04 +0000)] 
[arm] Pattern match insns for a + ~b + Carry

On ARM, the SBC instruction is defined as

  Ra - Rb - ~C

where C is the carry flag.  But -Rb = ~Rb + 1, so this is equivalent to

  Ra + ~Rb + 1 - ~C

which then simplifies to

  Ra + ~Rb + C

which is essentially an add-with-carry with one operand inverted.  We
can define RTL patterns to match this.  In thumb2 we can only match
when the operands are both registers, but in Arm state we can also use
RSC to match when Rn is either a constant or a shifted operand.

This overall simplifies some cases of 64-bit arithmetic, for example,

int64_t f (int64_t a, int64_t b) { return a + ~b; }

will now compile to

  MVN  R2, R2
  ADDS R0, R0, R2
  SBC  R1, R1, R3

* config/arm/arm.md (add_not_cin): New insn.
(add_not_shift_cin): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277676 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove dead code in IPA ICF.
marxin [Thu, 31 Oct 2019 15:58:06 +0000 (15:58 +0000)] 
Remove dead code in IPA ICF.

2019-10-31  Martin Liska  <mliska@suse.cz>

* ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
* ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
and compare_memory_operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277675 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoEnsure that gfortran.dg/achar_2.f90 can fail
burnus [Thu, 31 Oct 2019 15:56:42 +0000 (15:56 +0000)] 
Ensure that gfortran.dg/achar_2.f90 can fail

        * gfortran.dg/achar_2.f90: Print 'DONE' and add dg-output.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277674 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoImprove tests for std::add_pointer
redi [Thu, 31 Oct 2019 14:07:11 +0000 (14:07 +0000)] 
Improve tests for std::add_pointer

The type trait depends on is_void so the tests should check those cases.

* testsuite/20_util/add_pointer/value.cc: Check void types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277672 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove PR 92268 workaround and fix new test failures
redi [Thu, 31 Oct 2019 13:17:48 +0000 (13:17 +0000)] 
Remove PR 92268 workaround and fix new test failures

With the compiler bug fixed we can simplify the __sizable concept to use
a return-type-requirement again. I also realised it was redundantly
re-checking a subset of the sized_sentinel_for requirements.

The compiler fix also revealed bugs in two tests which started to fail
and are fixed by this patch.

* include/bits/range_access.h (__sizable): Rename to __sentinel_size.
Remove workaround for PR c++/92268 and remove redundant requirements
that are already checked by sized_sentinel_for.
* testsuite/std/ranges/access/cend.cc: Fix failures.
* testsuite/std/ranges/access/end.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277667 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix handling of arrays in range access customization points
redi [Thu, 31 Oct 2019 13:17:42 +0000 (13:17 +0000)] 
Fix handling of arrays in range access customization points

This combines the overloads for arrays with the non-array overloads,
using if-constexpr to choose between the cases, and also enforces the
following:

- ADL should only be used for class types and enumeration types.
- ranges::begin should be ill-formed for rvalue arrays.
- ranges::end should be ill-formed for rvalue arrays, unbounded
  arrays, and arrays of incomplete type.
- ranges::size should be ill-formed for unbounded arrays.

* include/bits/range_access.h (ranges::begin): Combine array and
non-array overloads into one function template. Only use ADL for
classes and enums
(ranges::end, ranges::size): Likewise. Make unbounded arrays
ill-formed.
(ranges::rbegin, ranges::rend): Only use ADL for classes and enums.
Reformat _S_noexcept() functions to mirror operator() structure.
* testsuite/std/ranges/access/begin.cc: Check incomplete array.
* testsuite/std/ranges/access/end_neg.cc: New test.
* testsuite/std/ranges/access/size.cc: Check array of incomplete type.
* testsuite/std/ranges/access/size_neg.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277666 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite] Fix wrong order of dg-additional-options
avieira [Thu, 31 Oct 2019 10:54:44 +0000 (10:54 +0000)] 
[testsuite] Fix wrong order of dg-additional-options

gcc/testsuite/ChangeLog:
2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/aarch64/sve/reduc_strict_3.c: Fix option order.
* gcc.target/i386/avx-vzeroupper-19.c: Likewise.
* gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise.
* gcc.target/i386/avx512f-gather-2.c: Likewise.
* gcc.target/i386/avx512f-gather-5.c: Likewise.
* gcc.target/i386/l_fma_double_1.c: Likewise.
* gcc.target/i386/l_fma_double_2.c: Likewise.
* gcc.target/i386/l_fma_double_3.c: Likewise.
* gcc.target/i386/l_fma_double_4.c: Likewise.
* gcc.target/i386/l_fma_double_5.c: Likewise.
* gcc.target/i386/l_fma_double_6.c: Likewise.
* gcc.target/i386/l_fma_float_1.c: Likewise.
* gcc.target/i386/l_fma_float_2.c: Likewise.
* gcc.target/i386/l_fma_float_3.c: Likewise.
* gcc.target/i386/l_fma_float_4.c: Likewise.
* gcc.target/i386/l_fma_float_5.c: Likewise.
* gcc.target/i386/l_fma_float_6.c: Likewise.
* gcc.target/i386/mask-pack.c: Likewise.
* gcc.target/i386/mask-unpack.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277664 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR92284 – gfc_desc_to_cfi_desc fixes
burnus [Thu, 31 Oct 2019 10:12:55 +0000 (10:12 +0000)] 
Fortran] PR92284 – gfc_desc_to_cfi_desc fixes

        gcc/fortran/
        PR fortran/92284.
        * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Free CFI descriptor
        at the end; partial revised revert of Rev. 277502.

        libgfortran/
        PR fortran/92284.
        * runtime/ISO_Fortran_binding.c (gfc_desc_to_cfi_desc):

        gcc/testsuite/
        PR fortran/92284.
        * gfortran.dg/bind-c-intent-out.f90: Update expected dump;
        extend comment.
        * gfortran.dg/bind_c_array_params_3.f90: New.
        * gfortran.dg/bind_c_array_params_3_aux.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277663 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * configure.ac: Compute and substitute omp_device_properties and
jakub [Thu, 31 Oct 2019 10:09:43 +0000 (10:09 +0000)] 
* configure.ac: Compute and substitute omp_device_properties and
omp_device_property_deps.
* Makefile.in (generated_files): Add omp-device-properties.h.
(omp-general.o): Depend on omp-device-properties.h.
(omp_device_properties): New make variable.
(omp-device-properties.h, s-omp-device-properties-h,
install-omp-device-properties): New goals.
(install): Depend on install-omp-device-properties for accelerators.
* target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
* target.h (enum omp_device_kind_arch_isa): New enum.
* doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
documentation.
* omp-general.c: Include omp-device-properties.h.
(omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
colon instead of comma.
(omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
functions.
(omp_context_selector_matches): Implement device set arch/isa
selectors, improve device set kind selector handling.
* config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
* config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
TARGET_SIMD_CLONE_USABLE): Formatting fix.
(TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
ix86_omp_device_kind_arch_isa.
* config/i386/i386-options.c (struct ix86_target_opts): Move type
definition from ix86_target_string to file scope.
(isa2_opts, isa_opts): Moved arrays from ix86_target_string function
to file scope.
(ix86_omp_device_kind_arch_isa): New function.
(ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
isa_opts definitions to file scope.
* config/i386/t-intelmic (omp-device-properties): New goal.
* config/nvptx/t-nvptx (omp-device-properties): Likewise.
* config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
(TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
nvptx_omp_device_kind_arch_isa.
* configure: Regenerate.
* doc/tm.texi: Regenerate.
testsuite/
* c-c++-common/gomp/declare-variant-9.c: New test.
* c-c++-common/gomp/declare-variant-10.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277662 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR92277 - Fix assumed-rank array with bind(C)
burnus [Thu, 31 Oct 2019 10:06:19 +0000 (10:06 +0000)] 
Fortran] PR92277 - Fix assumed-rank array with bind(C)

        gcc/fortran/
        PR fortran/92277
        * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL
        checking.

        gcc/testsuite/
        PR fortran/92277
        * fortran.dg/pr92277.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277661 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR middle-end/92231
jakub [Thu, 31 Oct 2019 10:04:47 +0000 (10:04 +0000)] 
PR middle-end/92231
* tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
DECL_BUILT_IN in comment.  Remove redundant ()s around return
argument.
* tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
before calling fndecl_built_in_p.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
fndecl_built_in_p on it.
lto/
* lto-lang.c (handle_const_attribute): Don't call fndecl_built_in_p
on *node that is not FUNCTION_DECL.
testsuite/
* gcc.c-torture/compile/pr92231.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277660 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[vect]Make vect-epilogues-nomask=1 default
avieira [Thu, 31 Oct 2019 09:49:47 +0000 (09:49 +0000)] 
[vect]Make vect-epilogues-nomask=1 default

This patch turns epilogue vectorization on by default for all targets.  The
following test strategy was chosen for this:

1) Disable epilogue vectorization for all tests that failed due to
scan-tree-dump failures for aarch64, arm and x86_64 inside:
  - gcc.dg/vect
  - gcc.target/i386
  - gcc.target/aarch6
  - gfortran.dg/vect

2) Add the Bugzilla's reported testcase but xfail the scan for
"EPILOGUE VECTORIZED" for arm*-*-* as that target does not vectorize the
epilogue.

gcc/ChangeLog:
2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.

gcc/testsuite/ChangeLog:
2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.dg/vect/vect-epilogues.c: New test.
* gcc.dg/vect/fast-math-vect-call-1.c: Disable for epilogue
vectorization.
* gcc.dg/vect/no-fast-math-vect16.c: Likewise.
* gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise.
* gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-31.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-64.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-68.c: Likewise.
* gcc.dg/vect/no-vfa-vect-dv-2.c: Likewise.
* gcc.dg/vect/pr33804.c: Likewise.
* gcc.dg/vect/pr53773.c: Likewise.
* gcc.dg/vect/pr65947-1.c: Likewise.
* gcc.dg/vect/pr65947-13.c: Likewise.
* gcc.dg/vect/pr65947-14.c: Likewise.
* gcc.dg/vect/pr65947-4.c: Likewise.
* gcc.dg/vect/pr80631-1.c: Likewise.
* gcc.dg/vect/pr80631-2.c: Likewise.
* gcc.dg/vect/slp-23.c: Likewise.
* gcc.dg/vect/slp-25.c: Likewise.
* gcc.dg/vect/slp-reduc-2.c: Likewise.
* gcc.dg/vect/slp-reduc-5.c: Likewise.
* gcc.dg/vect/slp-reduc-6.c: Likewise.
* gcc.dg/vect/slp-reduc-sad-2.c: Likewise.
* gcc.dg/vect/slp-widen-mult-half.c: Likewise.
* gcc.dg/vect/trapv-vect-reduc-4.c: Likewise.
* gcc.dg/vect/vect-103.c: Likewise.
* gcc.dg/vect/vect-109.c: Likewise.
* gcc.dg/vect/vect-119.c: Likewise.
* gcc.dg/vect/vect-24.c: Likewise.
* gcc.dg/vect/vect-26.c: Likewise.
* gcc.dg/vect/vect-27.c: Likewise.
* gcc.dg/vect/vect-29.c: Likewise.
* gcc.dg/vect/vect-42.c: Likewise.
* gcc.dg/vect/vect-44.c: Likewise.
* gcc.dg/vect/vect-48.c: Likewise.
* gcc.dg/vect/vect-50.c: Likewise.
* gcc.dg/vect/vect-52.c: Likewise.
* gcc.dg/vect/vect-54.c: Likewise.
* gcc.dg/vect/vect-56.c: Likewise.
* gcc.dg/vect/vect-58.c: Likewise.
* gcc.dg/vect/vect-60.c: Likewise.
* gcc.dg/vect/vect-72.c: Likewise.
* gcc.dg/vect/vect-75-big-array.c: Likewise.
* gcc.dg/vect/vect-75.c: Likewise.
* gcc.dg/vect/vect-77-alignchecks.c: Likewise.
* gcc.dg/vect/vect-77-global.c: Likewise.
* gcc.dg/vect/vect-78-alignchecks.c: Likewise.
* gcc.dg/vect/vect-78-global.c: Likewise.
* gcc.dg/vect/vect-89-big-array.c: Likewise.
* gcc.dg/vect/vect-89.c: Likewise.
* gcc.dg/vect/vect-91.c: Likewise.
* gcc.dg/vect/vect-92.c: Likewise.
* gcc.dg/vect/vect-96.c: Likewise.
* gcc.dg/vect/vect-cond-reduc-3.c: Likewise.
* gcc.dg/vect/vect-cond-reduc-4.c: Likewise.
* gcc.dg/vect/vect-live-1.c: Likewise.
* gcc.dg/vect/vect-live-2.c: Likewise.
* gcc.dg/vect/vect-live-3.c: Likewise.
* gcc.dg/vect/vect-live-4.c: Likewise.
* gcc.dg/vect/vect-live-slp-1.c: Likewise.
* gcc.dg/vect/vect-live-slp-2.c: Likewise.
* gcc.dg/vect/vect-live-slp-3.c: Likewise.
* gcc.dg/vect/vect-multitypes-3.c: Likewise.
* gcc.dg/vect/vect-multitypes-4.c: Likewise.
* gcc.dg/vect/vect-multitypes-6.c: Likewise.
* gcc.dg/vect/vect-peel-1-epilogue.c: Likewise. New test.
* gcc.dg/vect/vect-peel-1-src.c: Likewise. New test.
* gcc.dg/vect/vect-peel-1.c: Likewise.
* gcc.dg/vect/vect-peel-3-epilogue.c: Likewise. New test.
* gcc.dg/vect/vect-peel-3-src.c: Likewise. New test.
* gcc.dg/vect/vect-peel-3.c: Likewise.
* gcc.dg/vect/vect-peel-4-epilogue.c: Likewise. New test.
* gcc.dg/vect/vect-peel-4-src.c: Likewise. New test.
* gcc.dg/vect/vect-peel-4.c: Likewise.
* gcc.dg/vect/vect-reduc-6.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-s16a.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-s8a.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-u16b.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise.
* gcc.dg/vect/vect-reduc-pattern-1a.c: Likewise.
* gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Likewise.
* gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Likewise.
* gcc.dg/vect/vect-reduc-pattern-2a.c: Likewise.
* gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Likewise.
* gcc.dg/vect/vect-reduc-sad.c: Likewise.
* gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise.
* gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise.
* gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise.
* gcc.dg/vect/vect-widen-mult-half.c: Likewise.
* gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
* gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: Likewise.
* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
* gcc.target/aarch64/sve/reduc_strict_3.c: Likewise.
* gcc.target/i386/avx-vzeroupper-19.c: Likewise.
* gcc.target/i386/avx2-vect-mask-store-move1.c: Likewise.
* gcc.target/i386/avx512f-gather-2.c: Likewise.
* gcc.target/i386/avx512f-gather-5.c: Likewise.
* gcc.target/i386/l_fma_double_1.c: Likewise.
* gcc.target/i386/l_fma_double_2.c: Likewise.
* gcc.target/i386/l_fma_double_3.c: Likewise.
* gcc.target/i386/l_fma_double_4.c: Likewise.
* gcc.target/i386/l_fma_double_5.c: Likewise.
* gcc.target/i386/l_fma_double_6.c: Likewise.
* gcc.target/i386/l_fma_float_1.c: Likewise.
* gcc.target/i386/l_fma_float_2.c: Likewise.
* gcc.target/i386/l_fma_float_3.c: Likewise.
* gcc.target/i386/l_fma_float_4.c: Likewise.
* gcc.target/i386/l_fma_float_5.c: Likewise.
* gcc.target/i386/l_fma_float_6.c: Likewise.
* gcc.target/i386/mask-pack.c: Likewise.
* gcc.target/i386/mask-unpack.c: Likewise.
* gfortran.dg/vect/vect-4.f90: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277659 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCheck precondition for std::ssize(const Container&)
redi [Thu, 31 Oct 2019 09:39:48 +0000 (09:39 +0000)] 
Check precondition for std::ssize(const Container&)

This precondition is the subject of a national body comment on the C++20
CD. This just adds a test to ensure we enforce the precondition.

Also move existing 24_iterator/range_access*.cc tests to a dedicated
directory for the [iterator.range] subclause.

* testsuite/24_iterators/range_access*.cc: Move to ...
* testsuite/24_iterators/range_access/range_access*.cc: ... here.
* testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: New
test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277658 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove missing usage of cgraph_local_info in arm,bfin and c6x.
marxin [Thu, 31 Oct 2019 08:52:31 +0000 (08:52 +0000)] 
Remove missing usage of cgraph_local_info in arm,bfin and c6x.

2019-10-31  Martin Liska  <mliska@suse.cz>

* config/arm/arm.c (arm_get_pcs_model): Remove usage
of cgraph_local_info and use local_info_node instead.
* config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
(bfin_function_ok_for_sibcall): Likewise.
* config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
(must_reload_pic_reg_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277657 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/90947
jakub [Thu, 31 Oct 2019 07:10:57 +0000 (07:10 +0000)] 
PR c++/90947
* tree.h (type_initializer_zero_p): Remove.
* tree.c (type_initializer_zero_p): Remove.
cp/
* cp-tree.h (type_initializer_zero_p): Declare.
* decl.c (reshape_init_array_1): Formatting fix.
* tree.c (type_initializer_zero_p): New function.  Moved from
../tree.c, use next_initializable_field, formatting fix.  Return
false for TYPE_NON_AGGREGATE_CLASS types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277656 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c++/84810 - constraints on lambdas
jason [Thu, 31 Oct 2019 02:31:48 +0000 (02:31 +0000)] 
PR c++/84810 - constraints on lambdas

Attached is a patch that adds parsing of the optional requires-clause in a
lambda-expression and lambda-declarator. Additionally, shorthand constraints
from the template-parameter-list are now actually applied and constrain the
synthesized operator().

Previously we were not parsing the requires clauses at all and not saving
the shorthand constraints in the place expected by grokfndecl.

The trailing requires-clause is now also used to suppress synthesis of the
conversion to function pointer for non-capturing non-generic lambdas as per
expr.prim.lambda.closure/7.

This includes a fix to template_class_depth. Previously it was computing the
wrong depth for lambdas in the initializer of a static member of a class
template, exhibited by the concepts-lambda4 test which currently fails on
trunk. The bug was causing grokfndecl to use the constraints from the
template class for the lambda.

gcc/cp/
2019-10-30  Jeff Chapman II  <jchapman@lock3software.com>

PR c++/84810 - constraints on lambdas
* lambda.c (maybe_add_lambda_conv_op): Do not synthesize
conversion if the call operator does not satisfy its constraints.
* parser.c (cp_parser_lambda_declarator_opt): Parse
requires-clause on generic lambdas; combine with shorthand
constraints. Parse trailing requires-clause and attach to the
synthesized call operator.
* pt.c (template_class_depth): Only inspect
LAMBDA_TYPE_EXTRA_SCOPE if it is present. This fixes an
incorrect depth calculation for lambdas inside the initializer
of a static data member of a template class.

gcc/testsuite/
2019-10-30  Jeff Chapman II  <jchapman@lock3software.com>

PR c++/84810 - constraints on lambdas
* g++.dg/cpp2a/concepts-lambda2.C: New test.
* g++.dg/cpp2a/concepts-lambda3.C: Ditto.
* g++.dg/cpp2a/concepts-lambda4.C: Ditto.
* g++.dg/cpp2a/concepts-pr84810.C: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277655 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/92268 - hard error satisfying return-type-requirement
jason [Thu, 31 Oct 2019 02:01:16 +0000 (02:01 +0000)] 
PR c++/92268 - hard error satisfying return-type-requirement

Previously we would put the template arguments for the concept-check in a
TEMPLATE_ID and then also pass them to constraints_satisfied_p, which meant
that we would try to normalize the concept-check with the fully instantiated
arguments, leading to sadness.  Simply not passing the args to
constraints_satisfied_p fixes the problem.

I also noticed that we weren't detecting substitution failure in the
constraints, but were silently treating it as success.

* constraint.cc (type_deducible_p): Check for substitution failure.
(diagnose_compound_requirement): Adjust diagnostic.
* pt.c (do_auto_deduction): Don't pass cargs to
constraints_satisfied_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277654 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Thu, 31 Oct 2019 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277653 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/91369 - Implement P0784R7: constexpr new
jakub [Wed, 30 Oct 2019 21:55:12 +0000 (21:55 +0000)] 
PR c++/91369 - Implement P0784R7: constexpr new
* constexpr.c (cxx_replaceable_global_alloc_fn): Don't return true
for placement new.
(cxx_placement_new_fn, is_std_construct_at): New functions.
(cxx_eval_call_expression): Allow placement new in std::construct_at.
(potential_constant_expression_1): Likewise.

* g++.dg/cpp2a/constexpr-new5.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277649 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * typeck.c (decl_in_std_namespace_p): Return true also for decls
jakub [Wed, 30 Oct 2019 21:53:37 +0000 (21:53 +0000)] 
* typeck.c (decl_in_std_namespace_p): Return true also for decls
in inline namespaces inside of std namespace.

* g++.dg/cpp0x/Wpessimizing-move6.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277648 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 30 Oct 2019 20:29:21 +0000 (20:29 +0000)] 
2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi (-Wshadow, -Wshadow=global
        -Wshadow=local, -Wshadow=compatible-local): Update documentation.

cp:
2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/92024
        * name-lookup.c (check_local_shadow): Shadowing TYPE_DECLs
        is always a -Wshadow=compatible-local warning, unless
        -Wshadow is used.

testsuite:
2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/92024
        * g++.dg/parse/crash70.C: New test.
        * c-c++-common/Wshadow-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277643 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFortran] PR 92208 don't use function-result dummy variable as actual argument
burnus [Wed, 30 Oct 2019 20:01:36 +0000 (20:01 +0000)] 
Fortran] PR 92208 don't use function-result dummy variable as actual argument

        PR fortran/92208
        * trans-array.c (gfc_conv_array_parameter): Only copy
        string-length backend_decl if expression is not a function.

        PR fortran/92208
        * gfortran.dg/pr92208.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277639 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * cxx-pretty-print.c (get_fold_operator): Use OVL_OP_INFO.
jason [Wed, 30 Oct 2019 19:34:20 +0000 (19:34 +0000)] 
* cxx-pretty-print.c (get_fold_operator): Use OVL_OP_INFO.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277637 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/92134 - constinit malfunction in static data member.
mpolacek [Wed, 30 Oct 2019 18:49:59 +0000 (18:49 +0000)] 
PR c++/92134 - constinit malfunction in static data member.

I wasn't properly setting LOOKUP_CONSTINIT in grokfield and so we didn't
detect a non-const initializer.

* decl2.c (grokfield): Set LOOKUP_CONSTINIT.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277636 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUse if-constexpr instead of overloading for customization point
redi [Wed, 30 Oct 2019 17:42:04 +0000 (17:42 +0000)] 
Use if-constexpr instead of overloading for customization point

This combines two of the std::ranges::swap.operator() overloads into a
single function template. Using if-constexpr to choose between
implementations should give the compiler less work to do than using
overloading.

* include/std/concepts (std::ranges::swap): Use a single overload for
the non-array cases, and switch using if-constexpr.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277635 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix another compilation error with Clang
redi [Wed, 30 Oct 2019 16:57:19 +0000 (16:57 +0000)] 
Fix another compilation error with Clang

* include/bits/stl_iterator.h (__normal_iterator::iterator_concept):
Guard with __cpp_lib_concepts macro.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@277634 138bc75d-0d04-0410-961f-82ee72b054a4