From: Kenneth Graunke Date: Wed, 1 Dec 2010 23:33:56 +0000 (-0800) Subject: glsl: Consider the "else" branch when looking for loop breaks. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=13c45c590b69341487acf21f339bf1e502eedee6;p=mesa.git glsl: Consider the "else" branch when looking for loop breaks. Found this bug by code inspection. Based off the comments just before this code, the intent is to find whether the break exists in the "then" branch or the "else" branch. However, the code actually looked at the last instruction in the "then" branch twice. --- diff --git a/src/glsl/loop_unroll.cpp b/src/glsl/loop_unroll.cpp index 4e6acda907e..c5001ba9530 100644 --- a/src/glsl/loop_unroll.cpp +++ b/src/glsl/loop_unroll.cpp @@ -104,7 +104,7 @@ loop_unroll_visitor::visit_leave(ir_loop *ir) if (is_break(last)) { continue_from_then_branch = false; } else { - last = (ir_instruction *) last_if->then_instructions.get_tail(); + last = (ir_instruction *) last_if->else_instructions.get_tail(); if (is_break(last)) continue_from_then_branch = true;