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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user