From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1075) id 720353858409; Mon, 13 Dec 2021 08:39:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 720353858409 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jan Hubicka To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-5921] Do not ICE on ternary expressions when calculating value ranges X-Act-Checkin: gcc X-Git-Author: Jan Hubicka X-Git-Refname: refs/heads/master X-Git-Oldrev: 01ad8c54fdca1db3d71bf6c4b861a9d1db3c2a59 X-Git-Newrev: 3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2 Message-Id: <20211213083927.720353858409@sourceware.org> Date: Mon, 13 Dec 2021 08:39:27 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Dec 2021 08:39:27 -0000 https://gcc.gnu.org/g:3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2 commit r12-5921-g3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2 Author: Jan Hubicka Date: Mon Dec 13 09:38:53 2021 +0100 Do not ICE on ternary expressions when calculating value ranges gcc/ChangeLog: 2021-12-12 Jan Hubicka PR ipa/103513 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Do not ICE on ternary expression. gcc/testsuite/ChangeLog: 2021-12-12 Jan Hubicka PR ipa/103513 * gcc.c-torture/compile/pr103513.c: New test. Diff: --- gcc/ipa-fnsummary.c | 2 +- gcc/testsuite/gcc.c-torture/compile/pr103513.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c index 6c1cdf17e47..cb3c198ec0c 100644 --- a/gcc/ipa-fnsummary.c +++ b/gcc/ipa-fnsummary.c @@ -513,7 +513,7 @@ evaluate_conditions_for_known_args (struct cgraph_node *node, op->index ? &vr : &op0); } else - gcc_unreachable (); + res.set_varying (op->type); type = op->type; vr = res; } diff --git a/gcc/testsuite/gcc.c-torture/compile/pr103513.c b/gcc/testsuite/gcc.c-torture/compile/pr103513.c new file mode 100644 index 00000000000..ca876a9816c --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr103513.c @@ -0,0 +1,8 @@ +int a; +void b(int c) { + int d = 3; + d ^= c < 2; + if (d < 3 && a) + while (1) + b(!a); +}