stage4/generate_c/generate_c_il.cc
changeset 283 214d3fdee596
parent 279 c0453b7f99df
child 309 f93bcada0f51
--- a/stage4/generate_c/generate_c_il.cc	Tue Apr 05 17:12:12 2011 +0100
+++ b/stage4/generate_c/generate_c_il.cc	Tue Apr 05 18:31:55 2011 +0100
@@ -719,9 +719,6 @@
 /* B 2.1 Instructions and Operands */
 /***********************************/
 
-/* please see the comment before the RET_operator_c visitor for details... */
-#define END_LABEL VAR_LEADER "end"
-
 /*| instruction_list il_instruction */
 void *visit(instruction_list_c *symbol) {
   
@@ -742,40 +739,6 @@
 
   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");
-  s4o.print(s4o.indent_spaces);
-  s4o.print(END_LABEL);
-  s4o.print(":\n");
-  s4o.indent_right();
-  /* since every label must be followed by at least one statement, and
-   * only the functions will introduce the return statement after this label,
-   * function blocks written in IL would result in invalid C++ code.
-   * To work around this we introduce the equivalent of a 'nop' operation
-   * to humour the compiler...
-   */
-  s4o.print(s4o.indent_spaces);
-  s4o.print("/* to humour the compiler, we insert a nop */\n");
-  s4o.print(s4o.indent_spaces);
-  this->default_variable_name.accept(*this);
-  s4o.print(" = ");
-  this->default_variable_name.accept(*this);
-  s4o.print(";\n");
-  s4o.indent_left();
-
   return NULL;
 }