Index: tree.c
===================================================================
--- tree.c	(revision 203381)
+++ tree.c	(working copy)
@@ -9144,6 +9144,9 @@ tree_check_failed (const_tree node, cons
   va_list args;
   const char *buffer;
   unsigned length = 0;
+  const char *node_code_name = TREE_CODE (node) >= MAX_TREE_CODES ?
+    "(invalid code name)" :
+    tree_code_name[TREE_CODE (node)];
   int code;
 
   va_start (args, function);
@@ -9172,7 +9175,7 @@ tree_check_failed (const_tree node, cons
     buffer = "unexpected node";
 
   internal_error ("tree check: %s, have %s in %s, at %s:%d",
-		  buffer, tree_code_name[TREE_CODE (node)],
+		  buffer, node_code_name,
 		  function, trim_filename (file), line);
 }
 
