Commit Graph

173304 Commits

Author SHA1 Message Date
Richard Sandiford b01d215df1 Fix @multitable handling in texi2pod.pl
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
2019-12-07 09:57:04 +00:00
Tobias Burnus ae169f9e4c re PR c/87488 (hyperlink filenames in diagnostics)
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
2019-12-07 09:24:14 +01:00
GCC Administrator b69877c60d Daily bump.
From-SVN: r279072
2019-12-07 00:16:19 +00:00
Jakub Jelinek beefe639b2 re PR c++/92831 (CWG1299 extend_ref_init_temps_1 punts on COND_EXPRs)
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
2019-12-07 00:43:45 +01:00
Tim Ruehsen 1cd4fe3d43 Fix read buffer overflow in split_directories
* make-relative-prefix.c (split_directories):
        Return early on empty 'name'

From-SVN: r279068
2019-12-06 15:20:06 -07:00
Marek Polacek 070455950d Add test for c++/92451.
This was ICEing from r277865 to r278786.

	* g++.dg/overload/error4.C: New test.

From-SVN: r279067
2019-12-06 22:12:51 +00:00
Jakub Jelinek 94a0f396ea 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
2019-12-06 22:18:58 +01:00
Jakub Jelinek abd6d8cc4f c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for now.
* 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
2019-12-06 22:18:10 +01:00
Jakub Jelinek 2ee63d048e PR c++/92831 - CWG 1299, not extending temporary lifetime for ?:
* 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
2019-12-06 21:16:27 +01:00
Ian Lance Taylor eff6af8e0e re PR go/92820 (libgo.so.15 has executable stack)
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
2019-12-06 19:52:46 +00:00
Ian Lance Taylor 5ec7a413d1 re PR other/29842 ([meta-bug] outstanding patches / issues from STMicroelectronics)
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
2019-12-06 19:37:39 +00:00
Andreas Krebbel 1a880ef211 re PR rtl-optimization/92176 (LRA problem with reloads for subreg operands)
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
2019-12-06 19:30:37 +00:00
Kwok Cheung Yeung 3ad4a03ac6 Fix Fortran linker errors on AMD GCN
2019-12-06  Kwok Cheung Yeung  <kcy@codesourcery.com>

	libgomp/
	* config/accel/proc.c (omp_get_num_procs): Apply ialias macro.

From-SVN: r279060
2019-12-06 18:33:19 +00:00
Martin Sebor 0882133399 Avoid -Wincompatible-pointer-types on targets like arm-eabi.
gcc/testsuite/ChangeLog:

	* gcc.dg/Wstringop-overflow-23.c: Use the correct argument type.
	* gcc.dg/Wstringop-overflow-24.c: Same.

