glsl2: Check when inlining a bare function call that it actually is.

It would be easy to miss an entry either of the two visitors involved
that would result in trying to ir->remove() the call to remove it from
the instruction stream when really it's part of an expression tree
that wasn't flattened.
This commit is contained in:
Eric Anholt 2010-07-12 10:13:20 -07:00
parent 284d821206
commit d2afc87445

View file

@ -233,6 +233,12 @@ ir_visitor_status
ir_function_inlining_visitor::visit_enter(ir_call *ir)
{
if (can_inline(ir)) {
/* If the call was part of some tree, then it should have been
* flattened out or we shouldn't have seen it because of a
* visit_continue_with_parent in this visitor.
*/
assert(ir == base_ir);
(void) ir->generate_inline(ir);
ir->remove();
this->progress = true;