--- a/stage4/generate_c/generate_c_il.cc Mon Sep 21 12:04:15 2009 +0200
+++ b/stage4/generate_c/generate_c_il.cc Mon Oct 19 18:12:44 2009 +0200
@@ -513,10 +513,25 @@
s4o.print(IL_DEFVAR_T);
s4o.print(" ");
this->default_variable_name.accept(*this);
- s4o.print(";\n\n");
+ s4o.print(";\n");
+ s4o.print(s4o.indent_spaces);
+ print_backup_variable();
+ s4o.print(".INTvar = 0;\n\n");
print_list(symbol, s4o.indent_spaces, ";\n" + s4o.indent_spaces, ";\n");
+ /* label not used by at least one goto result in a warning.
+ * To work around this we introduce the useless goto
+ * to humour the compiler...
+ */
+ s4o.print("\n");
+ s4o.print(s4o.indent_spaces);
+ s4o.print("/* to humour the compiler, we insert a goto */\n");
+ s4o.print(s4o.indent_spaces);
+ s4o.print("goto ");
+ s4o.print(END_LABEL);
+ s4o.print(";\n");
+
/* write the label marking the end of the code block */
/* please see the comment before the RET_operator_c visitor for details... */
s4o.print("\n");