1. 04 Nov, 2019 22 commits
    • ipa-inline-transform.c: Include ipa-utils.h · 2bc2379b
      
      	* 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.
      
      From-SVN: r277789
      Jan Hubicka committed
    • SLP: Initialize variable to fix bootstrap after r277784. · 0ec77a6c
      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.
      
      From-SVN: r277788
      Tamar Christina committed
    • re PR testsuite/92302 (gcc.target/sparc/sparc-ret-3.c FAILs) · 57d4aea2
      	PR testsuite/92302
      	* gcc.target/sparc/sparc-ret-3.c: Accept more registers in address.
      
      From-SVN: r277787
      Eric Botcazou committed
    • PR tree-optimization/92349 - ICE in -Warray-bounds of a VLA member · 2f967bc4
      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.
      
      From-SVN: r277786
      Martin Sebor committed
    • [vect] Clean up orig_loop_vinfo from vect_analyze_loop · 494d6c28
      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.
      
      From-SVN: r277785
      Andre Vieira committed
    • [SLP] SLP vectorization: vectorize vector constructors · 818b3293
      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.
      
      From-SVN: r277784
      Joel Hutton committed
    • re PR tree-optimization/92345 (ICE in vec<_stmt_vec_info*, va_heap,… · a6ba6237
      re PR tree-optimization/92345 (ICE in vec<_stmt_vec_info*, va_heap, vl_embed>::space (vect_get_and_check_slp_defs))
      
      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.
      
      From-SVN: r277782
      Richard Biener committed
    • cgraphclones.c (cgraph_node::create_version_clone): Do not duplicate summaries. · 7237f93e
      
      	* 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.
      
      From-SVN: r277780
      Jan Hubicka committed
    • system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO. · 6fb34954
      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.
      
      From-SVN: r277779
      Richard Biener committed
    • * ggc-common.c: Include system.h before malloc.h. · 253f29f1
      From-SVN: r277778
      David Edelsohn committed
    • pass --enable-obsolete down to gcc/configure for auto-build.h · 499d66aa
      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.
      
      From-SVN: r277777
      Alexandre Oliva committed
    • libgomp - remove dg-run if dg-options O2 is used · d8f03b03
      	* 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.
      
      From-SVN: r277776
      Tobias Burnus committed
    • libgcc: Fix incorrect use of USE_TM_CLONE_REGISTRY · 62ec242e
      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.
      
      From-SVN: r277775
      Jozef Lawrynowicz committed
    • MSP430: Add -mtiny-printf option · 02afb6a9
      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.
      
      From-SVN: r277774
      Jozef Lawrynowicz committed
    • Regenerate gcc/configure · e0f8e3da
      From-SVN: r277773
      Jozef Lawrynowicz committed
    • MSP430: Add new methods of finding external MCU data file · d7eabfd4
      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.
      
      From-SVN: r277772
      Jozef Lawrynowicz committed
    • re PR bootstrap/92301 (Wrong vectorizer code since r277566) · b76f4e6c
      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.
      
      From-SVN: r277771
      Richard Biener committed
    • libgomp/testsuite - use unique numbers with Fortran's 'stop' · 12fd2ec5
              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.
      
      From-SVN: r277769
      Tobias Burnus committed
    • Fix hash_operand for fields of a CONSTRUCTOR. · 2323aa04
      2019-11-04  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/92304
      	* fold-const.c (operand_compare::hash_operand): Fix field
      	hashing of CONSTRUCTOR.
      
      From-SVN: r277768
      Martin Liska committed
    • Come up with ggc_delete. · ddf628e4
      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.
      
      From-SVN: r277767
      Martin Liska committed
    • re PR fortran/92113 (r276673 causes segfault in gfortran.dg/pr51434.f90) · cedaa3f6
      2019-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92113
          * ChangeLog: Fix PR number
      
      From-SVN: r277766
      Thomas Koenig committed
    • Daily bump. · e10ed125
      From-SVN: r277764
      GCC Administrator committed
  2. 03 Nov, 2019 10 commits
    • re PR fortran/92113 (r276673 causes segfault in gfortran.dg/pr51434.f90) · b8dd4aa1
      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.
      
      From-SVN: r277760
      Thomas Koenig committed
    • Improve effectivity of ipa_polymorphi_context cache. · 40a777e8
              * 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.
      
      From-SVN: r277759
      Jan Hubicka committed
    • PR c++/88565 - enhance -Warray-bounds for C++ trailing class member arrays · 4bcd578a
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/warn/Warray-bounds-9.C: New test.
      
      From-SVN: r277758
      Martin Sebor committed
    • ipa-fnsummary.c (ipa_call_context::duplicate_from): New member function. · ac6f2e59
      	* 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.
      
      From-SVN: r277757
      Jan Hubicka committed
    • ipa-fnsummary.c (inline_read_section): Set vector size ahead of time. · 360386c7
      	* ipa-fnsummary.c (inline_read_section): Set vector size
      	ahead of time.
      
      From-SVN: r277756
      Jan Hubicka committed
    • ipa-fnsummary.c (ipa_call_context): New constructor. · 1532500e
      
      	* 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.
      
      From-SVN: r277755
      Jan Hubicka committed
    • config.in: Regenerate. · a9a0fd0e
      	* 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.
      
      From-SVN: r277754
      Jan Hubicka committed
    • config.in: Regenerate. · c9ef0409
       	* 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.
      
      From-SVN: r277753
      Jan Hubicka committed
    • re PR libgcc/78804 ([RX] -m64bit-doubles does not work) · da5c1bbe
      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.
      
      From-SVN: r277752
      Oleg Endo committed
    • Daily bump. · e3200f1d
      From-SVN: r277749
      GCC Administrator committed
  3. 02 Nov, 2019 4 commits
    • typeck.c (composite_pointer_type): Add a const op_location_t& parameter and use it in diagnostics. · b77c16f9
      /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.
      
      From-SVN: r277743
      Paolo Carlini committed
    • gimplify.h (omp_construct_selector_matches): Change return type to int, add a new SCORES argument. · d0c464d2
      	* 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.
      
      From-SVN: r277742
      Jakub Jelinek committed
    • re PR c++/89640 (g++ chokes on lambda with __attribute__) · 628be4ef
      	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.
      
      From-SVN: r277741
      Jakub Jelinek committed
    • Daily bump. · 1afe39ac
      From-SVN: r277740
      GCC Administrator committed
  4. 01 Nov, 2019 4 commits
    • re PR bootstrap/92314 (missing omp-device-properties', needed by 's-omp-device-properties-h') · d228ee80
      	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.
      
      From-SVN: r277735
      Jakub Jelinek committed
    • omp-general.h (omp_context_selector_set_compare): Declare. · 917dd789
      	* 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.
      
      From-SVN: r277734
      Jakub Jelinek committed
    • PR c++/88335 - Implement P1073R3: Immediate functions · f968ef9b
      	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.
      
      From-SVN: r277733
      Jakub Jelinek committed
    • PR c++/91369 - Implement P0784R7: constexpr new · 8412b939
      	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.
      
      From-SVN: r277732
      Jakub Jelinek committed