aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-03-25re PR c++/60702 (thread_local initialization)Jakub Jelinek3-12/+27
PR c++/60702 * g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives for _ZTH* calls. * g++.dg/tls/thread_local11a.C: New test. From-SVN: r269912
2019-03-25S/390: Cleanup builtin types fileAndreas Krebbel2-57/+50
gcc/ChangeLog: 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390-builtin-types.def: Remove few unused types and fix sort order for others. From-SVN: r269909
2019-03-25S/390: Improve debug output for builtin matchingAndreas Krebbel2-1/+12
gcc/ChangeLog: 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390-c.c (s390_fn_types_compatible): Print the expected and found types with -mdebug during builtin matching. From-SVN: r269908
2019-03-25re PR middle-end/89790 (ICE segfault in operand_equal_p() at ↵Richard Biener4-0/+36
fold-const.c:3000 with -Wduplicated-cond since r269838) 2019-03-25 Richard Biener <rguenther@suse.de> PR middle-end/89790 * fold-const.c (operand_equal_p): Revert last change with updated comment. * g++.dg/pr89790.C: New testcase. From-SVN: r269907
2019-03-25[doc] Fix typos in MINLOC, MAXLOC documentationKyrylo Tkachov2-4/+9
I think there's a typo in the documentation of the MINLOC and MAXLOC intrinsics. It implies that when the BACK argument is true it returns the first occurrence of the min/max value, but my understanding is that it should return the last occurrence. This patch fixes the documentation. * intrinsic.texi (MINLOC): Fix typo in BACK argument documentation. (MAXLOC): Likewise. From-SVN: r269906
2019-03-25Daily bump.GCC Administrator1-1/+1
From-SVN: r269905
2019-03-24rs6000: Make CSE'ing __tls_get_addr calls possibleSegher Boessenkool3-1/+18
CSE does not consider calls, not even const calls. This patch puts a REG_EQUAL note on the pseudo we assign the __tls_get_addr result to, so that those pseudos can be CSE'd and the extra calls deleted as dead code. CSE should really handle const calls directly, but it is stage 4. * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL notes for the result of the __tls_get_addr calls. * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. From-SVN: r269902
2019-03-24* testsuite/ChangeLog: Fix ChangeLog entry.Uros Bizjak1-6/+2
From-SVN: r269901
2019-03-24pr82281.c: Compile only for ia32 effective target.Uros Bizjak3-4/+15
* gcc.target/i386/pr82281.c: Compile only for ia32 effective target. (dg-options): Remove -m32. Add -msse2 -mtune=znver1. * gcc.target/i386/pr89676.c: Compile only for ia32 effective target. (dg-options): Remove -m32 and -march=i686. Add -mno-stv. From-SVN: r269900
2019-03-24* config/bfin/bfin.md (movpdi): Fix length for alternative 1.Jeff Law2-0/+3
From-SVN: r269899
2019-03-24d/dmd: Merge upstream dmd 74ac873beIain Buclaw5-63/+26
Introduces a fix for a segfault when building without object.d being present, as well as MinGW host build errors in dmd/root/filename.c. Updates a couple of non-portable tests, removing one and fixing the other. From-SVN: r269897
2019-03-24re PR rtl-optimization/87761 ([MIPS] New FAIL: ↵Jeff Law2-29/+61
gcc.target/mips/fix-r4000-10.c -O1 start with r265398) PR rtl-optimization/87761 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan as needed. (pass_cprop_hardreg::execute): Add df note problem and defer insn rescans. Reprocess blocks as needed, calling df_analyze before reprocessing. Always call df_analyze before fixing up debug bind insns. From-SVN: r269896
2019-03-24re PR fortran/78865 (ICE in create_tmp_var, at gimple-expr.c:473)Thomas Koenig6-46/+89
2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78865 * interface.c (compare_actual_formal): Change errors about missing or extra to gfc_error_now to make sure they are issued. Change "spec" to "specifier" in message. * resolve.c (resolve_global_procedure): Also check for mismatching interface with global symbols if the namespace has already been resolved. 2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78865 * gfortran.dg/altreturn_10.f90: New test. * gfortran.dg/whole_file_3.f90: Change dg-warning to dg-error. From-SVN: r269895
2019-03-24Daily bump.GCC Administrator1-1/+1
From-SVN: r269894
2019-03-23rs6000: Fix _mm_movemask_pi8 emulation for 32 bitSegher Boessenkool2-0/+11
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit big endian. From-SVN: r269891
2019-03-22[AARCH64] Fix zero_extendsidi2_aarch64 type attributeAndrew Pinski2-1/+6
2019-03-22 Andrew Pinski <apinski@marvell.com> * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type attrribute for uxtw. From-SVN: r269886
2019-03-23Daily bump.GCC Administrator1-1/+1
From-SVN: r269885
2019-03-22* gcc.pot: Regenerate.Joseph Myers2-7946/+8308
From-SVN: r269882
2019-03-22re PR rtl-optimization/87761 ([MIPS] New FAIL: ↵Jeff Law3-5/+30
gcc.target/mips/fix-r4000-10.c -O1 start with r265398) PR rtl-optimization/87761 * config/mips/mips-protos.h (mips_split_move): Add new argument. (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. (mips_split_move): Accept new INSN argument. Try to forward SRC into the next instruction. (mips_split_move_insn): Pass INSN through to mips_split_move. From-SVN: r269880
2019-03-22re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)Vladimir Makarov4-0/+35
2019-03-22 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89676 * lra-constraints.c (curr_insn_transform): Do match reload for early clobbers even if the match was successful. 2019-03-22 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89676 * gcc.target/i386/pr89676.c: New. From-SVN: r269878
2019-03-22re PR c++/60702 (thread_local initialization)Jakub Jelinek21-25/+279
PR c++/60702 * cp-tree.h (get_tls_wrapper_fn): Remove declaration. (maybe_get_tls_wrapper_call): Declare. * decl2.c (get_tls_wrapper_fn): Make static. (maybe_get_tls_wrapper_call): New function. * typeck.c (build_class_member_access_expr): Handle accesses to TLS variables. * semantics.c (finish_qualified_id_expr): Likewise. (finish_id_expression_1): Use maybe_get_tls_wrapper_call. * pt.c (tsubst_copy_and_build): Likewise. * g++.dg/tls/thread_local11.C: New test. * g++.dg/tls/thread_local11.h: New test. * g++.dg/tls/thread_local12a.C: New test. * g++.dg/tls/thread_local12b.C: New test. * g++.dg/tls/thread_local12c.C: New test. * g++.dg/tls/thread_local12d.C: New test. * g++.dg/tls/thread_local12e.C: New test. * g++.dg/tls/thread_local12f.C: New test. * g++.dg/tls/thread_local12g.C: New test. * g++.dg/tls/thread_local12h.C: New test. * g++.dg/tls/thread_local12i.C: New test. * g++.dg/tls/thread_local12j.C: New test. * g++.dg/tls/thread_local12k.C: New test. * g++.dg/tls/thread_local12l.C: New test. From-SVN: r269875
2019-03-22re PR c++/87481 (Endless loop with optimisation in C++17)Jakub Jelinek8-3/+81
PR c++/87481 * doc/invoke.texi (-fconstexpr-ops-limit=): Document. * c.opt (-fconstexpr-ops-limit=): New option. * constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member. (cxx_eval_constant_expression): When not skipping, not constant class or location wrapper, increment *ctx->constexpr_ops_count and if it is above constexpr_loop_nest_limit, diagnose failure. (cxx_eval_outermost_constant_expr): Add constexpr_ops_count and initialize ctx.constexpr_ops_count to its address. (is_sub_constant_expr): Likewise. * g++.dg/cpp1y/constexpr-87481.C: New test. From-SVN: r269874
2019-03-22[Ada] GNAT.Sockets: fix recent regressionsPierre-Marie de Rodat4-7/+35
The support for IPv6 that was added since last release triggered regressions on various platforms. The size of structures passed to low level routines was not correct anymore: it should depend on the address family, now. 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com> gcc/ada/ PR ada/89583 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket, Send_Socket): Fix the computation of structure lengths passed to low level routines. (Is_IPv6_Address): Fix the number of expected colons. 2019-03-22 Simon Wright <simon@pushface.org> gcc/testsuite/ PR ada/89583 * gnat.dg/socket2.adb: New. From-SVN: r269873
2019-03-22mmintrin.h (_mm_sub_pi32): Fix typo.Bill Schmidt4-4/+20
[gcc] 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. [gcc/testsuite] 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. From-SVN: r269871
2019-03-22* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,Jakub Jelinek2-11/+24
<avx512>_fmsub_<mode>_mask3<round_name>, <avx512>_fnmadd_<mode>_mask3<round_name>, <avx512>_fnmsub_<mode>_mask3<round_name>, avx512f_vmfmadd_<mode>_mask3<round_name>, avx512f_vmfmsub_<mode>_mask3<round_name>, *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> instead of register_operand and %v instead of v for match_operand 1. (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use <round_nimm_predicate> instead of register_operand and %v instead of v for match_operand 1. From-SVN: r269870
2019-03-22sse.md (<avx512>_fmadd_<mode>_mask<round_name>, [...]): Use ↵Jakub Jelinek2-30/+51
<round_nimm_predicate> instead of nonimmediate_operand. * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, <avx512>_fmadd_<mode>_mask3<round_name>, <avx512>_fmsub_<mode>_mask<round_name>, <avx512>_fmsub_<mode>_mask3<round_name>, <avx512>_fnmadd_<mode>_mask<round_name>, <avx512>_fnmadd_<mode>_mask3<round_name>, <avx512>_fnmsub_<mode>_mask<round_name>, <avx512>_fnmsub_<mode>_mask3<round_name>, <avx512>_fmaddsub_<mode>_mask<round_name>, <avx512>_fmaddsub_<mode>_mask3<round_name>, <avx512>_fmsubadd_<mode>_mask<round_name>, <avx512>_fmsubadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> instead of nonimmediate_operand. (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>): Use register_operand instead of <round_nimm_predicate> for the operand that needs to match output. (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>, *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>): Likewise. Formatting fixes. From-SVN: r269869
2019-03-22re PR target/89784 (Missing AVX512 intrinsics)Jakub Jelinek27-2/+1871
PR target/89784 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): New builtins. * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>, avx512f_vmfmadd_<mode>_mask3<round_name>, avx512f_vmfmadd_<mode>_maskz_1<round_name>, *avx512f_vmfmsub_<mode>_mask<round_name>, avx512f_vmfmsub_<mode>_mask3<round_name>, *avx512f_vmfmasub_<mode>_maskz_1<round_name>, *avx512f_vmfnmadd_<mode>_mask<round_name>, *avx512f_vmfnmadd_<mode>_mask3<round_name>, *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, *avx512f_vmfnmsub_<mode>_mask<round_name>, *avx512f_vmfnmsub_<mode>_mask3<round_name>, *avx512f_vmfnmasub_<mode>_maskz_1<round_name>): New define_insns. (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. * gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): Define. * gcc.target/i386/sse-14.c: Add tests for _mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins. * gcc.target/i386/sse-22.c: Likewise. 2019-03-22 Hongtao Liu <hongtao.liu@intel.com> * gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests for _mm_mask{,3,z}_*. * gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise. * gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test. * gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test. * gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test. * gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test. * gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test. From-SVN: r269868
2019-03-21PR tree-optimization/89350 - Wrong -Wstringop-overflow= warning since r261518Martin Sebor13-52/+600
gcc/ChangeLog: PR tree-optimization/89350 * builtins.c (compute_objsize): Also ignore offsets whose upper bound is negative. * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. (builtin_memref::builtin_memref): Initialize new member. Allow EXPR to be null. (builtin_memref::extend_offset_range): Replace local with a member. Avoid assuming pointer offsets are unsigned. (builtin_memref::set_base_and_offset): Determine base object before computing offset range. (builtin_access::builtin_access): Handle memset. (builtin_access::generic_overlap): Replace local with a member. (builtin_access::strcat_overlap): Same. (builtin_access::overlap): Same. (maybe_diag_overlap): Same. (maybe_diag_access_bounds): Same. (wrestrict_dom_walker::check_call): Handle memset. (check_bounds_or_overlap): Same. gcc/testsuite/ChangeLog: PR tree-optimization/89350 * gcc.dg/Wstringop-overflow.c: Xfail overly ambitious tests. * gcc.dg/Wstringop-overflow-11.c: New test. * gcc.dg/Wstringop-overflow-12.c: New test. * gcc.dg/pr89350.c: New test. * gcc.dg/pr40340-1.c: Adjust expected warning. * gcc.dg/pr40340-2.c: Same. * gcc.dg/pr40340-4.c: Same. * gcc.dg/pr40340-5.c: Same. From-SVN: r269867
2019-03-22Daily bump.GCC Administrator1-1/+1
From-SVN: r269866
2019-03-21re PR lto/89692 (ICE in streamer_write_chain, at tree-streamer-out.c:506)Jan Hubicka4-7/+57
PR lto/89692 * tree.c (fld_type_variant, fld_incomplete_type_of, fld_process_array_type): Call fld->pset.add and don't call add_tree_to_fld_list if it returns true. (free_lang_data_in_type): Similarly with self-recursive call. Purge non-marked types from TYPE_NEXT_VARIANT list. (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). * g++.dg/other/pr89692.C: New test. From-SVN: r269862
2019-03-21re PR c++/71446 (Incorrect overload resolution when using designated ↵Jakub Jelinek2-19/+17
initializers) PR c++/71446 * call.c (filed_in_pset): Change pset from hash_set<tree> * to hash_set<tree, true> &, adjust uses accordingly. (build_aggr_conv): Change pset from hash_set<tree> * to hash_set<tree, true>. Replace goto fail; with return NULL;, adjust pset uses. From-SVN: r269861
2019-03-21re PR c++/89767 (ICE with tuple and optimization)Jakub Jelinek7-30/+115
PR c++/89767 * parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id variables, check for duplicates in this function. * lambda.c (add_capture): Don't check for duplicates nor use IDENTIFIER_MARKED. (register_capture_members): Don't clear IDENTIFIER_MARKED here. * g++.dg/cpp1y/lambda-init18.C: New test. * g++.dg/cpp1y/lambda-init19.C: New test. * g++.dg/cpp1y/pr89767.C: New test. From-SVN: r269860
2019-03-21hash-table.h (hash_table): Add Lazy template parameter defaulted to false...Jakub Jelinek9-95/+248
* hash-table.h (hash_table): Add Lazy template parameter defaulted to false, if true, don't alloc_entries during construction, but defer it to the first method that needs m_entries allocated. (hash_table::hash_table, hash_table::~hash_table, hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, hash_table::clear_slot, hash_table::traverse_noresize, hash_table::traverse, hash_table::iterator::slide): Adjust all methods. * hash-set.h (hash_set): Add Lazy template parameter defaulted to false. (hash_set::contains): If Lazy is true, use find_slot_with_hash with NO_INSERT instead of find_with_hash. (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, hash_set::m_table): Add Lazy to template params of hash_table. (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. * attribs.c (test_attribute_exclusions): Likewise. * hash-set-tests.c (test_set_of_strings): Add iterator tests for hash_set. Add tests for hash_set with Lazy = true. c-family/ * c-common.c (per_file_includes_t): Use false as Lazy in hash_set template param. jit/ * jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy in hash_set template param. From-SVN: r269859
2019-03-21[PR72741] Properly handle clauses specifying the level of parallelism for ↵Thomas Schwinge10-0/+968
'external' Fortran OpenACC routines ..., so as to also for these enable the generic middle end OMP code to verify proper nesting of loops/routines regarding their levels of parallelism. gcc/fortran/ PR fortran/72741 * openmp.c (gfc_match_oacc_routine): Set the level of parallelism for all variants. (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target. gcc/testsuite/ PR fortran/72741 * c-c++-common/goacc/routine-3-extern.c: New file. * c-c++-common/goacc/routine-3.c: Adjust. * c-c++-common/goacc/routine-4-extern.c: New file. * c-c++-common/goacc/routine-4.c: Adjust. * gfortran.dg/goacc/routine-module-3.f90: New file. * gfortran.dg/goacc/routine-external-level-of-parallelism-1.f: New file. * gfortran.dg/goacc/routine-external-level-of-parallelism-2.f: Likewise. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> From-SVN: r269858
2019-03-21[PR89773] Fortran OpenACC 'routine' directive refuses procedures with ↵Thomas Schwinge8-12/+96
implicit EXTERNAL attribute gcc/fortran/ PR fortran/89773 * gfortran.h (gfc_oacc_routine_name): Add loc member. (gfc_resolve_oacc_routines): Declare. * openmp.c (gfc_match_oacc_routine): Move some error checking into... (gfc_resolve_oacc_routines): ... this new function. * resolve.c (resolve_codes): Call it. gcc/testsuite/ PR fortran/89773 * gfortran.dg/goacc/pr89773.f90: New file. * gfortran.dg/goacc/pr77765.f90: Adjust. * gfortran.dg/goacc/routine-6.f90: Adjust, and extend. From-SVN: r269857
2019-03-21[PR72741] The name in a Fortran OpenACC 'routine' directive refers to the ↵Thomas Schwinge4-2/+11
containing subroutine or function gcc/fortran/ PR fortran/72741 * openmp.c (gfc_match_oacc_routine): Clarify. gcc/testsuite/ PR fortran/72741 * gfortran.dg/goacc/routine-module-mod-1.f90: Update. From-SVN: r269856
2019-03-21[PR72741] Encode OpenACC 'routine' directive's level of parallelism inside ↵Thomas Schwinge6-1/+228
Fortran module files If 'use'ing with an old GCC a new module file (with OpenACC 'routine' directive's level of parallelism encoded), then that expectedly fails as follows: f951: Fatal Error: Reading module 'routine_module_mod_1' at line 27 column 21: find_enum(): Enum not found If 'use'ing with a new GCC an old module file (without OpenACC 'routine' directive's level of parallelism encoded), then that (silently) continues to accept the module file, and will proceed with the previous, erroneous behavior. These seem to be acceptable compromises, instead of incrementing 'MOD_VERSION'. gcc/fortran/ PR fortran/72741 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function. (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR, AB_OACC_ROUTINE_LOP_SEQ. (attr_bits): Add these. (mio_symbol_attribute): Handle these. gcc/testsuite/ PR fortran/72741 * gfortran.dg/goacc/routine-module-1.f90: New file. * gfortran.dg/goacc/routine-module-2.f90: Likewise. * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. From-SVN: r269855
2019-03-21[testsuite, Fortran] Provide 'dg-compile-aux-modules' in ↵Thomas Schwinge2-0/+27
'gfortran.dg/goacc/goacc.exp' ..., as yet another copy from 'gfortran.dg/dg.exp', which there are a few already. gcc/testsuite/ * gfortran.dg/goacc/goacc.exp (dg-compile-aux-modules): New proc. From-SVN: r269854
2019-03-21[testsuite] Fix 'dg-compile-aux-modules' diagnosticThomas Schwinge4-3/+9
gcc/testsuite/ PR fortran/56408 * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp (dg-compile-aux-modules): Fix diagnostic. * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise. * gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise. From-SVN: r269851
2019-03-21[testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to ↵Thomas Schwinge2-1/+15
'gfortran.dg/coarray/caf.exp:dg-compile-aux-modules' See trunk r215293. This unifies all 'dg-compile-aux-modules' instances. gcc/testsuite/ PR fortran/56408 * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround missing nexted dg-test call support in dejaGNU 1.4.4. From-SVN: r269848
2019-03-21[testsuite, Fortran] Consistently set 'DEFAULT_FFLAGS'Thomas Schwinge2-5/+11
In the same 'runtest' instance, 'global' variables persist from one '*.exp' file to another. All other '*.exp' files are using " -pedantic-errors" instead of the empty string as the default for 'DEFAULT_FFLAGS'. Thus this setting of 'DEFAULT_FFLAGS' is not idempotent, depends on whether 'gfortran.dg/ieee/ieee.exp', or an other defining '*.exp' file is executed first. gcc/testsuite/ PR fortran/29383 * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in other '*.exp' files. From-SVN: r269845
2019-03-21compiler: add a newline to function receiver type's debug dumpIan Lance Taylor2-2/+2
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168408 From-SVN: r269841
2019-03-21re PR middle-end/89779 (internal compiler error: tree check: expected class ↵Richard Biener5-9/+34
‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798) 2019-03-21 Richard Biener <rguenther@suse.de> PR tree-optimization/89779 * tree.c (tree_nop_conversion): Consolidate and fix defensive checks with respect to released SSA names now having error_mark_node type. * fold-const.c (operand_equal_p): Likewise. * gcc.dg/torture/pr89779.c: New testcase. From-SVN: r269838
2019-03-21re PR c++/78645 (ICE on invalid code (Segmentation fault, ↵Paolo Carlini2-0/+12
cxx_eval_call_expression)) 2019-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78645 * g++.dg/cpp0x/constexpr-ice20.C: New. From-SVN: r269834
2019-03-21re PR c++/89571 (ICE in nothrow_spec_p, at cp/except.c:1238)Paolo Carlini4-0/+22
/cp 2019-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/89571 * method.c (after_nsdmi_defaulted_late_checks): Avoid passing error_mark_node to comp_except_specs. /testsuite 2019-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/89571 * g++.dg/cpp0x/noexcept37.C: New. From-SVN: r269832
2019-03-21Daily bump.GCC Administrator1-1/+1
From-SVN: r269831
2019-03-20d: Fix ICE force_type_die, at dwarf2out.c using nested typesIain Buclaw5-7/+103
In functions whose return type is instantiated from a nested template, make sure that all members of the instance are emitted before finishing the outer function, otherwise they will be removed during the prune_unused_types pass. gcc/d/ChangeLog: 2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org> PR d/89017 * d-codegen.cc (d_decl_context): Skip over template instances when finding the context. * decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override. (build_type_decl): Include parameters in name of template types. gcc/testsuite/ChangeLog: 2019-03-21 Iain Buclaw <ibuclaw@gdcproject.org> PR d/89017 * gdc.dg/pr89017.d: New test. From-SVN: r269828
2019-03-20re PR fortran/71861 ([F03] ICE in write_symbol(): bad module symbol)Janus Weil4-0/+44
fix PR 71861 2019-03-20 Janus Weil <janus@gcc.gnu.org> PR fortran/71861 * symbol.c (check_conflict): ABSTRACT attribute conflicts with INTRINSIC attribute. 2019-03-20 Janus Weil <janus@gcc.gnu.org> PR fortran/71861 * gfortran.dg/interface_abstract_5.f90: New test case. From-SVN: r269827
2019-03-20PR c++/87480 - decltype of member access in default template argJason Merrill3-1/+29
The issue here is that declval<T>().d is considered instantiation-dependent within a template, as the access to 'd' might depend on the particular specialization. But when we're deducing template arguments for a call, we know that the call and the arguments are non-dependent, so we can do the substitution as though we aren't in a template. Which strictly speaking we aren't, since the default argument is considered a separate definition. * pt.c (type_unification_real): Accept a dependent result in template context. From-SVN: r269826
2019-03-20S/390: Fix PR89775. Stackpointer save/restore instructions removedAndreas Krebbel5-16/+74
Even if a global register is being clobbered in a function we usually do not save and restore it. However, we still have to do this if it is a special register. Most of the places in the backend handle this correctly but not the prologue/epilogue optimization. gcc/ChangeLog: 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> PR target/89775 * config/s390/s390.c (global_not_special_regno_p): Move to make it available to ... (s390_optimize_register_info): Use global_not_special_regno_p to check for global regs. 2019-03-20 Jakub Jelinek <jakub@redhat.com> PR target/89775 * gcc.target/s390/pr89775-1.c: New test. * gcc.target/s390/pr89775-2.c: New test. From-SVN: r269823