===================================================================
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+
+#include <setjmp.h>
+
+jmp_buf a;
+int b, d;
+void baz (long);
+
+static void
+bar (long *x)
+{
+ if (d)
+ *x = b;
+}
+
+void
+foo ()
+{
+ baz (0);
+ if (setjmp (a))
+ {
+ long c;
+ bar (&c);
+ baz (c);
+ }
+ baz (0);
+}
===================================================================
@@ -1213,8 +1213,13 @@ coalesce_partitions (var_map map, ssa_co
gsi_next (&gsi))
{
gphi *phi = gsi.phi ();
+ tree arg = PHI_ARG_DEF (phi, e->dest_idx);
+ if (SSA_NAME_IS_DEFAULT_DEF (arg)
+ && (!SSA_NAME_VAR (arg)
+ || TREE_CODE (SSA_NAME_VAR (arg)) != PARM_DECL))
+ continue;
+
tree res = PHI_RESULT (phi);
- tree arg = PHI_ARG_DEF (phi, e->dest_idx);
int v1 = SSA_NAME_VERSION (res);
int v2 = SSA_NAME_VERSION (arg);