aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-12-07re PR middle-end/90840 (ICE in simplify_subreg, at simplify-rtx.c:6441)Eric Botcazou2-7/+13
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
2019-12-07Fortran] PR 92793 - fix column used for error diagnosticTobias Burnus8-71/+105
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
2019-12-07Fix @multitable handling in texi2pod.plRichard Sandiford2-2/+12
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-07re PR c/87488 (hyperlink filenames in diagnostics)Tobias Burnus2-4/+15
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-07Daily bump.GCC Administrator1-1/+1
From-SVN: r279072
2019-12-07re PR c++/92831 (CWG1299 extend_ref_init_temps_1 punts on COND_EXPRs)Jakub Jelinek4-1/+57
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-06Fix read buffer overflow in split_directoriesTim Ruehsen2-0/+8
* make-relative-prefix.c (split_directories): Return early on empty 'name' From-SVN: r279068
2019-12-06Add test for c++/92451.Marek Polacek2-0/+11
This was ICEing from r277865 to r278786. * g++.dg/overload/error4.C: New test. From-SVN: r279067
2019-12-06parser.c (cp_parser_diagnose_invalid_type_name): Mention that concept is ↵Jakub Jelinek2-1/+5
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-06c-cppbuiltin.c (c_cpp_builtins): Don't define __cpp_consteval for now.Jakub Jelinek4-1/+10
* 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-06PR c++/92831 - CWG 1299, not extending temporary lifetime for ?:Jakub Jelinek5-13/+124
* 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-06re PR go/92820 (libgo.so.15 has executable stack)Ian Lance Taylor3-12/+24
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-06re PR other/29842 ([meta-bug] outstanding patches / issues from ↵Ian Lance Taylor2-6/+6
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-06re PR rtl-optimization/92176 (LRA problem with reloads for subreg operands)Andreas Krebbel4-3/+47
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-06Fix Fortran linker errors on AMD GCNKwok Cheung Yeung2-0/+6
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-06Avoid -Wincompatible-pointer-types on targets like arm-eabi.Martin Sebor3-3/+8
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[C++] Pass type uses through the verify_type_context hookRichard Sandiford14-2/+995
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-06Fix unrecognised GCN instruction.Andrew Stubbs2-2/+7
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-06Enable QI/HImode vector movesAndrew Stubbs3-131/+214
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-06re PR fortran/92775 (Incorrect expression in DW_AT_byte_stride on an array)Jakub Jelinek6-15/+28
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[OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) argumentsTobias Burnus26-112/+1672
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-06match.pd (nop_convert): Remove empty match.Richard Biener2-18/+20
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[testsuite][aarch64] type_redef_11.c: Update expected diagnostics.Christophe Lyon2-1/+8
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-06Avoid quadratic behaviour in prune_runtime_alias_test_listRichard Sandiford2-4/+19
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-06genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and VIEW_CONVERT{0,1,2}.Richard Biener3-87/+80
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-06cgraphclones.c (cgraph_node::create_clone): Only localize toplevel ↵Jan Hubicka2-1/+7
functions, not inline clones. * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel functions, not inline clones. From-SVN: r279036
2019-12-06* cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR.Jan Hubicka2-0/+5
From-SVN: r279035
2019-12-06genmatch.c (c_expr::gen_transform): Emit newlines from line number changes ↵Richard Biener2-1/+18
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-06re PR tree-optimization/92819 (Worse code generated on avx2 due to ↵Richard Biener5-6/+48
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-06re PR go/92810 (Compiling GCC go for aarch64_be-marvell-linux-gnu fails)Ian Lance Taylor3-1/+7
PR go/92810 libgo: recognize aarch64_be as arm64be Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210038 From-SVN: r279032
2019-12-05PR testsuite/92829 - several test case failures starting with r278983Martin Sebor2-2/+10
gcc/testsuite/ChangeLog: * gcc.dg/Warray-bounds-56.c: Rearrange code to avoid powerpc64* failures. From-SVN: r279031
2019-12-06common.opt (fprofile-partial-training): Terminate description with full stop.Jakub Jelinek2-1/+6
* common.opt (fprofile-partial-training): Terminate description with full stop. From-SVN: r279030
2019-12-05PR middle-end/92622 - FAIL: gcc.dg/Warray-bounds-22.c on ILP32: missing ↵Martin Sebor2-15/+23
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-06Daily bump.GCC Administrator1-1/+1
From-SVN: r279028
2019-12-06Do not clear m_vr and bits in ipa_set_jf_unknown.Jan Hubicka2-16/+16
* 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-06re PR tree-optimization/92768 (Maybe a wrong code for vector constants)Jakub Jelinek2-1/+7
PR tree-optimization/92768 * gcc.dg/pr92768.c: Add -w -Wno-psabi to dg-options. From-SVN: r279024
2019-12-05Disable --eh-frame-hdr with -pie or -shared on nios2-linux-gnu.Sandra Loosemore5-0/+63
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-05Fix g++.dg/torture/pr59226.CJan Hubicka2-1/+6
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-05PR c++/91353 - P1331R2: Allow trivial default init in constexpr contexts.Marek Polacek41-57/+666
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-05PR c++/92271 - make __is_same alias for __is_same_as.Marek Polacek6-1/+23
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-05cgraphclones.c (localize_profile): New function.Jan Hubicka7-9/+94
* 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[Patch, GCC] Fix a condition post r278611Sudakshina Das2-1/+6
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-05re PR go/92820 (libgo.so.15 has executable stack)Ian Lance Taylor2-2/+3
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-05OpenMP] Fix use_device_… with absent optional argTobias Burnus6-28/+68
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* cp-gimplify.c: Include memmodel.h.David Edelsohn2-0/+5
From-SVN: r279003
2019-12-05Check for bitwise identity when encoding VECTOR_CSTs (PR 92768)Richard Sandiford6-5/+35
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-05libstdc++: Fix bug in std::span testJonathan Wakely2-2/+13
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-05libstdc++: Implement P1872R0 and P1394R0 for std::spanJeanHeyd "ThePhD" Meneide5-227/+141
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-05re PR tree-optimization/92818 (Typo in vec_perm -> bit_insert pattern)Richard Biener5-3/+32
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-05libstdc++: Define std::lexicographical_compare_three_way for C++20Jonathan Wakely4-0/+302
* 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