Make inlined function variables auto, not in/out.
authorEric Anholt <eric@anholt.net>
Thu, 24 Jun 2010 22:03:05 +0000 (15:03 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 24 Jun 2010 22:05:11 +0000 (15:05 -0700)
ir_function_inlining.cpp

index d74de650e0ac2184ef6d7ae8a5e60d1851360c2e..851c0dd9f7b1c4c8f75ab48dbd0c055b96e5ba59 100644 (file)
@@ -146,11 +146,12 @@ ir_call::generate_inline(ir_instruction *next_ir)
 
       /* Generate a new variable for the parameter. */
       parameters[i] = (ir_variable *)sig_param->clone(ht);
+      parameters[i]->mode = ir_var_auto;
       next_ir->insert_before(parameters[i]);
 
       /* Move the actual param into our param variable if it's an 'in' type. */
-      if (parameters[i]->mode == ir_var_in ||
-         parameters[i]->mode == ir_var_inout) {
+      if (sig_param->mode == ir_var_in ||
+         sig_param->mode == ir_var_inout) {
         ir_assignment *assign;
 
         assign = new ir_assignment(new ir_dereference_variable(parameters[i]),