stage4/generate_c/generate_c_il.cc
changeset 211 5249d313ff7c
parent 210 8387cac2aba6
child 216 136d6ae70745
--- 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");