glsl2: Initialize ir_instruction::type and ir_rvalue::type.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 22 Jul 2010 23:45:37 +0000 (16:45 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 22 Jul 2010 23:50:37 +0000 (16:50 -0700)
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.

src/glsl/ir.cpp
src/glsl/ir.h

index 5054ec725ccaff39e02c935843528523b09b68f3..8ebef7d95a33ef1255612c629d11c50b82ef6b23 100644 (file)
 #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)
 {
index 3fd3a7660bc7f1b668e2c28b4fc79e91531d048c..e0f3683a7ab3cc0b186f97f6e233b7ca45c11174 100644 (file)
@@ -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();
 };