- 11 Oct, 2019 34 commits
-
-
The concepts merge brought this bit @@ -26326,9 +26559,9 @@ build_non_dependent_expr (tree expr) unexpected recursive instantiations. */ && !parsing_nsdmi () /* Don't do this during concept expansion either and for - the same reason. */ - && !expanding_concept ()) - fold_non_dependent_expr (expr, tf_none); + the same reason. */ + && !parsing_constraint_expression_p ()) + fold_non_dependent_expr (expr); STRIP_ANY_LOCATION_WRAPPER (expr); (which I'm not finding in the ChangeLog). Dropping tf_none means that fold_non_dependent_expr will use tf_warning_or_error by default, and in this test that causes an error: template<bool> struct cond; template<int> struct S { void f(int i) { cond<__builtin_constant_p(i)>(); } }; S<1> s; where it complains that cond<false> is incomplete. Which it is, but we're not actually instantiating the function f, so issuing an error seems overzealous (though not wrong), and it breaks a bunch of tests. This patch brings that tf_none back. We will still complain if we do instantiate f. * pt.c (build_non_dependent_expr): Call fold_non_dependent_expr with tf_none. * g++.dg/template/builtin2.C: New test. From-SVN: r276906
Marek Polacek committed -
2019-10-10 Paolo Carlini <paolo.carlini@oracle.com> * typeck.c (cp_build_binary_op): Do not handle RROTATE_EXPR and LROTATE_EXPR. * constexpr.c (cxx_eval_constant_expression): Likewise. (potential_constant_expression_1): Likewise. * cp-gimplify.c (cp_fold): Likewise. * pt.c (tsubst_copy): Likewise. From-SVN: r276903
Paolo Carlini committed -
* decl2.c (mark_used): Don't clobber DECL_SOURCE_LOCATION on explicitly defaulted functions. * method.c (synthesize_method): Likewise. From-SVN: r276902
Jason Merrill committed -
This addresses PR 91860 which has four testcases triggering internal errors. The problem here is that in combine when handling debug insns, we are trying to substitute (sign_extend:DI (const_int 8160 [0x1fe0])) as the value for (reg:DI 78 [ _9 ]) in the debug insn (debug_insn 29 28 30 2 (var_location:QI d (subreg:QI (reg:DI 78 [ _9 ]) 0)) "tmp4.c":11:5 -1 (nil)) This eventually triggers an abort because 8160 is not a sign-extended QImode value. In subst there is already code check for a CONST_INT inside a ZERO_EXTEND and simplify it. This needs to be extended to also handle a SIGN_EXTEND the same way. gcc/ PR rtl-optimization/91860 * combine.c (subst): If new_rtx is a constant, also check for SIGN_EXTEND when deciding whether to call simplify_unary_operation. gcc/testsuite/ PR rtl-optimization/91860 * gcc.dg/pr91860-1.c: New testcase. * gcc.dg/pr91860-2.c: New testcase. * gcc.dg/pr91860-3.c: New testcase. * gcc.dg/pr91860-4.c: New testcase. From-SVN: r276901
Jim Wilson committed -
2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91649 check.c (gfc_check_findloc): Additional checking for valid arguments 2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91649 * gfortran.dg/pr91649.f90: New test. From-SVN: r276900
Steven G. Kargl committed -
2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91715 * decl.c (gfc_match_prefix): If matching a type-spec returns an error, it's an error so re-act correctly. 2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91715 * gfortran.dg/function_kinds_5.f90: Prune run-on error. * gfortran.dg/pr85543.f90: Ditto. * gfortran.dg/pr91715.f90: New test. From-SVN: r276899
Steven G. Kargl committed -
2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/92018 * check.c (reset_boz): New function. (illegal_boz_arg, boz_args_check, gfc_check_complex, gfc_check_float, gfc_check_transfer): Use it. (gfc_check_dshift): Use reset_boz, and re-arrange the checking to help suppress possible run-on errors. (gfc_check_and): Restore checks for valid argument types. Use reset_boz, and re-arrange the checking to help suppress possible un-on errors. * resolve.c (resolve_function): Actual arguments cannot be BOZ in a function reference. 2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/92018 * gfortran.dg/gnu_logical_2.f90: Update dg-error regex. * gfortran.dg/pr81509_2.f90: Ditto. * gfortran.dg/pr92018.f90: New test. From-SVN: r276898
Steven G. Kargl committed -
2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/92019 * array.c (match_subscript): BOZ cannot be an array subscript. 2019-10-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/92019 * gfortran.dg/pr92019.f90: New test. From-SVN: r276897
Steven G. Kargl committed -
ISO C2x adds decimal floating point as an optional standard feature. This patch accordingly makes GCC accept the _Decimal* keywords in strict C2x mode, using pedwarn_c11 to get a warning for -Wc11-c2x-compat. (Constants, where the pedwarn is in libcpp, will be dealt with separately.) The _Decimal* keywords are marked with D_EXT, meaning they are not considered keywords at all in strict conformance modes. This is contrary to the normal practice for most implementation-namespace keywords, which are accepted in all standards modes but with appropriate pedwarns for older standards. This patch removes D_EXT from those keywords so they are accepted as keywords for all standards, consequently removing the gcc.dg/dfp/keywords-ignored-c99.c test that is no longer valid. (A new D_C2X for keywords will still be needed if any new keywords get added that aren't in the implementation namespace for older standards; there are proposals for such keywords, albeit as predefined macros that might not actually need new keywords in the compiler in all cases. If the DFP keywords end up as decimal32 etc., of course appropriate compiler and testcase changes will be needed, and a version of keywords-ignored-c99.c would make sense again with such spellings.) Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: * c-decl.c (declspecs_add_type): Use pedwarn_c11 for DFP types. gcc/c-family: * c-common.c (c_common_reswords): Do not use D_EXT for _Decimal32, _Decimal64 and _Decimal128. gcc/testsuite: * gcc.dg/dfp/c11-keywords-1.c, gcc.dg/dfp/c11-keywords-2.c, gcc.dg/dfp/c2x-keywords-1.c, gcc.dg/dfp/c2x-keywords-2.c: New tests. * gcc.dg/dfp/keywords-ignored-c99.c: Remove test. * gcc.dg/dfp/constants-c99.c, gcc.dg/dfp/keywords-c89.c, gcc.dg/dfp/keywords-c99.c: Use -pedantic-errors. From-SVN: r276896
Joseph Myers committed -
From-SVN: r276894
Joseph Myers committed -
There are currently no tests for [concepts.compare], but they will be added ASAP. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/precompiled/stdc++.h: Include <concepts>. * include/std/concepts: New header for C++20. * include/std/version (__cpp_lib_concepts): Define. * scripts/create_testsuite_files: Look for test files in new std directory. * testsuite/libstdc++-dg/conformance.exp: Likewise. * testsuite/std/concepts/concepts.callable/invocable.cc: New test. * testsuite/std/concepts/concepts.callable/regular_invocable.cc: New test. * testsuite/std/concepts/concepts.callable/relation.cc: New test. * testsuite/std/concepts/concepts.callable/strictweakorder.cc: New test. * testsuite/std/concepts/concepts.lang/concept.arithmetic/ floating_point.cc: New test. * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: New test. * testsuite/std/concepts/concepts.lang/concept.arithmetic/ signed_integral.cc: New test. * testsuite/std/concepts/concepts.lang/concept.arithmetic/ unsigned_integral.cc: New test. * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.common/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.defaultconstructible/ 1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.derived/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.same/1.cc: New test. * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: New test. * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: New test. * testsuite/std/concepts/concepts.lang/concept.swappable/ swappable_with.cc: New test. * testsuite/std/concepts/concepts.object/copyable.cc: New test. * testsuite/std/concepts/concepts.object/movable.cc: New test. * testsuite/std/concepts/concepts.object/regular.cc: New test. * testsuite/std/concepts/concepts.object/semiregular.cc: New test. From-SVN: r276892
Jonathan Wakely committed -
By using the built-in we don't need to match a partial specialization for std::is_same and don't need to instantiate std::is_same at all for uses of std::is_same_v. * include/std/type_traits (is_same): Replace partial specialization by using __is_same_as built-in in primary template. (is_same_v): Use __is_same_as built-in instead of instantiating the is_same trait. From-SVN: r276891
Jonathan Wakely committed -
PR libstdc++/92059 * include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all special member functions as defaulted. Add noexcept to most members. (__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)): Mask off unwanted bits in the __val parameter. Avoid undefined left shifts. (__dynamic_bitset_base::_M_assign): Remove. (__dynamic_bitset_base::_M_do_reset): Use std::fill. (__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when block_type has lower rank than int. (dynamic_bitset): Add noexcept to most members. Use injected-class-name in return types and parameter types. (dynamic_bitset::_M_Nb): Add default member initializer. (dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as defaulted. (dynamic_bitset(dynamic_bitset&&)): Clear source object after move. (dynamic_bitset::operator=(const dynamic_bitset&)): Define as defaulted. (dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier. Define without using swap, to propagate allocator correctly. (dynamic_bitset(const char*, const _Alloc&)): Use strlen. (dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use casts to avoid unwanted integer promotions. (dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and add default template arguments and default argument to simplify usage. (dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr. (operator==(const dynamic_bitset&, const dynamic_bitset&)) (operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb. * include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr): Adjust template parameters to match declaration. * testsuite/tr2/dynamic_bitset/cmp.cc: New test. * testsuite/tr2/dynamic_bitset/cons.cc: New test. * testsuite/tr2/dynamic_bitset/copy.cc: New test. * testsuite/tr2/dynamic_bitset/move.cc: New test. * testsuite/tr2/dynamic_bitset/pr92059.cc: New test. From-SVN: r276890
Jonathan Wakely committed -
* include/bits/charconv.h (__to_chars_len): Avoid -Wsign-compare warnings. From-SVN: r276889
Jonathan Wakely committed -
store_bit_field already takes a poly_uint64 size, so we can relax the INTVAL to rtx_to_poly_int64. This is tested by the SVE ACLE patches. 2019-10-11 Richard Sandiford <richard.sandiford@arm.com> gcc/ * expr.c (store_expr): Use rtx_to_poly_int64 rather than INTVAL when calling store_bit_field. From-SVN: r276888
Richard Sandiford committed -
Setting HONOR_REG_ALLOC_ORDER improves codesize with -Os, however it generates slower and larger code with -O2 and higher. So only set it when optimizing for size. On Cortex-A57 this improves SPECINT2006 by 0.15% and SPECFP2006 by 0.25% while reducing codesize. gcc/ * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for size. From-SVN: r276887
Wilco Dijkstra committed -
2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de> * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to vectorizable_live_operation. (vectorizable_live_operation): Adjust parameters. * tree-vect-stmts.c (vect_init_vector, vect_gen_widened_results_half): Fix typo in function comment. (can_vectorize_live_stmts): Adjust function comment. Adjust parameters. Adjust call to vectorizable_live_operation. (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts. (vect_transform_stmt): Adjust function comment. Adjust call to can_vectorize_live_stmts. * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters. From-SVN: r276886
Bernd Edlinger committed -
gcc/fortran/ PR fortran/92050 * trans-expr.c (gfc_conv_procedure_call): Handle code generated by -fcheck=all. gcc/testsuite/ PR fortran/92050 * gfortran.dg/pr92050.f90: New. From-SVN: r276885
Tobias Burnus committed -
2019-10-11 Richard Biener <rguenther@suse.de> PR tree-optimization/90883 PR tree-optimization/91091 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct alias-sets both for recording VN table entries and continuing walking after translating through copies. Handle same-sized reads from SSA names by returning the plain SSA name. (eliminate_dom_walker::eliminate_stmt): Properly handle non-size precision stores in redundant store elimination. * gcc.dg/torture/20191011-1.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-82.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-83.c: Likewise. * gcc.dg/tree-ssa/redundant-assign-zero-1.c: Disable FRE. * gcc.dg/tree-ssa/redundant-assign-zero-2.c: Likewise. From-SVN: r276882
Richard Biener committed -
* ggc-page.c (release_pages): Output statistics when !quiet_flag. (ggc_collect): Dump later to not interfere with release_page dump. (ggc_trim): New function. * ggc-none.c (ggc_trim): New. * ggc.h (ggc_trim): Declare. * lto.c (lto_wpa_write_files): Call ggc_trim. From-SVN: r276878
Jan Hubicka committed -
2019-10-11 Richard Biener <rguenther@suse.de> PR tree-optimization/92066 PR tree-optimization/92046 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Fix bogus cost model check. From-SVN: r276876
Richard Biener committed -
gcc/fortran/ * f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to gfc_omp_is_allocatable_or_ptr. * trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT only if not passed by value. * trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New. (gfc_trans_omp_clauses): For MAP, handle (present) optional arguments; for target update, handle allocatable/pointer scalars. * trans.h (gfc_omp_is_allocatable_or_ptr): Declare. gcc/ * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define. (LANG_HOOKS_DECLS): Add it. * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr; update comment for omp_is_optional_argument. * omp-general.c (omp_is_allocatable_or_ptr): New. * omp-general.h (omp_is_allocatable_or_ptr): Declare. * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle Fortran's optional arguments and allocatable/pointer scalars with use_device_addr. libgomp/ * testsuite/libgomp.fortran/use_device_addr-1.f90: New. * testsuite/libgomp.fortran/use_device_addr-2.f90: New. From-SVN: r276875
Tobias Burnus committed -
* gcc-interface/decl.c (elaborate_reference_1): Specifically deal with pointer displacement. * gcc-interface/decl.c (components_to_record): Use proper name. * gcc-interface/trans.c (Sloc_to_locus): Use standard types. From-SVN: r276874
Eric Botcazou committed -
decl.c (gnat_to_gnu_field): Adjust again the packing for a field without strict alignment and with an... * gcc-interface/decl.c (gnat_to_gnu_field): Adjust again the packing for a field without strict alignment and with an oversized clause. From-SVN: r276873
Eric Botcazou committed -
gcc/testsuite/ChangeLog: 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com> PR target/77918 * gcc.target/s390/s390.exp: Enable Fortran tests. * gcc.target/s390/zvector/autovec-double-quiet-eq.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-ge.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-gt.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-le.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-lt.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-ordered.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-uneq.c: New test. * gcc.target/s390/zvector/autovec-double-quiet-unordered.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-eq.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ge.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-gt-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-gt-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-gt.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-le-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-le-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-le.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-lt-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-lt-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-lt.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ltgt-z13-finite.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ltgt-z13.c: New test. * gcc.target/s390/zvector/autovec-double-signaling-ltgt.c: New test. * gcc.target/s390/zvector/autovec-double-smax-z13.F90: New test. * gcc.target/s390/zvector/autovec-double-smax.F90: New test. * gcc.target/s390/zvector/autovec-double-smin-z13.F90: New test. * gcc.target/s390/zvector/autovec-double-smin.F90: New test. * gcc.target/s390/zvector/autovec-float-quiet-eq.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-ge.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-gt.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-le.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-lt.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-ordered.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-uneq.c: New test. * gcc.target/s390/zvector/autovec-float-quiet-unordered.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-eq.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-ge.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-gt.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-le.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-lt.c: New test. * gcc.target/s390/zvector/autovec-float-signaling-ltgt.c: New test. * gcc.target/s390/zvector/autovec-fortran.h: New test. * gcc.target/s390/zvector/autovec-long-double-signaling-ge.c: New test. * gcc.target/s390/zvector/autovec-long-double-signaling-gt.c: New test. * gcc.target/s390/zvector/autovec-long-double-signaling-le.c: New test. * gcc.target/s390/zvector/autovec-long-double-signaling-lt.c: New test. * gcc.target/s390/zvector/autovec.h: New test. From-SVN: r276872
Ilya Leoshkevich committed -
dg-torture.exp=inf-compare-1.c is failing, because (qNaN > +Inf) comparison is compiled to CDB instruction, which does not signal an invalid operation exception. KDB should have been used instead. This patch introduces a new CCmode and a new pattern in order to generate signaling instructions in this and similar cases. gcc/ChangeLog: 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com> PR target/77918 * config/s390/2827.md: Add new opcodes. * config/s390/2964.md: Likewise. * config/s390/3906.md: Likewise. * config/s390/8561.md: Likewise. * config/s390/s390-builtins.def (s390_vfchesb): Use the new vec_cmpgev4sf_quiet_nocc. (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc. (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc. (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc. (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc. (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc. (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc. (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc. * config/s390/s390-modes.def (CCSFPS): New mode. * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS. (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT. (s390_branch_condition_mask): Reuse CCS for CCSFPS. (s390_expand_vec_compare): Use non-signaling patterns where necessary. (s390_reverse_condition): Support CCSFPS. * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern. * config/s390/vector.md: (VFCMP_HW_OP): Remove. (asm_fcmp_op): Likewise. (*smaxv2df3_vx): Use pattern for quiet comparison. (*sminv2df3_vx): Likewise. (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove. (*vec_cmpeq<mode>_quiet_nocc): New pattern. (vec_cmpgt<mode>_quiet_nocc): Likewise. (vec_cmplt<mode>_quiet_nocc): New expander. (vec_cmpge<mode>_quiet_nocc): New pattern. (vec_cmple<mode>_quiet_nocc): New expander. (*vec_cmpeq<mode>_signaling_nocc): New pattern. (*vec_cmpgt<mode>_signaling_nocc): Likewise. (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise. (*vec_cmpge<mode>_signaling_nocc): Likewise. (*vec_cmpge<mode>_signaling_finite_nocc): Likewise. (vec_cmpungt<mode>): New expander. (vec_cmpunge<mode>): Likewise. (vec_cmpuneq<mode>): Use quiet patterns. (vec_cmpltgt<mode>): Allow only on z14+. (vec_cmpordered<mode>): Use quiet patterns. (vec_cmpunordered<mode>): Likewise. (VEC_CMP_EXPAND): Add ungt and unge. gcc/testsuite/ChangeLog: 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/vector/vec-scalar-cmp-1.c: Adjust expectations. From-SVN: r276871
Ilya Leoshkevich committed -
* gimple-streamer-out.c (output_gimple_stmt): Add explicit function parameter. * lto-streamer-out.c: Include tree-dfa.h. (output_cfg): Do not use cfun. (lto_prepare_function_for_streaming): New. (output_function): Do not push cfun; do not initialize loop optimizer. * lto-streamer.h (lto_prepare_function_for_streaming): Declare. * passes.c (ipa_write_summaries): Use it. (ipa_write_optimization_summaries): Do not modify bodies. * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter. * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype. * tree-ssa-dse.c (pass_dse::execute): Update use of renumber_gimple_stmt_uids. * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise. * lto.c (lto_wpa_write_files): Prepare all bodies for streaming. From-SVN: r276870
Jan Hubicka committed -
* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the sign of the value when deciding to build a NEGATE_EXPR. <PLUS_EXPR>: Remove redundant line. <BIT_AND_EXPR>: Do the negation here. From-SVN: r276866
Eric Botcazou committed -
* gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Array_Subtype>: New case. Return the base type if the subtype is not constrained. From-SVN: r276865
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_{Integer|Real}>: New case to deal with the definition of named numbers. <E_Variable>: Minor tweaks. Set DECL_IGNORED_P on the CONST_DECL if a corresponding variable is built. * gcc-interface/trans.c (gnat_to_gnu) <N_Integer_Literal>: Return error_mark_node instead of aborting on overflow for named numbers. <N_Number_Declaration>: Reuse the <N_Object_Declaration> case and deal with error_mark_node specifically. * gcc-interface/utils.c (create_var_decl): Do not set DECL_IGNORED_P on CONST_DECLs. (gnat_write_global_declarations): Output global constants. From-SVN: r276864
Eric Botcazou committed -
My scripts and I unexpectedly erased gcc/ada/ChangeLog yesterday. This commit restores the ChangeLog file to its previous state and adds the entries for my commits yesterday. From-SVN: r276861
Pierre-Marie de Rodat committed -
PR c++/91987 cp/ * decl2.c (grok_array_decl): For -fstrong-eval-order, when array ref operands have been swapped and at least one operand has side-effects, revert the swapping before calling build_array_ref. * typeck.c (cp_build_array_ref): For non-ARRAY_TYPE array ref with side-effects on the index operand, if -fstrong-eval-order use save_expr around the array operand. (cp_build_binary_op): For shifts with side-effects in the second operand, wrap first operand into SAVE_EXPR and evaluate it before the shift. * semantics.c (handle_omp_array_sections_1): Temporarily disable flag_strong_eval_order during OMP_CLAUSE_REDUCTION array section processing. * cp-gimplify.c (gimplify_to_rvalue): New function. (cp_gimplify_expr): Use it. testsuite/ * g++.dg/cpp1z/eval-order6.C: New test. * g++.dg/cpp1z/eval-order7.C: New test. * g++.dg/cpp1z/eval-order8.C: New test. * c-c++-common/gomp/pr91987.c: New test. From-SVN: r276860
Jakub Jelinek committed -
2019-10-11 Kewen Lin <linkw@gcc.gnu.org> * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower vec_promote_demote cost to 1 for non-Power7 VSX architectures. From-SVN: r276859
Kewen Lin committed -
From-SVN: r276858
GCC Administrator committed
-
- 10 Oct, 2019 6 commits
-
-
GCC's <float.h> includes various macros for decimal floating-point types, defined if __STDC_WANT_DEC_FP__, as defined in TS 24732. TS 18661-2 and C2X make some changes to those macros. In TS 18661-2, they are to be defined if __STDC_WANT_IEC_60559_DFP_EXT__, and the *_SUBNORMAL_MIN macros are renamed to *_TRUE_MIN. In C2X, the macros are to be defined whenever DFP is supported, without needing any feature test macro to be defined. This patch updates the header accordingly. There is no existing predefined macro for whether the target supports DFP; rather than adding a new macro for that purpose, this patch changes the predefined macros used in <float.h> so that they are only defined when DFP is supported and thus can be used as conditionals; this is the same way predefined macros for _FloatN and _FloatNx types work. Although formally TR 24732 and TS 18661-2 say nothing about implementations lacking DFP support, it seems appropriate to avoid defining the macros in <float.h>, in the absence of DFP support, even if the respective feature test macros are defined. Bootstrapped with no regressions on x86_64-pc-linux-gnu. Also tested the c2x-float-no-dfp-* tests for aarch64-linux-gnu to make sure they do pass in a no-DFP configuration. gcc: * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP macros. [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]: Also define DFP macros for these conditions. [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN, DEC128_SUBNORMAL_MIN): Do not define. [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L] (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros. gcc/c-family: * c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP types if DFP not supported. gcc/testsuite: * gcc.dg/c11-float-dfp-1.c, gcc.dg/c2x-float-no-dfp-1.c, gcc.dg/c2x-float-no-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-1.c, gcc.dg/dfp/c2x-float-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-3.c, gcc.dg/dfp/tr24732-float-dfp-1.c, gcc.dg/dfp/ts18661-2-float-dfp-1.c: New tests. From-SVN: r276854
Joseph Myers committed -
2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com> Sandra Loosemore <sandra@codesourcery.com> gcc/ PR middle-end/26241 * doc/lto.texi (IPA): Reference to the IPA passes. * doc/passes.texi (Pass manager): Add node IPA passes and description for each IPA pass. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r276851
Xiong Hu Luo committed -
* ipa-reference.c: Do not include splay-tree.h (reference_vars_to_consider): Turn to hash map. (get_static_name, ipa_init, analyze_function, propagate, stream_out_bitmap, ipa_reference_write_optimization_summary, ipa_reference_write_optimization_summary): Update. From-SVN: r276850
Jan Hubicka committed -
From-SVN: r276849
Jan Hubicka committed -
Objective C V2 (m64) IVAR offset refs from Apple GCC-4.x have an indirection for m64 code on PPC (which is the only 64b user for Mach-O PIC). Apple GCC 4.x places the indirections in the .data section, however this seems to have been unintentional - and we are placing the indirections in the non-lazy symbol pointers section. gcc/ChangeLog: 2019-10-10 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.c: Lookup Objective C metadata and force indirection for IVAR refs. From-SVN: r276848
Iain Sandoe committed -
For the NeXT 64b ABI, IVAR refs are supposed to be indirected for Mach-O PIC. Identify them so that we can act as needed. gcc/objc/ChangeLog: 2019-10-10 Iain Sandoe <iain@sandoe.co.uk> * objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New. (meta_ivar_ref): New. * objc-next-runtime-abi-02.c (next_runtime_abi_02_init_metadata_attributes): Create the IVAR ref metadata identifier. (ivar_offset_ref): Tag IVAR refs with specific metadata. From-SVN: r276847
Iain Sandoe committed
-