diff options
author | Jan Hubicka <jh@suse.cz> | 2021-12-13 09:38:53 +0100 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2021-12-13 09:38:53 +0100 |
commit | 3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2 (patch) | |
tree | dbb918c39d971399c923d9f101992443f4333bea | |
parent | 01ad8c54fdca1db3d71bf6c4b861a9d1db3c2a59 (diff) | |
download | gcc-3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2.zip gcc-3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2.tar.gz gcc-3b61f06b2e1e7e72fcb6c0cf3590cb25eb92c4f2.tar.bz2 |
Do not ICE on ternary expressions when calculating value ranges
gcc/ChangeLog:
2021-12-12 Jan Hubicka <hubicka@ucw.cz>
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 <hubicka@ucw.cz>
PR ipa/103513
* gcc.c-torture/compile/pr103513.c: New test.
-rw-r--r-- | gcc/ipa-fnsummary.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr103513.c | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c index 6c1cdf1..cb3c198 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 0000000..ca876a9 --- /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); +} |