From-SVN: r279059
2019-12-06 11:23:41 -07:00
Richard Sandiford 02a32ab4a6 [C++] Pass type uses through the verify_type_context hook
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
2019-12-06 18:22:24 +00:00
Andrew Stubbs 1e8f5d49d7 Fix unrecognised GCN instruction.
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
2019-12-06 17:49:47 +00:00
Andrew Stubbs 2b99bed844 Enable QI/HImode vector moves
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
2019-12-06 17:28:28 +00:00
Jakub Jelinek 2297a38e0c re PR fortran/92775 (Incorrect expression in DW_AT_byte_stride on an array)
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
2019-12-06 14:28:59 +01:00
Tobias Burnus 6e4d01d61f [OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments
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
2019-12-06 14:06:53 +01:00
Richard Biener e150da3833 match.pd (nop_convert): Remove empty match.
2019-12-06  Richard Biener  <rguenther@suse.de>

	* match.pd (nop_convert): Remove empty match.  Use nop_convert?
	everywhere.

From-SVN: r279040
2019-12-06 11:44:27 +00:00
Christophe Lyon 998d6381ac [testsuite][aarch64] type_redef_11.c: Update expected diagnostics.
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
2019-12-06 11:54:46 +01:00
Richard Sandiford ea1ff9e46c Avoid quadratic behaviour in prune_runtime_alias_test_list
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
2019-12-06 10:31:44 +00:00
Richard Biener 28fabd43d9 genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and VIEW_CONVERT{0,1,2}.
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
2019-12-06 10:25:08 +00:00
Jan Hubicka f7f6be76ba cgraphclones.c (cgraph_node::create_clone): Only localize toplevel functions, not inline clones.
* cgraphclones.c (cgraph_node::create_clone): Only localize toplevel
	functions, not inline clones.

From-SVN: r279036
2019-12-06 08:51:43 +00:00
Jan Hubicka b51200e26f * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR.
From-SVN: r279035
2019-12-06 08:50:36 +00:00
Richard Biener 330a968c0a genmatch.c (c_expr::gen_transform): Emit newlines from line number changes rather than after every semicolon.
2019-12-06  Richard Biener  <rguenther@suse.de>

	* genmatch.c (c_expr::gen_transform): Emit newlines from line
	number changes rather than after every semicolon.

From-SVN: r279034
2019-12-06 08:25:12 +00:00
Richard Biener 2ef278569f re PR tree-optimization/92819 (Worse code generated on avx2 due to simplify_vector_constructor)
2019-12-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92819
	* match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts
	into the last lane.  For two-element vectors try inserting
	into the last lane when inserting into the first fails.

	* gcc.target/i386/pr92819-1.c: New testcase.
	* gcc.target/i386/pr92803.c: Adjust.

From-SVN: r279033
2019-12-06 07:53:15 +00:00
Ian Lance Taylor 9961856c3a re PR go/92810 (Compiling GCC go for aarch64_be-marvell-linux-gnu fails)
PR go/92810
    libgo: recognize aarch64_be as arm64be
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210038

From-SVN: r279032
2019-12-06 05:32:49 +00:00
Martin Sebor 4e22a7ea42 PR testsuite/92829 - several test case failures starting with r278983
gcc/testsuite/ChangeLog:

	* gcc.dg/Warray-bounds-56.c: Rearrange code to avoid powerpc64*
	failures.

From-SVN: r279031
2019-12-05 18:04:42 -07:00
Jakub Jelinek c86b722be0 common.opt (fprofile-partial-training): Terminate description with full stop.
* common.opt (fprofile-partial-training): Terminate description with
	full stop.

From-SVN: r279030
2019-12-06 01:27:18 +01:00
Martin Sebor 37cd34543d PR middle-end/92622 - FAIL: gcc.dg/Warray-bounds-22.c on ILP32: missing warnings for VLA on lines 67 and 69
gcc/ChangeLog:

	PR middle-end/92622
	* tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable
	left uninitialized by get_addr_base_and_unit_offset ofn failure.

From-SVN: r279029
2019-12-05 17:18:32 -07:00
GCC Administrator b801c7cd79 Daily bump.
From-SVN: r279028
2019-12-06 00:16:46 +00:00
Jan Hubicka c199f329bd Do not clear m_vr and bits in ipa_set_jf_unknown.
* ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr.
	(detect_type_change_from_memory_writes): Remoe parameter JFUNC.
	(detect_type_change): Likewise.
	(detect_type_change_ssa): Likewise.
	(ipa_analyze_virtual_call_uses): Update.

From-SVN: r279025
2019-12-06 00:08:47 +00:00
Jakub Jelinek 81884594ce re PR tree-optimization/92768 (Maybe a wrong code for vector constants)
PR tree-optimization/92768
	* gcc.dg/pr92768.c: Add -w -Wno-psabi to dg-options.

From-SVN: r279024
2019-12-06 00:53:09 +01:00
Sandra Loosemore 38e078da6c Disable --eh-frame-hdr with -pie or -shared on nios2-linux-gnu.
2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>

	Disable --eh-frame-hdr with -pie or -shared on nios2-linux-gnu.

	The nios2 ABI doesn't have appropriate relocations to support
	--eh-frame-hdr with -pie or -shared, so we need to override the
	default specs that add that link option.  Otherwise we get linker
	warnings about invalid FDE encodings.

	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: r279023
2019-12-05 16:36:22 -05:00
Jan Hubicka a414fd4263 Fix g++.dg/torture/pr59226.C
this patch fixes ICE in g++.dg/torture/pr59226.C which was triggered by
new comdat_local sanity check.  What happens here is that function gets
inlined into its own thunk which makes it !comdat_local_p but the updating
code does not notice since thunk calls comdat local alias of the function
itself and we look at alias target rather than original callee.

This also shows that we miss optimization here.  Currently we will not inline
thunk out of its comdat local group w/o inlining function it is associated with
into it.

We should teach inline_call to reoslve edges to aliases while inlining and 
relax calls_comdat_local flag.  But this needs bit more work, so I fix the
ICE first.

	* ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local

From-SVN: r279021
2019-12-05 20:53:39 +00:00
Marek Polacek 7906797ebe PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.
This patch implements C++20 P1331, allowing trivial default initialization in
constexpr contexts.

	* c-cppbuiltin.c (c_cpp_builtins): Adjust the value of __cpp_constexpr.

	* class.c (trivial_default_constructor_is_constexpr): Return true in
	C++20.
	* constexpr.c (cx_check_missing_mem_inits): Allow missing field
	initializers in C++20.
	(cxx_eval_call_expression): Don't clear CONSTRUCTOR_NO_CLEARING for
	constexpr constructors in C++20.
	(reduced_constant_expression_p): Don't set FIELD for union and array
	types.  Skip empty class fields without initializers.
	* decl.c (check_for_uninitialized_const_var): Permit trivial default
	initialization in constexpr.
	(next_initializable_field): Don't skip vptr fields.
	* method.c (walk_field_subobs): Still consider a constructor that
	doesn't initialize all the members constexpr.

	* g++.dg/cpp0x/constexpr-array6.C: Adjust dg-error.
	* g++.dg/cpp0x/constexpr-ctor.C: Likewise.
	* g++.dg/cpp0x/constexpr-diag3.C: Likewise.
	* g++.dg/cpp0x/constexpr-diag4.C: Likewise.
	* g++.dg/cpp0x/constexpr-ex3.C: Likewise.
	* g++.dg/cpp0x/constexpr-template2.C: Likewise.
	* g++.dg/cpp0x/constexpr-union2.C: Likewise.
	* g++.dg/cpp0x/lambda/lambda-mangle.C: Rip out a piece of code ...
	* g++.dg/cpp0x/lambda/lambda-mangle6.C: ... and put it here.
	* g++.dg/cpp0x/pr79118.C: Adjust dg-error.
	* g++.dg/cpp1y/constexpr-83921-3.C: Likewise.
	* g++.dg/cpp1y/constexpr-neg1.C: Likewise.
	* g++.dg/cpp1z/constexpr-lambda12.C: Likewise.
	* g++.dg/cpp1z/feat-cxx1z.C: Use -std=c++17.
	* g++.dg/cpp2a/constexpr-init1.C: New test.
	* g++.dg/cpp2a/constexpr-init2.C: New test.
	* g++.dg/cpp2a/constexpr-init3.C: New test.
	* g++.dg/cpp2a/constexpr-init4.C: New test.
	* g++.dg/cpp2a/constexpr-init5.C: New test.
	* g++.dg/cpp2a/constexpr-init6.C: New test.
	* g++.dg/cpp2a/constexpr-init7.C: New test.
	* g++.dg/cpp2a/constexpr-init8.C: New test.
	* g++.dg/cpp2a/constexpr-init9.C: New test.
	* g++.dg/cpp2a/constexpr-init10.C: New test.
	* g++.dg/cpp2a/constexpr-init11.C: New test.
	* g++.dg/cpp2a/constexpr-init12.C: New test.
	* g++.dg/cpp2a/constexpr-init13.C: New test.
	* g++.dg/cpp2a/constexpr-init14.C: New test.
	* g++.dg/cpp2a/constexpr-init15.C: New test.
	* g++.dg/cpp2a/constexpr-try5.C: Adjust dg-error.
	* g++.dg/cpp2a/feat-cxx2a.C: Test __cpp_constexpr.
	* g++.dg/cpp2a/lambda-mangle.C: New test.
	* g++.dg/debug/dwarf2/pr44641.C: Skip for c++2a.
	* g++.dg/ext/stmtexpr21.C: Adjust dg-error.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r279019
2019-12-05 20:13:03 +00:00
Marek Polacek 5c04da8873 PR c++/92271 - make __is_same alias for __is_same_as.
Richard Smith proposed adding a synonym for __is_same_as, to accomodate the
convention of exposing std::SOME_TRAIT<A, B>::value as __SOME_TRAIT(A, B).

So add that alias, and also adjust the C++ printer.  I didn't bother changing
the RID_ identifier.

	* c-common.c: Add __is_same, an alias for __is_same_as.

	* cxx-pretty-print.c (pp_cxx_trait_expression) <case CPTK_IS_SAME_AS>:
	Print "__is_same".

	* g++.dg/ext/is_same.C: New test.

From-SVN: r279018
2019-12-05 20:06:46 +00:00
Jan Hubicka 34fbe3f094 cgraphclones.c (localize_profile): New function.
* cgraphclones.c (localize_profile): New function.
	(cgraph_node::create_clone): Use it for partial profiles.
	* common.opt (fprofile-partial-training): New flag.
	* doc/invoke.texi (-fprofile-partial-training): Document.
	* ipa-cp.c (update_profiling_info): For partial profiles do not
	set function profile to zero.
	* profile.c (compute_branch_probabilities): With partial profile
	watch if edge count is zero and turn all probabilities to guessed.
	(compute_branch_probabilities): For partial profiles do not apply
	profile when entry count is zero.
	* tree-profile.c (tree_profiling): Only do value_profile_transformations
	when profile is read.

From-SVN: r279013
2019-12-05 18:12:51 +00:00
Sudakshina Das 8575d59252 [Patch, GCC] Fix a condition post r278611
gcc/ChangeLog

2019-12-05  Sudakshina Das  <sudi.das@arm.com>

	* tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type
	check from if condition.

From-SVN: r279012
2019-12-05 18:03:01 +00:00
Ian Lance Taylor 9bcee9c9a1 re PR go/92820 (libgo.so.15 has executable stack)
PR go/92820
    runtime: always mark assembly file as non-executable stack
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210037

From-SVN: r279010
2019-12-05 17:51:10 +00:00
Tobias Burnus c3cb71ef35 OpenMP] Fix use_device_… with absent optional arg
gcc/fortran/
        * trans-openmp.c (gfc_omp_is_optional_argument,
        gfc_omp_check_optional_argument): Handle type(c_ptr),value which uses a
        hidden argument for the is-present check.

        gcc/
        * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr
        and Fortran's optional arguments, unconditionally add the is-present
        condition before the libgomp call.

        libgomp/
        * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Add
        'type(c_ptr), value' test case. Conditionally map the per-value
        passed arguments.

