summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/df-problems.c2
-rw-r--r--gcc/gcse.c1
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr32355.c33
5 files changed, 47 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c847c7a98a..00b1ec91452 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 79b2f42fba7..dc5270e935b 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -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));
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 8517e38ec00..828ee6b3254 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -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);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 845cd6b5a3e..7550286b7a0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 00000000000..126412d30bc
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr32355.c
@@ -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);
+ }
+}
OpenPOWER on IntegriCloud