Module: Mesa Branch: master Commit: 428e0302100a82ab8ed5734eabd781ae36882fad URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=428e0302100a82ab8ed5734eabd781ae36882fad
Author: Paul Berry <[email protected]> Date: Sun Jul 14 08:57:49 2013 -0700 glsl: Fix lower_named_interface_blocks to account for dereferences of consts. In certain rare cases (such as those involving dereference of a literal constant array of structs), flatten_named_interface_blocks_declarations's rvalue visitor may be invoked on an ir_dereference_record whose variable_referenced() method returns NULL. Check for this case to avoid a segfault. Prevents crashes in piglit tests {vs,fs}-deref-literal-array-of-structs. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]> --- src/glsl/lower_named_interface_blocks.cpp | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/glsl/lower_named_interface_blocks.cpp b/src/glsl/lower_named_interface_blocks.cpp index 922cc02..d0d491d 100644 --- a/src/glsl/lower_named_interface_blocks.cpp +++ b/src/glsl/lower_named_interface_blocks.cpp @@ -194,6 +194,8 @@ flatten_named_interface_blocks_declarations::handle_rvalue(ir_rvalue **rvalue) return; ir_variable *var = ir->variable_referenced(); + if (var == NULL) + return; if (!var->is_interface_instance()) return; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
