diff options
author | Martin Sebor <msebor@redhat.com> | 2021-09-19 17:18:48 -0600 |
---|---|---|
committer | Martin Sebor <msebor@redhat.com> | 2021-09-19 17:23:19 -0600 |
commit | 825293da703aa1f7ce870b40afce91c1e8b6c0fa (patch) | |
tree | 419171fefd734ad0827c7dc6c45fe2e4fa111e57 /gcc/gimple-predicate-analysis.cc | |
parent | c3895ef466f3068cac6f5c18b55716f494484917 (diff) | |
download | gcc-825293da703aa1f7ce870b40afce91c1e8b6c0fa.zip gcc-825293da703aa1f7ce870b40afce91c1e8b6c0fa.tar.gz gcc-825293da703aa1f7ce870b40afce91c1e8b6c0fa.tar.bz2 |
Correct a function pre/postcondition [PR102403].
Resolves:
PR middle-end/102403 - ICE in init_from_control_deps, at gimple-predicate-analysis.cc:2364
gcc/ChangeLog:
PR middle-end/102403
* gimple-predicate-analysis.cc (predicate::init_from_control_deps):
Correct a function pre/postcondition.
gcc/testsuite/ChangeLog:
PR middle-end/102403
* gcc.dg/uninit-pr102403.c: New test.
* gcc.dg/uninit-pr102403-c2.c: New test.
Diffstat (limited to 'gcc/gimple-predicate-analysis.cc')
-rw-r--r-- | gcc/gimple-predicate-analysis.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/gimple-predicate-analysis.cc b/gcc/gimple-predicate-analysis.cc index 3404f2d..f0c8444 100644 --- a/gcc/gimple-predicate-analysis.cc +++ b/gcc/gimple-predicate-analysis.cc @@ -2361,7 +2361,11 @@ predicate::init_from_control_deps (const vec<edge> *dep_chains, dump (NULL, ""); } - gcc_assert (has_valid_pred == (m_preds.length () > 0)); + if (has_valid_pred) + gcc_assert (m_preds.length () != 0); + else + /* Clear M_PREDS to indicate failure. */ + m_preds.release (); } /* Return the predicate expression guarding the definition of |