re PR middle-end/54193 (dump_gimple_assign raw can't handle 4 operands)
authorMarc Glisse <marc.glisse@inria.fr>
Sun, 12 Aug 2012 16:20:41 +0000 (18:20 +0200)
committerMarc Glisse <glisse@gcc.gnu.org>
Sun, 12 Aug 2012 16:20:41 +0000 (16:20 +0000)
2012-08-12 Marc Glisse <marc.glisse@inria.fr>

PR middle-end/54193
* gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.

From-SVN: r190328

gcc/ChangeLog
gcc/gimple-pretty-print.c

index 0fd7f72ae6d39195c6a48a7c9b1a7190071aa1e2..0d411c71b43c05123dd14b3e6b815b21f04b5d3a 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-12 Marc Glisse <marc.glisse@inria.fr>
+
+       PR middle-end/54193
+       * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.
+
 2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>
 
        PR target/39423
index af7c39a27787bf4d69eb99166c72c3839dd96e96..ccf995c4a5d04cdda32a40d6aa9d9da00dfb1d5a 100644 (file)
@@ -477,17 +477,25 @@ dump_gimple_assign (pretty_printer *buffer, gimple gs, int spc, int flags)
 {
   if (flags & TDF_RAW)
     {
-      tree last;
-      if (gimple_num_ops (gs) == 2)
-        last = NULL_TREE;
-      else if (gimple_num_ops (gs) == 3)
-        last = gimple_assign_rhs2 (gs);
-      else
-        gcc_unreachable ();
+      tree arg1 = NULL;
+      tree arg2 = NULL;
+      tree arg3 = NULL;
+      switch (gimple_num_ops (gs))
+       {
+       case 4:
+         arg3 = gimple_assign_rhs3 (gs);
+       case 3:
+         arg2 = gimple_assign_rhs2 (gs);
+       case 2:
+         arg1 = gimple_assign_rhs1 (gs);
+         break;
+       default:
+         gcc_unreachable ();
+       }
 
-      dump_gimple_fmt (buffer, spc, flags, "%G <%s, %T, %T, %T>", gs,
+      dump_gimple_fmt (buffer, spc, flags, "%G <%s, %T, %T, %T, %T>", gs,
                        tree_code_name[gimple_assign_rhs_code (gs)],
-                       gimple_assign_lhs (gs), gimple_assign_rhs1 (gs), last);
+                       gimple_assign_lhs (gs), arg1, arg2, arg3);
     }
   else
     {