1. 08 Dec, 2019 14 commits
    • cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast msg to… · 5544dbeb
      cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast msg to (const char *) in conditional...
      
      	* cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast
      	msg to (const char *) in conditional expressions.  Formatting fixes.
      
      From-SVN: r279101
      Jakub Jelinek committed
    • New bswap testcase. · a0d169d1
      
      2019-12-08  Andrew Pinski  <apinski@marvell.com>
      
              * gcc.c-torture/execute/bswap-3.c: New test.
      
      From-SVN: r279100
      Andrew Pinski committed
    • Revert commit r279023. · 58ccb8ec
      2019-12-08  Sandra Loosemore  <sandra@codesourcery.com>
      
      	Revert commit r279023.
      
      	2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/linux.h (LINK_EH_SPEC): Define.
      
      	gcc/testsuite/
      	* g++.target/nios2/hello-pie.C: New.
      	* g++.target/nios2/nios2.exp: New.
      
      From-SVN: r279094
      Sandra Loosemore committed
    • Fix overflows in -fprofile-reorder-functions · 6d8fd122
      This patch fixes three sissues with -fprofile-reorder-functions:
      1) First is that tp_first_run is stored as 32bit integer while it can easily
         overflow (and does so during Firefox profiling).
      2) Second problem is that flag_profile_functions can
         not be tested w/o function context.
         The changes to expand_all_functions makes it to work on mixed units by
         first outputting all functions w/o -fprofile-reorder-function (or with no
         profile info) and then outputting in first_run order
      3) LTO partitioner was mixing up order by tp_first_run and by order.
         for no_reorder we definitly want to order via first, while for everything
         else we want to roder by second.
      
      I have also merged duplicated comparators since they are bit fragile into
      tp_first_run_node_cmp.
      
      I originaly started to look into this because of undefined symbols with
      Firefox PGO builds.  These symbols went away with fixing these bug but I am not
      quite sure how. it is possible that there is another problem in lto_blanced_map
      but even after reading the noreorder code few times carefuly I did not find it.
      Other explanation would be that our new qsort with broken comparator due to
      overflow can actualy remove some entries in the array, but that sounds bit
      crazy.
      
      Bootstrapped/regested x86_64-linux.
      
      	* cgraph.c (cgraph_node::dump): Make tp_first_run 64bit.
      	* cgraph.h (cgrpah_node): Likewise.
      	(tp_first_run_node_cmp): Deeclare.
      	* cgraphunit.c (node_cmp): Rename to ...
      	(tp_first_run_node_cmp): ... this; export; watch for 64bit overflows;
      	clear tp_first_run for no_reorder and !flag_profile_reorder_functions.
      	(expand_all_functions): Collect tp_first_run and normal functions to
      	two vectors so the other functions remain sorted. Do not check for
      	flag_profile_reorder_functions it is function local flag.
      	* profile.c (compute_value_histograms): Update tp_first_run printing.
      
      	* lto-partition.c (node_cmp): Turn into simple order comparsions.
      	(varpool_node_cmp): Remove.
      	(add_sorted_nodes): Use node_cmp.
      	(lto_balanced_map): Use tp_first_run_node_cmp.
      
      From-SVN: r279093
      Jan Hubicka committed
    • opts.c (common_handle_option): Do not clear ipa_reference for -fprofile-use. · a8d9d664
      	* opts.c (common_handle_option): Do not clear ipa_reference for
      	-fprofile-use.
      
      From-SVN: r279092
      Jan Hubicka committed
    • Fix tp_first_run update in split_function. · f514d019
      The value 0 in tp_first_run is special meaing that profile is unknown.  We
      should not set it to 1.
      
      	* ipa-split.c (split_function): Preserve 0 tp_first_run.
      
      From-SVN: r279091
      Jan Hubicka committed
    • Silence overactive sanity check with -fpartial-profile-training · a63574d7
      do_estimate_edge_time tests that cached and real values matches. This test
      is not working precisely for global profiles because of roundoff issues when
      profile of clones is subtracted from profile of offline body.  This is checked
      by presence of ipa counter. This breaks with partial profile training because
      we turn IPA profiles to local when they drop to 0.
      
      	* ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive
      	sanity check.
      
      From-SVN: r279090
      Jan Hubicka committed
    • re PR tree-optimization/92860 (Global flags affected by -O settings are… · ad74bc8c
      re PR tree-optimization/92860 (Global flags affected by -O settings are clobbered by optimize attribute)
      
      	PR tree-optimization/92860
      	* common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add
      	Optimization flag.
      
      From-SVN: r279089
      Jan Hubicka committed
    • Error on Associate with a program. · c212316b
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92780
          * resolve.c (resolve_assoc_var): Issue error if the associating
          entity is a program.
      
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92780
          * gfortran.dg/associate_50.f90: New test.
      
      From-SVN: r279088
      Thomas Koenig committed
    • re PR fortran/92764 (ICE in gfc_procedure_use) · f477062c
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92764
          * interface.c (gfc_procedure_use): Check for existence of derived
          component before using (twice).
      
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92764
          * gfortran.dg/interface_44.f90: New test.
      
      From-SVN: r279087
      Thomas Koenig committed
    • re PR fortran/92755 (ICE in gfc_dep_resolver, at fortran/dependency.c:2123) · c9942e5f
      2019-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92755
      	* dependency.c (gfc_dep_resolver):  Move skipping of _data ref
      	into the loop.
      
      2019-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92755
      	* gfortran.dg/dependency_57.f90: New test.
      
      From-SVN: r279086
      Thomas Koenig committed
    • Fix ia32 testsuite failures from C2x attributes on types · 9f5836a6
      	* g++.dg/cpp0x/gen-attrs-36.C: Update expected diagnostics.
      	* g++.dg/cpp0x/gen-attrs-37.C: Likewise.
      	* g++.dg/cpp0x/gen-attrs-8.C: Likewise.
      
      From-SVN: r279085
      Rainer Orth committed
    • Daily bump. · 241224b6
      From-SVN: r279084
      GCC Administrator committed
    • Fix libstdc++ compiling for an aarch64 multilib with big-endian. · c44e87ac
      2019-12-07  Andrew Pinski  <apinski@marvell.com>
      
              * config/cpu/aarch64/opt/ext/opt_random.h: Wrap around with check
              for little-endian like ext/random is done.
      
      From-SVN: r279081
      Andrew Pinski committed
  2. 07 Dec, 2019 6 commits
    • PR c++/91678 - wrong error with decltype and location wrapper. · bfbe98c7
      Compiling this testcase results in a bogus "invalid cast" error; this occurs
      since the introduction of location wrappers in finish_id_expression.
      
      Here we are parsing the decltype expression via cp_parser_decltype_expr which
      can lead to calling various fold_* and c-family routines.  They use
      non_lvalue_loc, but that won't create a NON_LVALUE_EXPR wrapper around a location
      wrapper.
      
      So before the location wrappers addition cp_parser_decltype_expr would return
      NON_LVALUE_EXPR <c>.  Now it returns VIEW_CONVERT_EXPR<float *>(c), but the
      STRIP_ANY_LOCATION_WRAPPER immediately following it strips the location wrapper,
      and suddenly we don't know whether we have an lvalue anymore.  And that's sad
      because then decltype produces the wrong type, causing nonsense errors.
      
      	* fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR.
      
      	* g++.dg/cpp0x/decltype73.C: New test.
      
      From-SVN: r279077
      Marek Polacek committed
    • re PR middle-end/90840 (ICE in simplify_subreg, at simplify-rtx.c:6441) · ea37206d
      	PR middle-end/90840
      	* expr.c (expand_assignment): In the case of a CONCAT on the LHS, make
      	sure to pass a valid inner mode in calls to simplify_gen_subreg.
      
      From-SVN: r279076
      Eric Botcazou committed
    • Fortran] PR 92793 - fix column used for error diagnostic · 9c81750c
              PR fortran/92793
              * trans.c (gfc_get_location): Declare.
              * trans.c (gfc_get_location): Define; returns column-corrected location.
              (trans_runtime_error_vararg, gfc_trans_runtime_check,
              gfc_generate_module_code): Use new function.
              * trans-array.c (gfc_trans_auto_array_allocation): Likewise.
              * trans-common.c (build_field, get_init_field, create_common): Likewise.
              * trans-decl.c (gfc_build_label_decl, gfc_get_symbol_decl): Likewise.
              * trans-openmp.c (gfc_trans_omp_reduction_list, gfc_trans_omp_clauses):
              Likewise.
              * trans-stmt.c (gfc_trans_if_1): Likewise.
      
      From-SVN: r279075
      Tobias Burnus committed
    • Fix @multitable handling in texi2pod.pl · b01d215d
      While trying out Dennis's Armv8.6-A patch, I noticed that texi2pod.pl
      didn't handle the new @multitable correctly.  There were two problems:
      
      (1) @multitables nested in other @tables inherited the @item type from
          the enclosing @table.  Since the new @multitable is in a @table @samp,
          we applied @samp markup to the @multitable @items.  This in turn
          meant that it captured the @tab separator in the @item markup.
      
          Fixed by pushing an empty item code onto the stack.
      
      (2) We didn't handle @headitem.  Fixed by enclosing it in italics,
          like we do for section headings.  This causes it to be underlined
          in the man output.
      
      2019-12-07  Richard Sandiford  <richard.sandiford@arm.com>
      
      contrib/
      	* texi2pod.pl: Handle @headitems in @multitables, printing them
      	in italics.  Push an empty item code onto the stack.
      
      From-SVN: r279074
      Richard Sandiford committed
    • re PR c/87488 (hyperlink filenames in diagnostics) · ae169f9e
      	PR c/87488
      	* pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
      	instead of ST sequence to terminate OSC 8 strings.
      
      Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r279073
      Tobias Burnus committed
    • Daily bump. · b69877c6
      From-SVN: r279072
      GCC Administrator committed
  3. 06 Dec, 2019 20 commits
    • re PR c++/92831 (CWG1299 extend_ref_init_temps_1 punts on COND_EXPRs) · beefe639
      	PR c++/92831
      	* call.c (build_conditional_expr_1): For ?: with omitted middle
      	operand use cp_stabilize_reference if arg1 is glvalue_p rather than
      	just if it is lvalue_p.
      
      	* g++.dg/ext/temp-extend1.C: New test.
      
      From-SVN: r279069
      Jakub Jelinek committed
    • Fix read buffer overflow in split_directories · 1cd4fe3d
              * make-relative-prefix.c (split_directories):
              Return early on empty 'name'
      
      From-SVN: r279068
      Tim Ruehsen committed
    • Add test for c++/92451. · 07045595
      This was ICEing from r277865 to r278786.
      
      	* g++.dg/overload/error4.C: New test.
      
      From-SVN: r279067
      Marek Polacek committed
    • parser.c (cp_parser_diagnose_invalid_type_name): Mention that concept is also… · 94a0f396
      parser.c (cp_parser_diagnose_invalid_type_name): Mention that concept is also available with -std=c++2a.
      
      	* parser.c (cp_parser_diagnose_invalid_type_name): Mention
      	that concept is also available with -std=c++2a.
      
      From-SVN: r279066
      Jakub Jelinek committed
    • c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for now. · abd6d8cc
      	* c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for
      	now.
      
      	* g++.dg/cpp2a/feat-cxx2a.C: Don't test __cpp_consteval for now.
      
      From-SVN: r279065
      Jakub Jelinek committed
    • PR c++/92831 - CWG 1299, not extending temporary lifetime for ?: · 2ee63d04
      	* cp-tree.h (extend_ref_init_temps): Add a new argument with NULL
      	default arg.
      	* call.c (set_up_extended_ref_temp): Add COND_GUARD argument, pass it
      	down to extend_ref_init_temps.  Before pushing cleanup, if COND_GUARD
      	is non-NULL, create a bool temporary if needed, initialize to false
      	and guard the cleanup with the temporary being true.
      	(extend_ref_init_temps_1): Add COND_GUARD argument, pass it down
      	to recursive calls and set_up_extended_ref_temp.  Handle COND_EXPR.
      	(extend_ref_init_temps): Add COND_GUARD argument, pass it down to
      	recursive calls and to extend_ref_init_temps_1.
      
      	* g++.dg/cpp0x/temp-extend2.C: New test.
      
      From-SVN: r279064
      Jakub Jelinek committed
    • re PR go/92820 (libgo.so.15 has executable stack) · eff6af8e
      	PR go/92820
          runtime: only build go-context for x86 GNU/Linux
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210258
      
      From-SVN: r279063
      Ian Lance Taylor committed
    • re PR other/29842 ([meta-bug] outstanding patches / issues from STMicroelectronics) · 5ec7a413
      	PR go/29842
          runtime: update HURD support for mOS now being embedded
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210285
      
      From-SVN: r279062
      Ian Lance Taylor committed
    • re PR rtl-optimization/92176 (LRA problem with reloads for subreg operands) · 1a880ef2
      2019-12-06  Andreas Krebbel  <krebbel@linux.ibm.com>
      	    Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/92176
      	* lra.c (simplify_subreg_regno): Don't permit unconditional
      	changing mode for LRA too.
      
      2019-12-06  Andreas Krebbel  <krebbel@linux.ibm.com>
      	    Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/92176
      	* gcc.target/s390/pr92176.c: New test.
      
      
      Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>
      
      From-SVN: r279061
      Andreas Krebbel committed
    • Fix Fortran linker errors on AMD GCN · 3ad4a03a
      2019-12-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	libgomp/
      	* config/accel/proc.c (omp_get_num_procs): Apply ialias macro.
      
      From-SVN: r279060
      Kwok Cheung Yeung committed
    • Avoid -Wincompatible-pointer-types on targets like arm-eabi. · 08821333
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/Wstringop-overflow-23.c: Use the correct argument type.
      	* gcc.dg/Wstringop-overflow-24.c: Same.
      
      From-SVN: r279059
      Martin Sebor committed
    • [C++] Pass type uses through the verify_type_context hook · 02a32ab4
      This patch makes the C++ frontend work with the verify_type_context hook.
      We need some new type contexts for features that don't exist in C, but
      otherwise the patch is very similar to the C one.
      
      TCTX_CAPTURE_BY_COPY could really be treated as an instance of
      TCTX_FIELD, but the error message is better if we split it out.
      
      2019-12-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS)
      	(TCTX_CAPTURE_BY_COPY): New type_context_kinds.
      	* config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
      	Handle them.
      
      gcc/cp/
      	* decl.c (start_decl_1): Use verify_type_context to check whether
      	the target allows variables of a particular type to have static
      	or thread-local storage duration.
      	(check_array_initializer): Use verify_type_context to check whether
      	the target allows a particular type to be used as an array element.
      	(create_array_type_for_decl): Likewise.
      	(cp_finish_decl): Use verify_type_context to check whether
      	the target allows static member variables of a particular type.
      	(grokdeclarator): Likewise.  Also use verify_type_context to check
      	whether the target allows non-static member variables of a particular
      	type.
      	* except.c: Include target.h.
      	(is_admissible_throw_operand_or_catch_parameter): Use
      	verify_type_context to check whether the target allows particular
      	types to be thrown and caught.
      	* typeck2.c (add_exception_specifier): Likewise.
      	* init.c (build_new_1): Use verify_type_context to check whether
      	the target allows particular types to be dynamically allocated.
      	(build_vec_delete_1, build_delete): Use verify_type_context to check
      	whether the target allows particular types to be deleted.
      	* lambda.c (add_capture): Use verify_type_context to check
      	whether the target allows particular types to be captured by copy.
      	* pt.c: Include target.h.
      	(instantiate_class_template_1): Use verify_type_context to check
      	whether the target allows non-static member variables of a particular
      	type.
      	* typeck.c (cxx_alignof_expr): Use verify_type_context to check
      	whether the target allows the alignment of a particular type
      	to be measured.
      	(pointer_diff, cp_build_unary_op): Use verify_type_context to check
      	whether the target allows arithmetic involving pointers to particular
      	types.
      
      gcc/testsuite/
      	* g++.dg/ext/sve-sizeless-1.C: New test.
      	* g++.dg/ext/sve-sizeless-2.C: Likewise.
      
      From-SVN: r279058
      Richard Sandiford committed
    • Fix unrecognised GCN instruction. · 1e8f5d49
      2019-12-06  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o
      	in the asm output.
      
      From-SVN: r279055
      Andrew Stubbs committed
    • Enable QI/HImode vector moves · 2b99bed8
      2019-12-06  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI.
      	(VEC_1REG_ALT): Likewise.
      	(VEC_ALL1REG_MODE): New mode iterator.
      	(VEC_1REG_INT_MODE): Remove V64QI and V64HI.
      	(VEC_1REG_INT_ALT): Likewise.
      	(VEC_ALL1REG_INT_MODE): New mode interator.
      	(VEC_ALL1REG_INT_ALT): Likewise.
      	(VEC_REG_MODE): Remove V64QI and V64HI.
      	(VEC_ALLREG_MODE): New mode interator.
      	(vec_merge): Change to VEC_ALLREG_MODE.
      	(vec_merge_with_clobber): Likewise.
      	(vec_merge_with_vcc): Likewise.
      	(mov<mode>): Likewise.
      	(mov<mode>_unspec): Likewise.
      	(*mov<mode>): Change to VEC_ALL1REG_MODE.
      	(mov<mode>_exec): Likewise.
      	(*mov<mode>_exec_match): Likewise.
      	(mov<mode>_sgprbase): Likewise.
      	(reload_in<mode>): Change to VEC_ALLREG_MODE.
      	(reload_out<mode>): Likewise.
      	(scalar address splits): Likewise.
      	(*vec_set<mode>): Change to VEC_ALL1REG_MODE.
      	(vec_set<mode>): Change to VEC_ALLREG_MODE.
      	(*vec_set<mode>_1): Change to VEC_ALL1REG_MODE.
      	(vec_duplicate<mode><exec>): Likewise.
      	(vec_extract<mode><scalar_mode>): Likewise.
      	(vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE.
      	(gather_load<mode>): Likewise.
      	(gather<mode>_exec): Likewise.
      	(gather<mode>_expr<exec>): Likewise.
      	(gather<mode>_insn_1offset<exec>): Likewise.
      	(gather<mode>_insn_1offset_ds<exec>): Likewise.
      	(gather<mode>_insn_2offsets<exec>): Likewise.
      	(ds_bpermute<mode>): Change to VEC_ALL1REG_MODE.
      	(VEC_INT_MODE): Remove V64QI and V64HI.
      	(vcond_mask_<mode>di): Change to VEC_ALLREG_MODE.
      	(vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to
      	VEC_ALL1REG_MODE.
      	(vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise.
      	(vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise.
      	(vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise.
      	(maskload<mode>di): Change to VEC_ALL1REG_MODE.
      	(maskstore<mode>di): Likewise.
      	(mask_gather_load<mode>): Likewise.
      	(mov_from_lane63_<mode>): Likewise.
      	* config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode
      	and V64HImode vectorization.
      	(gcn_related_vector_mode): New function.
      	(TARGET_VECTORIZE_RELATED_MODE): New define.
      
      From-SVN: r279053
      Andrew Stubbs committed
    • re PR fortran/92775 (Incorrect expression in DW_AT_byte_stride on an array) · 2297a38e
      	PR fortran/92775
      	* trans.h (struct lang_type, struct lang_decl): Remove span member.
      	(GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros.
      	* trans-array.h (gfc_get_descriptor_offsets_for_info): Add another
      	argument.
      	* trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF
      	argument and initialize *SPAN_OFF to the offset of span field.
      	* trans-types.c (gfc_get_array_descr_info): Adjust
      	gfc_get_descriptor_offsets_for_info caller.  Compute elem_size
      	as base->span instead of TYPE_SIZE_UNIT (etype) constant.
      
      From-SVN: r279045
      Jakub Jelinek committed
    • [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments · 6e4d01d6
      2019-12-06  Tobias Burnus  <tobias@codesourcery.com>
                  Kwok Cheung Yeung <kcy@codesourcery.com>
      
              gcc/fortran/
              * trans-openmp.c (gfc_build_conditional_assign,
              gfc_build_conditional_assign_expr): New static functions.
              (gfc_omp_finish_clause, gfc_trans_omp_clauses): Handle mapping of
              absent optional arguments and fix mapping of present optional args.
      
              gcc/
              * omp-low.c (lower_omp_target): For optional arguments, deref once
              more to obtain the type.
      
              libgomp/
              * oacc-mem.c (update_dev_host, gomp_acc_insert_pointer): Just return
              if input it a NULL pointer.
              * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Remove; dependent on
              diagnostic of NULL pointer.
              * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Ditto.
              * testsuite/libgomp.fortran/optional-map.f90: New.
              * testsuite/libgomp.fortran/use_device_addr-1.f90
              (test_dummy_opt_callee_1_absent): New.
              (test_dummy_opt_call_1): Call it.
              * testsuite/libgomp.fortran/use_device_addr-2.f90: Likewise.
              * testsuite/libgomp.fortran/use_device_addr-3.f90: Likewise.
              * testsuite/libgomp.fortran/use_device_addr-4.f90: Likewise.
              * testsuite/libgomp.oacc-fortran/optional-cache.f95: New.
              * testsuite/libgomp.oacc-fortran/optional-data-copyin-by-value.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-data-copyin.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-data-copyout.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-data-enter-exit.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-declare.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-firstprivate.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-host_data.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-nested-calls.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-private.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-reduction.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-update-device.f90: New.
              * testsuite/libgomp.oacc-fortran/optional-update-host.f90: New.
      
      
      Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
      
      From-SVN: r279043
      Tobias Burnus committed
    • match.pd (nop_convert): Remove empty match. · e150da38
      2019-12-06  Richard Biener  <rguenther@suse.de>
      
      	* match.pd (nop_convert): Remove empty match.  Use nop_convert?
      	everywhere.
      
      From-SVN: r279040
      Richard Biener committed
    • [testsuite][aarch64] type_redef_11.c: Update expected diagnostics. · 998d6381
      After the fix for PR c/36941 and PR c/88827 (r278976), this test emits
      a different error message and needs an update.
      
      2019-12-06  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR c/36941
      	PR c/88827
      	* gcc.target/aarch64/sve/acle/general-c/type_redef_11.c: Update
      	expected diagnostics.
      
      From-SVN: r279039
      Christophe Lyon committed
    • Avoid quadratic behaviour in prune_runtime_alias_test_list · ea1ff9e4
      prune_runtime_alias_test_list used ordered_remove to remove a merged
      alias pair, which made the function quadratic when many aliases could
      be removed.
      
      I had a testcase in which these memmoves accounted for an impressive
      85% of compile time.  The fact that we had so many probably shows
      a deeper problem, but still, it's easy to remove as we go.
      
      2019-12-06  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-data-ref.c (prune_runtime_alias_test_list): Exit early
      	for empty vectors.  Avoid using ordered_remove and instead
      	shuffle the vector as we go.
      
      From-SVN: r279038
      Richard Sandiford committed
    • genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and VIEW_CONVERT{0,1,2}. · 28fabd43
      2019-12-06  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and
      	VIEW_CONVERT{0,1,2}.
      	(expr::opt_grp): Add and initialize.
      	(lower_opt_convert): Rename to ...
      	(lower_opt): ... and work on opt_grp, simply switching operations
      	from being optional to being present or not.
      	(has_opt_convert): Rename to ...
      	(has_opt): ... and adjust.
      	(parser::parse_operation): Return the optional opt_grp,
      	remove special-casing of conditional operations and more generally
      	parse [digit]'?'.
      	(parser::parse_expr): Stick on the parsed opt_grp and perform
      	rough verification.
      	(parser::parse_for): Remove now unnecessary code.
      	(main): Likewise.
      	* doc/match-and-simplify.texi: Mention ? now works on all
      	unary operations and also match predicates.
      
      From-SVN: r279037
      Richard Biener committed