diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b036959f5a583b915733db6447b372e373e4865c..b3f695768dcd24925fa06d24bf7069eadf073790 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-07-14  Richard Biener  <rguenther@suse.de>
+
+	* genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
+	(decision_tree::gen_gimple): Likewise.
+
 2015-07-14  Tom de Vries  <tom@codesourcery.com>
 
 	* gcc.c (greater_than_spec_func): Declare forward.
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index 12f04b05a81f013848abeb084972f54b352dd0dc..fa140dfe158ba97411f78267e846cb01672711f8 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -2383,8 +2383,8 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
 	      fprintf_indent (f, indent, "  }\n");
 	    }
 	  fprintf_indent (f, indent, "default:;\n");
-	  indent -= 4;
 	  fprintf_indent (f, indent, "}\n");
+	  indent -= 4;
 	}
 
       if (fns_len)
@@ -2403,8 +2403,8 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
 			  "    switch (DECL_FUNCTION_CODE (fndecl))\n");
 	  fprintf_indent (f, indent,
 			  "      {\n");
-	  indent += 8;
 
+	  indent += 6;
 	  for (unsigned i = 0; i < fns_len; ++i)
 	    {
 	      expr *e = as_a <expr *>(fns[i]->op);
@@ -2416,8 +2416,8 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
 	    }
 
 	  fprintf_indent (f, indent, "default:;\n");
-	  indent -= 8;
-	  fprintf_indent (f, indent, "      }\n");
+	  fprintf_indent (f, indent, "}\n");
+	  indent -= 6;
 	  fprintf_indent (f, indent, "  }\n");
 	}
 
@@ -2481,7 +2481,7 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
     {
       indent -= 4;
       fprintf_indent (f, indent, "    default:;\n");
-      fprintf_indent (f, indent, "  }\n");
+      fprintf_indent (f, indent, "    }\n");
     }
 
   for (unsigned i = 0; i < preds.length (); ++i)
@@ -2915,7 +2915,7 @@ decision_tree::gen_gimple (FILE *f)
 	  fprintf (f,   "      }\n");
 	}
       fprintf (f,       "    default:;\n"
-	                "  }\n");
+	                "    }\n");
 
       fprintf (f, "  return false;\n");
       fprintf (f, "}\n");