- 22 Mar, 2019 9 commits
-
-
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Pierre-Marie de Rodat committed -
[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
Bill Schmidt committed -
<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
Jakub Jelinek committed -
sse.md (<avx512>_fmadd_<mode>_mask<round_name>, [...]): Use <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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Martin Sebor committed -
From-SVN: r269866
GCC Administrator committed
-
- 21 Mar, 2019 20 commits
-
-
This is the Intel implementation of the C++17 parallel algorithms, which has been donated to both GCC and LLVM. The upstream project is at - https://reviews.llvm.org/source/pstl/ The new files in the include/pstl sub-directory are covered by the LICENSE.txt in that sub-directory, as are the tests in testsuite/**/pstl/* * include/Makefile.am (std_header): Add ${std_srcdir}/execution. (pstl_srcdir, pstl_builddir, pstl_headers): New variables. (allstamped): Add stamp-pstl. (install-headers): Add ptsl_builddir. * include/Makefile.in: Regenerate. * include/bits/c++config: Add pstl configuration. * include/pstl/LICENSE.txt: New file. * include/pstl/algorithm_fwd.h: New file. * include/pstl/algorithm_impl.h: New file. * include/pstl/execution_defs.h: New file. * include/pstl/execution_impl.h: New file. * include/pstl/glue_algorithm_defs.h: New file. * include/pstl/glue_algorithm_impl.h: New file. * include/pstl/glue_execution_defs.h: New file. * include/pstl/glue_memory_defs.h: New file. * include/pstl/glue_memory_impl.h: New file. * include/pstl/glue_numeric_defs.h: New file. * include/pstl/glue_numeric_impl.h: New file. * include/pstl/memory_impl.h: New file. * include/pstl/numeric_fwd.h: New file. * include/pstl/numeric_impl.h: New file. * include/pstl/parallel_backend.h: New file. * include/pstl/parallel_backend_tbb.h: New file. * include/pstl/parallel_backend_utils.h: New file. * include/pstl/parallel_impl.h: New file. * include/pstl/pstl_config.h: New file. * include/pstl/unseq_backend_simd.h: New file. * include/pstl/utils.h: New file. * include/std/algorithm: Include parallel algorithm implementations. * include/std/execution: New file. * include/std/memory: Include parallel algorithm implementations. * include/std/numeric: Include parallel algorithm implementations. * include/std/version: Add parallel algorithms feature test macro. * testsuite/util/pstl/pstl_test_config.h: New file. * testsuite/util/pstl/test_utils.h: New file. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file. * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file. * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file. * testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file. * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file. * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file. * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file. * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file. * testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file. * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file. * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file. * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file. * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file. * testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file. * testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file. * testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file. * testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file. * testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file. * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file. * testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file. From-SVN: r269863
Thomas Rodgers committed -
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
Jan Hubicka committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
* 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
Jakub Jelinek committed -
[PR72741] Properly handle clauses specifying the level of parallelism for '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
Thomas Schwinge committed -
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
Thomas Schwinge committed -
[PR72741] The name in a Fortran OpenACC 'routine' directive refers to the 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
Thomas Schwinge committed -
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
Thomas Schwinge committed -
..., 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
Thomas Schwinge committed -
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
Thomas Schwinge committed -
[testsuite, Fortran] Apply DejaGnu 1.4.4 work-around also to '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
Thomas Schwinge committed -
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
Thomas Schwinge committed -
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168408 From-SVN: r269841
Ian Lance Taylor committed -
re PR middle-end/89779 (internal compiler error: tree check: expected class ‘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
Richard Biener committed -
IS 29124 8.2 [sf.mathh] says that <math.h> should add the names of the special functions to the global namespace. However, C++17 Annex D [depr.c.headers] excludes those functions explicitly, so they should not be placed in the global namespace unconditionally for C++17. Only add them to the global namespace when IS 29124 is explicitly requested via the __STDCPP_WANT_MATH_SPEC_FUNCS__ macro. * include/c_compatibility/math.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__] (assoc_laguerre, assoc_laguerref, assoc_laguerrel, assoc_legendre) (assoc_legendref, assoc_legendrel, beta, betaf, betal, comp_ellint_1) (comp_ellint_1f, comp_ellint_1l, comp_ellint_2, comp_ellint_2f) (comp_ellint_2l, comp_ellint_3, comp_ellint_3f, comp_ellint_3l) (cyl_bessel_i, cyl_bessel_if, cyl_bessel_il, cyl_bessel_j) (cyl_bessel_jf, cyl_bessel_jl, cyl_bessel_k, cyl_bessel_kf) (cyl_bessel_kl, cyl_neumann, cyl_neumannf, cyl_neumannl, ellint_1) (ellint_1f, ellint_1l, ellint_2, ellint_2f, ellint_2l, ellint_3) (ellint_3f, ellint_3l, expint, expintf, expintl, hermite, hermitef) (hermitel, laguerre, laguerref, laguerrel, legendre, legendref) (legendrel, riemann_zeta, riemann_zetaf, riemann_zetal, sph_bessel) (sph_besself, sph_bessell, sph_legendre, sph_legendref, sph_legendrel) (sph_neumann, sph_neumannf, sph_neumannl): Only add using-declarations when the special functions IS is enabled, not for C++17. * testsuite/26_numerics/headers/cmath/functions_global_c++17.cc: Replace with ... * testsuite/26_numerics/headers/cmath/functions_global.cc: New test, without checks for special functions in C++17. * testsuite/26_numerics/headers/cmath/special_functions_global.cc: New test. From-SVN: r269837
Jonathan Wakely committed -
These headers were missed in the previous commit for this bug. There are also several "" includes in the profile mode headers, but because they're deprecated I'm not fixing them. * include/backward/hash_map: Use <> for includes not "". * include/backward/hash_set: Likewise. * include/backward/strstream: Likewise. * include/tr1/bessel_function.tcc: Likewise. * include/tr1/exp_integral.tcc: Likewise. * include/tr1/legendre_function.tcc: Likewise. * include/tr1/modified_bessel_func.tcc: Likewise. * include/tr1/riemann_zeta.tcc: Likewise. From-SVN: r269835
Jonathan Wakely committed -
2019-03-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78645 * g++.dg/cpp0x/constexpr-ice20.C: New. From-SVN: r269834
Paolo Carlini committed -
/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
Paolo Carlini committed -
From-SVN: r269831
GCC Administrator committed
-
- 20 Mar, 2019 6 commits
-
-
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
Iain Buclaw committed -
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
Janus Weil committed -
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
Jason Merrill committed -
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
Andreas Krebbel committed -
PR target/89752 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't update this_alternative nor this_alternative_set. * g++.target/aarch64/aarch64.exp: New file. * g++.target/aarch64/pr89752.C: New test. From-SVN: r269819
Jakub Jelinek committed -
From-SVN: r269817
GCC Administrator committed
-
- 19 Mar, 2019 5 commits
-
-
gcc/c/ChangeLog: PR tree-optimization/89688 * c-decl.c (finish_decl): Call braced_lists_to_string for more kinds of initializers. gcc/c-family/ChangeLog: PR tree-optimization/89688 * c-common.c (braced_list_to_string): Make static. (braced_lists_to_strings): Define new function. * c-common.h (braced_list_to_string): Remove. (braced_lists_to_strings): Declare. gcc/cp/ChangeLog: PR tree-optimization/89688 * typeck2.c (store_init_value): Call braced_lists_to_string for more kinds of initializers. gcc/testsuite/ChangeLog: PR tree-optimization/89688 * gcc.dg/strlenopt-61.c: New test. * g++.dg/warn/Wstringop-overflow-2.C: New test. From-SVN: r269814
Martin Sebor committed -
gcc/ PR target/89411 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals align, size, offset. Use them to handle a BLKmode reference. Update comment. (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. gcc/testsuite/ PR target/89411 * gcc.target/riscv/losum-overflow.c: New test. From-SVN: r269813
Jim Wilson committed -
PR rtl-optimization/89768 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode instead of GEN_INT. (unroll_loop_runtime_iterations): Likewise. From-SVN: r269812
Jakub Jelinek committed -
In the C calling convention, on AMD64, and probably a number of other architectures, a 3-word struct argument is passed on stack. This is less efficient than passing in three registers. Further, this may affect the code generation in other part of the program, even if the function is not actually called. Slices are common in Go and append is a common slice operation, which calls growslice in the growing path. To improve the code generation, pass the slice header's three fields as separate values, instead of a struct, to growslice. The drawback is that this makes the runtime implementation slightly diverges from the gc runtime. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168277 From-SVN: r269811
Ian Lance Taylor committed -
gcc/ChangeLog: * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p rather than endptr as an indicator of nul-termination. From-SVN: r269809
Martin Sebor committed
-