diff options
author | Kenneth Graunke <[email protected]> | 2010-07-22 16:45:37 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2010-07-22 16:50:37 -0700 |
commit | 0a89175a35ba3ac2a94d0ba9bcc9926edc8927e3 (patch) | |
tree | a56971cac668b8cba2cc0aa61b2e74cd7eed6675 | |
parent | 3c033637de7def553559c11d037f2e8bbb750f77 (diff) |
glsl2: Initialize ir_instruction::type and ir_rvalue::type.
Top-level instructions now get NULL as their default type (since type is
irrelevant for things like ir_function), while ir_rvalues get error_type
by default.
This should make it easier to tell if we've forgotten to set a type. It
also fixes some "Conditional jump or move depends on uninitialized
value" errors in valgrind caused by ir_validate examining the type of
top level ir_instructions, which weren't set.
-rw-r--r-- | src/glsl/ir.cpp | 5 | ||||
-rw-r--r-- | src/glsl/ir.h | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp index 5054ec725cc..8ebef7d95a3 100644 --- a/src/glsl/ir.cpp +++ b/src/glsl/ir.cpp @@ -26,6 +26,11 @@ #include "ir_visitor.h" #include "glsl_types.h" +ir_rvalue::ir_rvalue() +{ + this->type = glsl_type::error_type; +} + ir_assignment::ir_assignment(ir_rvalue *lhs, ir_rvalue *rhs, ir_rvalue *condition) { diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 3fd3a7660bc..e0f3683a7ab 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -106,6 +106,7 @@ protected: ir_instruction() { ir_type = ir_type_unset; + type = NULL; } }; @@ -150,10 +151,7 @@ public: } protected: - ir_rvalue() - { - /* empty */ - } + ir_rvalue(); }; |