From-SVN: r279004
2019-12-05 16:18:39 +01:00
David Edelsohn 705f02b0ca * cp-gimplify.c: Include memmodel.h.
From-SVN: r279003
2019-12-05 09:40:11 -05:00
Richard Sandiford 56b4b16eb1 Check for bitwise identity when encoding VECTOR_CSTs (PR 92768)
This PR shows that we weren't checking for bitwise-identical values
when trying to encode a VECTOR_CST, so -0.0 was treated the same as
0.0 for -fno-signed-zeros.  The patch adds a new OEP flag to select
that behaviour.

2019-12-05  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR middle-end/92768
	* tree-core.h (OEP_BITWISE): New flag.
	* fold-const.c (operand_compare::operand_equal_p): Handle it.
	* tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.

gcc/testsuite/
	PR middle-end/92768
	* gcc.dg/pr92768.c: New test.

From-SVN: r279002
2019-12-05 14:20:38 +00:00
Jonathan Wakely 5a784d350c libstdc++: Fix bug in std::span test
The previous commit fixed the std::span constructors from const arrays,
revealing a bug in this test.

	* testsuite/23_containers/span/lwg3255.cc: Fix test. Constructing a
	span of non-const elements should not be possible from a const array
	or an array of const elements.

From-SVN: r279001
2019-12-05 13:50:08 +00:00
JeanHeyd "ThePhD" Meneide a7922ddf48 libstdc++: Implement P1872R0 and P1394R0 for std::span
This also fixes a bug in the implementation of LWG 3255, which causes:
FAIL: 23_containers/span/lwg3255.cc (test for excess errors)
That's because the test was wrong and verified the buggy behaviour. That
will be fixed in the following commit.

