Add a virtual clone() method to ir_instruction.
This will be used by function inlining, the linker, and avoiding double
usage of the LHS deref chains in ++, *=, and similar operations.
diff --git a/linker.cpp b/linker.cpp
index abf5371..ba382fe 100644
--- a/linker.cpp
+++ b/linker.cpp
@@ -290,7 +290,8 @@
* have an initializer but a later instance does, copy the
* initializer to the version stored in the symbol table.
*/
- existing->constant_value = var->constant_value->clone();
+ existing->constant_value =
+ (ir_constant *)var->constant_value->clone(NULL);
}
} else
uniforms.add_variable(var->name, var);