From 909bd476ca65035b93399c7b95f7118b1cded3f2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 8 Apr 2011 07:54:50 -1000 Subject: glsl/opt_cpe: Fix a crash when a kill kills for two reasons. Fixes glsl-copy-propagation-loop-2 when this optimization pass is re-enabled. Reported-by: David Lamparter --- src/glsl/opt_copy_propagation_elements.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/glsl/opt_copy_propagation_elements.cpp b/src/glsl/opt_copy_propagation_elements.cpp index 1ffbd4da14..a91e624cb7 100644 --- a/src/glsl/opt_copy_propagation_elements.cpp +++ b/src/glsl/opt_copy_propagation_elements.cpp @@ -390,8 +390,10 @@ ir_copy_propagation_elements_visitor::kill(kill_entry *k) if (entry->lhs == k->var) { entry->write_mask = entry->write_mask & ~k->write_mask; - if (entry->write_mask == 0) + if (entry->write_mask == 0) { entry->remove(); + continue; + } } if (entry->rhs == k->var) { entry->remove(); -- cgit v1.2.3