]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/32355 (ICE in df_lr_verify_transfer_functions, at df-problems...
authorKenneth Zadeck <zadeck@naturalbridge.com>
Mon, 18 Jun 2007 16:47:05 +0000 (16:47 +0000)
committerKenneth Zadeck <zadeck@gcc.gnu.org>
Mon, 18 Jun 2007 16:47:05 +0000 (16:47 +0000)
2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>

PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.

2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>

* gcc.c-torture/compile/pr32355.c: New testcase.

From-SVN: r125812

gcc/ChangeLog
gcc/df-problems.c
gcc/gcse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr32355.c [new file with mode: 0644]

index 8c847c7a98a8cfcfa7297ebed5f9d3b6d5863655..00b1ec914520c990b4acb2d1b13584f081c7e69d 100644 (file)
@@ -1,3 +1,10 @@
+2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR middle-end/32355
+       * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
+       cse_main.
+       * df-problems.c (df_note_bb_compute): Fix dumping info.
+       
 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
 
        * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
index 79b2f42fba7a3f4c7e5bcce33bd0d416c8a5f61d..dc5270e935bbde6636cf671a92b3f8da2bc096cd 100644 (file)
@@ -3867,8 +3867,10 @@ df_note_bb_compute (unsigned int bb_index,
   for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
     {
       struct df_ref *def = *def_rec;
+#ifdef REG_DEAD_DEBUGGING
       if (dump_file)
        fprintf (dump_file, "artificial def %d\n", DF_REF_REGNO (def));
+#endif
 
       if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) == 0)
        bitmap_clear_bit (live, DF_REF_REGNO (def));
index 8517e38ec0053b390e72e6b937ebafc0b6e47f3b..828ee6b32543860085a85e5d3d099771bdc6324d 100644 (file)
@@ -6704,6 +6704,7 @@ rest_of_handle_gcse (void)
     {
       timevar_push (TV_CSE);
       tem2 = cse_main (get_insns (), max_reg_num ());
+      df_finish_pass ();
       purge_all_dead_edges ();
       delete_trivially_dead_insns (get_insns (), max_reg_num ());
       timevar_pop (TV_CSE);
index 845cd6b5a3e4dc7076ec7ae20027fff737e406a2..7550286b7a0bf34c64be19741cb1a7cf5fa94519 100644 (file)
@@ -1,3 +1,7 @@
+2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * gcc.c-torture/compile/pr32355.c: New testcase.
+       
 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
 
        PR tree-optimization/32383
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr32355.c b/gcc/testsuite/gcc.c-torture/compile/pr32355.c
new file mode 100644 (file)
index 0000000..126412d
--- /dev/null
@@ -0,0 +1,33 @@
+/* { dg-options "-O3" } */
+
+typedef struct
+{
+}
+__sigset_t;
+typedef struct
+{
+    char coredump;
+}
+EMode;
+extern EMode Mode;
+struct sigaction
+{
+  __sigset_t sa_mask;
+  int sa_flags;
+};
+doSignalsSetup (void)
+{
+  static const int signals[] = {
+    1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
+  };
+  unsigned int i, sig;
+  struct sigaction sa;
+  for (i = 0; i < sizeof (signals) / sizeof (int); i++)
+    {
+      sig = signals[i];
+      if (Mode.coredump && (sig == 4 || sig == 8))
+        continue;
+      sa.sa_flags = (sig == 17);
+      sigemptyset (&sa.sa_mask);
+    }
+}