commit: 750000d5c40334ae801fba6050b3027a8d86627e Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Jun 12 00:03:38 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jun 12 00:03:38 2022 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=750000d5
12.1.0: drop obsolete patch It's in the next snapshot. Bug: https://bugs.gentoo.org/847601 Signed-off-by: Sam James <sam <AT> gentoo.org> ...6_12.1.0-ICE-cxx_eval_constant_expression.patch | 100 --------------------- 12.1.0/gentoo/README.history | 3 - 2 files changed, 103 deletions(-) diff --git a/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch b/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch deleted file mode 100644 index 49bf69a..0000000 --- a/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch +++ /dev/null @@ -1,100 +0,0 @@ -https://bugs.gentoo.org/847601 -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105756 -https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=0ecb6b906f215ec56df1a555139abe9ad95414fb - -From 0ecb6b906f215ec56df1a555139abe9ad95414fb Mon Sep 17 00:00:00 2001 -From: Patrick Palka <ppa...@redhat.com> -Date: Fri, 3 Jun 2022 14:58:22 -0400 -Subject: [PATCH] c++: value-dep but not type-dep decltype expr [PR105756] - -Here during ahead of time instantiation of the value-dependent but not -type-dependent decltype expression (5 % N) == 0, cp_build_binary_op folds -the operands of the == via cp_fully_fold, which performs speculative -constexpr evaluation, and from which we crash for (5 % N) due to the -value-dependence. - -Since the operand folding performed by cp_build_binary_op appears to -be solely for sake of diagnosing overflow, and since these diagnostics -are suppressed when in an unevaluated context, this patch avoids this -crash by suppressing cp_build_binary_op's operand folding accordingly. - - PR c++/105756 - -gcc/cp/ChangeLog: - - * typeck.cc (cp_build_binary_op): Don't fold operands - when c_inhibit_evaluation_warnings. - -gcc/testsuite/ChangeLog: - - * g++.dg/cpp0x/decltype82.C: New test. ---- a/gcc/cp/typeck.cc -+++ b/gcc/cp/typeck.cc -@@ -4939,7 +4939,7 @@ cp_build_binary_op (const op_location_t &location, - convert it to this type. */ - tree final_type = 0; - -- tree result, result_ovl; -+ tree result; - - /* Nonzero if this is an operation like MIN or MAX which can - safely be computed in short if both args are promoted shorts. -@@ -6263,25 +6263,29 @@ cp_build_binary_op (const op_location_t &location, - result = build2 (COMPOUND_EXPR, TREE_TYPE (result), - instrument_expr, result); - -- if (!processing_template_decl) -+ if (resultcode == SPACESHIP_EXPR && !processing_template_decl) -+ result = get_target_expr_sfinae (result, complain); -+ -+ if (!c_inhibit_evaluation_warnings) - { -- if (resultcode == SPACESHIP_EXPR) -- result = get_target_expr_sfinae (result, complain); -- op0 = cp_fully_fold (op0); -- /* Only consider the second argument if the first isn't overflowed. */ -- if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0)) -- return result; -- op1 = cp_fully_fold (op1); -- if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1)) -+ if (!processing_template_decl) -+ { -+ op0 = cp_fully_fold (op0); -+ /* Only consider the second argument if the first isn't overflowed. */ -+ if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0)) -+ return result; -+ op1 = cp_fully_fold (op1); -+ if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1)) -+ return result; -+ } -+ else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1) -+ || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1)) - return result; -- } -- else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1) -- || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1)) -- return result; - -- result_ovl = fold_build2 (resultcode, build_type, op0, op1); -- if (TREE_OVERFLOW_P (result_ovl)) -- overflow_warning (location, result_ovl); -+ tree result_ovl = fold_build2 (resultcode, build_type, op0, op1); -+ if (TREE_OVERFLOW_P (result_ovl)) -+ overflow_warning (location, result_ovl); -+ } - - return result; - } ---- /dev/null -+++ b/gcc/testsuite/g++.dg/cpp0x/decltype82.C -@@ -0,0 +1,10 @@ -+// PR c++/105756 -+// { dg-do compile { target c++11 } } -+ -+template<int N> -+void f() { -+ using ty1 = decltype((5 % N) == 0); -+ using ty2 = decltype((5 / N) == 0); -+} -+ -+template void f<0>(); diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history index 840d46e..9b64fee 100644 --- a/12.1.0/gentoo/README.history +++ b/12.1.0/gentoo/README.history @@ -1,6 +1,3 @@ -8 ?? ??? ???? - + 75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch - 7 30 May 2022 U 26_all_enable-cet.patch