glsl/opt_cpe: Fix a crash when a kill kills for two reasons.
authorEric Anholt <eric@anholt.net>
Fri, 8 Apr 2011 17:54:50 +0000 (07:54 -1000)
committerEric Anholt <eric@anholt.net>
Wed, 13 Apr 2011 17:51:03 +0000 (10:51 -0700)
Fixes glsl-copy-propagation-loop-2 when this optimization pass is
re-enabled.

Reported-by: David Lamparter <equinox@diac24.net>
src/glsl/opt_copy_propagation_elements.cpp

index 1ffbd4da14457a3a9eda310cdbaca3c44a96b994..a91e624cb720ae793a09ff2c0c185ab1f7a4ccc0 100644 (file)
@@ -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();