genemit.c (gen_expand): Do not emit "_done" or "_fail" labels.
authorJeffrey A Law <law@cygnus.com>
Sat, 28 Mar 1998 13:55:34 +0000 (13:55 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 28 Mar 1998 13:55:34 +0000 (06:55 -0700)
        * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels.
        (gen_split): Likewise.
        (main): Rework generated definitions of DONE and FAIL so that they
        no longer use gotos.  Avoids warnings about unused labels.

From-SVN: r18879

gcc/ChangeLog
gcc/genemit.c

index 9b12080..2775149 100644 (file)
@@ -1,5 +1,10 @@
 Sat Mar 28 14:37:20 1998  Jeffrey A Law  (law@cygnus.com)
 
+       * genemit.c (gen_expand): Do not emit "_done" or "_fail" labels.
+       (gen_split): Likewise.
+       (main): Rework generated definitions of DONE and FAIL so that they
+       no longer use gotos.  Avoids warnings about unused labels.
+
        * integrate.c (copy_rtx_and_substitute): Rework to avoid need for
        unused "junk" variable.
 
index ddfaf38..cb2ec7e 100644 (file)
@@ -496,9 +496,7 @@ gen_expand (expand)
   /* Call `gen_sequence' to make a SEQUENCE out of all the
      insns emitted within this gen_... function.  */
 
-  printf (" _done:\n");
   printf ("  _val = gen_sequence ();\n");
-  printf (" _fail:\n");
   printf ("  end_sequence ();\n");
   printf ("  return _val;\n}\n\n");
 }
@@ -586,9 +584,7 @@ gen_split (split)
   /* Call `gen_sequence' to make a SEQUENCE out of all the
      insns emitted within this gen_... function.  */
 
-  printf (" _done:\n");
   printf ("  _val = gen_sequence ();\n");
-  printf (" _fail:\n");
   printf ("  end_sequence ();\n");
   printf ("  return _val;\n}\n\n");
 }
@@ -753,8 +749,8 @@ from the machine description file `md'.  */\n\n");
   printf ("extern char *insn_operand_constraint[][MAX_RECOG_OPERANDS];\n\n");
   printf ("extern rtx recog_operand[];\n");
   printf ("#define operands emit_operand\n\n");
-  printf ("#define FAIL goto _fail\n\n");
-  printf ("#define DONE goto _done\n\n");
+  printf ("#define FAIL {end_sequence (); return _val;}\n");
+  printf ("#define DONE {_val = gen_sequence (); end_sequence (); return _val;}\n");
 
   /* Read the machine description.  */