Browse Source

Merge pull request #821 from corruptmemory/corruptmemory/fix-for-c_vararg

Fix for `c_vararg` issue
gingerBill 4 years ago
parent
commit
c71c86f563
2 changed files with 7 additions and 1 deletions
  1. 6 0
      src/ir.cpp
  2. 1 1
      src/ir_print.cpp

+ 6 - 0
src/ir.cpp

@@ -3469,6 +3469,12 @@ irValue *ir_emit_call(irProcedure *p, irValue *value, Array<irValue *> const &ar
 		}
 		}
 	}
 	}
 
 
+	if (is_c_vararg) {
+			for (isize i = param_count; i < args.count; i++) {
+				array_add(&processed_args, args[i]);
+			}
+	}
+
 	if (inlining == ProcInlining_none) {
 	if (inlining == ProcInlining_none) {
 		inlining = p->inlining;
 		inlining = p->inlining;
 	}
 	}

+ 1 - 1
src/ir_print.cpp

@@ -2310,7 +2310,7 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) {
 					ir_print_type(f, m, t);
 					ir_print_type(f, m, t);
 					ir_write_byte(f, ' ');
 					ir_write_byte(f, ' ');
 					ir_print_value(f, m, arg, t);
 					ir_print_value(f, m, arg, t);
-					param_index++;
+					arg_index++;
 				}
 				}
 			} else {
 			} else {
 				// GB_ASSERT(call->args.count == params->variables.count);
 				// GB_ASSERT(call->args.count == params->variables.count);