re PR target/19886 (g++.dg/eh/registers1.C execution test fails)
authorJoseph Myers <joseph@codesourcery.com>
Fri, 18 Feb 2005 21:23:16 +0000 (21:23 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Fri, 18 Feb 2005 21:23:16 +0000 (21:23 +0000)
PR target/19886
* config/ia64/ia64.h (struct machine_function): Add state_num.
* config/ia64/ia64.c (process_epilogue,
process_for_unwind_directive): Use new unwind state numbers each
time rather than state 1.

From-SVN: r95234

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.h

index 8271af270564049ed19b87d0c7a45a3c0dd2991a..317bcb07796060ba537077a3d07fa165b8ab5727 100644 (file)
@@ -1,3 +1,11 @@
+2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR target/19886
+       * config/ia64/ia64.h (struct machine_function): Add state_num.
+       * config/ia64/ia64.c (process_epilogue,
+       process_for_unwind_directive): Use new unwind state numbers each
+       time rather than state 1.
+
 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
 
        PR target/20054
index 4502a4600fb5959543f996008f7555630f09d968..ce72063eecb187c52b6908ab895171621c07cd22 100644 (file)
@@ -7726,7 +7726,8 @@ process_epilogue (void)
 
   if (!last_block)
     {
-      fprintf (asm_out_file, "\t.label_state 1\n");
+      fprintf (asm_out_file, "\t.label_state %d\n",
+              ++cfun->machine->state_num);
       need_copy_state = true;
     }
 
@@ -7974,7 +7975,8 @@ process_for_unwind_directive (FILE *asm_out_file, rtx insn)
          if (need_copy_state)
            {
              fprintf (asm_out_file, "\t.body\n");
-             fprintf (asm_out_file, "\t.copy_state 1\n");
+             fprintf (asm_out_file, "\t.copy_state %d\n",
+                      cfun->machine->state_num);
              need_copy_state = false;
            }
        }
index 255f9f29fdfacac378e92f0e0f50b57f4eb1ec6c..36edb9e48f2ad1f6fed7accbe8f1e3f50467012b 100644 (file)
@@ -2199,6 +2199,9 @@ struct machine_function GTY(())
 
   /* The number of varargs registers to save.  */
   int n_varargs;
+
+  /* The number of the next unwind state to copy.  */
+  int state_num;
 };