diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-10-17 09:21:24 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-10-17 09:21:24 +0200 |
commit | 0bbb0ca112279e5b6704d1e51b396f0e2a136251 (patch) | |
tree | 13749b2c59ce7391cb3537a82bb2e17fd53c5e31 /gcc/tree-object-size.c | |
parent | 432b4f729dff4808de4f3b00ff9b312db095afc3 (diff) | |
download | gcc-0bbb0ca112279e5b6704d1e51b396f0e2a136251.zip gcc-0bbb0ca112279e5b6704d1e51b396f0e2a136251.tar.gz gcc-0bbb0ca112279e5b6704d1e51b396f0e2a136251.tar.bz2 |
re PR tree-optimization/92056 (ice in expr_object_size, at tree-object-si ze.c:675 with -O3)
PR tree-optimization/92056
* tree-object-size.c (cond_expr_object_size): Return early if then_
processing resulted in unknown size.
* gcc.c-torture/compile/pr92056.c: New test.
From-SVN: r277093
Diffstat (limited to 'gcc/tree-object-size.c')
-rw-r--r-- | gcc/tree-object-size.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c index db9b569..6e79bbd 100644 --- a/gcc/tree-object-size.c +++ b/gcc/tree-object-size.c @@ -903,6 +903,9 @@ cond_expr_object_size (struct object_size_info *osi, tree var, gimple *stmt) else expr_object_size (osi, var, then_); + if (object_sizes[object_size_type][varno] == unknown[object_size_type]) + return reexamine; + if (TREE_CODE (else_) == SSA_NAME) reexamine |= merge_object_sizes (osi, var, else_, 0); else |