2019-12-05  JeanHeyd "ThePhD" Meneide  <phdofthehouse@gmail.com>

	Implement P1872R0 and P1394R0 for std::span
	* include/bits/range_access.h (__adl_begin, __adl_end): Remove.
	(sentinel_t, range_value_t, range_reference_t)
	(range_rvalue_reference_t, __forwarding_range, disable_sized_range)
	(output_range, input_range, forward_range, bidirectional_range)
	(random_access_range, contiguous_range, common_range): Move here from
	<ranges>, to make this the "ranges lite" internal header.
	* include/std/ranges: Move basic aliases and concepts to
	<bits/range_access.h>.
	* include/std/span: Use concepts and ranges:: calls instead of
	enable_if and friends.
	* include/std/type_traits: Add __is_array_convertible trait.

From-SVN: r279000
2019-12-05 13:50:01 +00:00
Richard Biener b0a71a184c re PR tree-optimization/92818 (Typo in vec_perm -> bit_insert pattern)
2019-12-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/92818
	* tree-ssa-forwprop.c (simplify_vector_constructor): Improve
	heuristics on what don't care element to choose.
	* match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo.

	* gcc.target/i386/pr92818.c: New testcase.

From-SVN: r278998
2019-12-05 13:02:57 +00:00
Jonathan Wakely f1355c8dda libstdc++: Define std::lexicographical_compare_three_way for C++20
* include/bits/stl_algobase.h (lexicographical_compare_three_way):
	Define for C++20.
	* testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: New
	test.
	* testsuite/25_algorithms/lexicographical_compare_three_way/
	constexpr.cc: New test.

From-SVN: r278996
2019-12-05 12:46:50 +00:00
Martin Liska 16e81d5193 Fix __gcov_exit fn prototype.
2019-12-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/92817
	* coverage.c (build_gcov_exit_decl): Remove superfluous
	void_type_node.

From-SVN: r278995
2019-12-05 12:35:26 +00:00
Jozef Lawrynowicz 6ff8ab6a14 MSP430: Fix postinc addressing mode being used for dst op of CMP insns
2019-12-05  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/msp430.md (cbranch<mode>4): Use
	msp430_general_dst_nonv_operand instead of nonimmediate_operand for
	dest operand of CMP instruction.
	(cbranchpsi4_real): Likewise.
	(cbranchqi4_real): Likewise.
	(cbranchhi4_real): Likewise.
	(cbranchpsi4_reversed): Likewise.
	(cbranchqi4_reversed): Likewise.
	(cbranchhi4_reversed): Likewise.

From-SVN: r278994
2019-12-05 10:56:02 +00:00