]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/
authorpmatos <pmatos@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Oct 2013 10:09:17 +0000 (10:09 +0000)
committerpmatos <pmatos@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 16 Oct 2013 10:09:17 +0000 (10:09 +0000)
* tree-core.h (tree_code_name): Remove.
* tree.h (get_tree_code_name): New prototype.
* tree.c (tree_code_name): Make static.
(get_tree_code_name): New function.
(dump_tree_statistics, tree_check_failed, tree_not_check_failed,
tree_class_check_failed, tree_range_check_failed,
tree_not_class_check_failed, omp_clause_check_failed,
tree_contains_struct_check_failed, tree_operand_check_failed): Use new
wrapper get_tree_code_name instead of calling tree_code_name directly.
* tree-vrp.c (dump_asserts_for): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
* tree-pretty-print.h (pp_unsupported_tree): Likewise.
* lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
* tree-ssa-dom.c (print_expr_hash_elt): Likewise.
* gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
dump_gimple_omp_for): Likewise.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
* tree-ssa-pre.c (print_pre_expr): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
* print-tree.c (print_node_brief, print_node): Likewise.
* gimple.c (gimple_check_failed): Likewise.
* lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
* config/frv/frv.c (frv_init_cumulative_args): Likewise.
* config/mep/mep.c (mep_validate_vliw): Likewise.
* config/iq2000/iq2000.c (init_cumulative_args): Likewise.
* config/rs6000/rs6000.c (init_cumulative_args): Likewise.

gcc/cp/
* error.c (code_to_string): Use new wrapper get_tree_code_name.
* cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
* pt.c (tsubst): Likewise.
* semantics.c (cxx_eval_constant_expression,
potential_constant_expression_1): Likewise.
* mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates,
add_substitution, find_substitution): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203695 138bc75d-0d04-0410-961f-82ee72b054a4

27 files changed:
gcc/ChangeLog
gcc/config/frv/frv.c
gcc/config/iq2000/iq2000.c
gcc/config/mep/mep.c
gcc/config/rs6000/rs6000.c
gcc/cp/ChangeLog
gcc/cp/cxx-pretty-print.c
gcc/cp/error.c
gcc/cp/mangle.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/gimple-pretty-print.c
gcc/gimple.c
gcc/ipa-prop.c
gcc/lto-streamer-out.c
gcc/lto-streamer.c
gcc/print-tree.c
gcc/tree-core.h
gcc/tree-dump.c
gcc/tree-pretty-print.c
gcc/tree-pretty-print.h
gcc/tree-ssa-dom.c
gcc/tree-ssa-pre.c
gcc/tree-vect-data-refs.c
gcc/tree-vrp.c
gcc/tree.c
gcc/tree.h

index cbb5311a0fe8501d0bec037afeeb21c37ab57701..8fcc0b9f57169fe29abfad292edbe3a50c6f4eac 100644 (file)
@@ -1,3 +1,34 @@
+2013-10-16  Paulo Matos  <pmatos@broadcom.com>
+
+       * tree-core.h (tree_code_name): Remove.
+       * tree.h (get_tree_code_name): New prototype.
+       * tree.c (tree_code_name): Make static.
+       (get_tree_code_name): New function.
+       (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
+       tree_class_check_failed, tree_range_check_failed,
+       tree_not_class_check_failed, omp_clause_check_failed,
+       tree_contains_struct_check_failed, tree_operand_check_failed): Use new
+       wrapper get_tree_code_name instead of calling tree_code_name directly.
+       * tree-vrp.c (dump_asserts_for): Likewise.
+       * tree-dump.c (dequeue_and_dump): Likewise.
+       * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
+       * tree-pretty-print.h (pp_unsupported_tree): Likewise.
+       * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
+       * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
+       * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
+       dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
+       dump_gimple_omp_for): Likewise.
+       * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
+       * tree-ssa-pre.c (print_pre_expr): Likewise.
+       * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
+       * print-tree.c (print_node_brief, print_node): Likewise.
+       * gimple.c (gimple_check_failed): Likewise.
+       * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
+       * config/frv/frv.c (frv_init_cumulative_args): Likewise.
+       * config/mep/mep.c (mep_validate_vliw): Likewise.
+       * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
+       * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
+
 2013-10-16 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
 
        * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
index 376a0bbe7a6b5950104dbc6c0e0b22e5ed84e4e2..41ae2bbfff6a9b66140fe360984330c6acee1624 100644 (file)
@@ -3094,7 +3094,7 @@ frv_init_cumulative_args (CUMULATIVE_ARGS *cum,
        {
          tree ret_type = TREE_TYPE (fntype);
          fprintf (stderr, " return=%s,",
-                  tree_code_name[ (int)TREE_CODE (ret_type) ]);
+                  get_tree_code_name ((int)TREE_CODE (ret_type)));
        }
 
       if (libname && GET_CODE (libname) == SYMBOL_REF)
index 7e19366ae9364bd9d9d989149f03ae7428c1e062..da6f757d6f9b1919ce17719d9a33cc31e4d3a26d 100644 (file)
@@ -1104,8 +1104,8 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
          tree ret_type = TREE_TYPE (fntype);
 
          fprintf (stderr, ", fntype code = %s, ret code = %s\n",
-                  tree_code_name[(int)TREE_CODE (fntype)],
-                  tree_code_name[(int)TREE_CODE (ret_type)]);
+                  get_tree_code_name (TREE_CODE (fntype)),
+                  get_tree_code_name (TREE_CODE (ret_type)));
        }
     }
 
index a5b7e6c68be8247030528b5d5f0093971e7cfb8d..d082070eef64eab442c6f536498838464870eb6a 100644 (file)
@@ -3962,7 +3962,7 @@ mep_validate_vliw (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
       static int gave_array_note = 0;
       static const char * given_type = NULL;
  
-      given_type = tree_code_name[TREE_CODE (*node)];
+      given_type = get_tree_code_name (TREE_CODE (*node));
       if (TREE_CODE (*node) == POINTER_TYPE)
        given_type = "pointers";
       if (TREE_CODE (*node) == ARRAY_TYPE)
index f4b65501166a5dea17168a903bedfcf5255d5359..1523816fe63cbb728fe456faf70e690ead789166 100644 (file)
@@ -8334,7 +8334,7 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
        {
          tree ret_type = TREE_TYPE (fntype);
          fprintf (stderr, " ret code = %s,",
-                  tree_code_name[ (int)TREE_CODE (ret_type) ]);
+                  get_tree_code_name (TREE_CODE (ret_type)));
        }
 
       if (cum->call_cookie & CALL_LONG)
index ed30e1bccbb95a0c65a8286b7d7eca0a537c1f36..3378d618e5310926ed2b3a6e112419220c73f319 100644 (file)
@@ -1,3 +1,13 @@
+2013-10-16  Paulo Matos  <pmatos@broadcom.com>
+
+       * error.c (code_to_string): Use new wrapper get_tree_code_name.
+       * cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise.
+       * pt.c (tsubst): Likewise.
+       * semantics.c (cxx_eval_constant_expression,
+       potential_constant_expression_1): Likewise.
+       * mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates,
+       add_substitution, find_substitution): Likewise.
+
 2013-10-15  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/58707
index bcef8760ad7619df42638f07d5c43a952ad82b4f..cb97fb5d59ad9e6350fe265916efddbe6df8ab32 100644 (file)
@@ -971,7 +971,7 @@ pp_cxx_assignment_operator (cxx_pretty_printer *pp, tree t)
       break;
 
     default:
-      op = tree_code_name[TREE_CODE (t)];
+      op = get_tree_code_name (TREE_CODE (t));
       break;
     }
 
index 62e39d3bcbf4cdaee77f2daf562afd2268acb38b..0c3cead1b2721df42effcbdae618de61fa32884e 100644 (file)
@@ -2852,7 +2852,7 @@ fndecl_to_string (tree fndecl, int verbose)
 static const char *
 code_to_string (enum tree_code c)
 {
-  return tree_code_name [c];
+  return get_tree_code_name (c);
 }
 
 const char *
index 8c11ba8d394c56e312bd1c896a8520211d935c36..202fafceb03b9483680ba5e7c2655ae0440df780 100644 (file)
@@ -69,7 +69,7 @@ along with GCC; see the file COPYING3.  If not see
   fprintf (stderr, "  %-24s: %-24s\n", (FN), (INPUT))
 # define MANGLE_TRACE_TREE(FN, NODE) \
   fprintf (stderr, "  %-24s: %-24s (%p)\n", \
-          (FN), tree_code_name[TREE_CODE (NODE)], (void *) (NODE))
+          (FN), get_tree_code_name (TREE_CODE (NODE)), (void *) (NODE))
 #else
 # define MANGLE_TRACE(FN, INPUT)
 # define MANGLE_TRACE_TREE(FN, NODE)
@@ -329,7 +329,7 @@ dump_substitution_candidates (void)
           || CP_TYPE_CONST_P (el)))
        fprintf (stderr, "CV-");
       fprintf (stderr, "%s (%s at %p)\n",
-              name, tree_code_name[TREE_CODE (el)], (void *) el);
+              name, get_tree_code_name (TREE_CODE (el)), (void *) el);
     }
 }
 
@@ -379,13 +379,13 @@ add_substitution (tree node)
 
   if (DEBUG_MANGLE)
     fprintf (stderr, "  ++ add_substitution (%s at %10p)\n",
-            tree_code_name[TREE_CODE (node)], (void *) node);
+            get_tree_code_name (TREE_CODE (node)), (void *) node);
 
   /* Get the canonicalized substitution candidate for NODE.  */
   c = canonicalize_for_substitution (node);
   if (DEBUG_MANGLE && c != node)
     fprintf (stderr, "  ++ using candidate (%s at %10p)\n",
-            tree_code_name[TREE_CODE (node)], (void *) node);
+            get_tree_code_name (TREE_CODE (node)), (void *) node);
   node = c;
 
 #if ENABLE_CHECKING
@@ -513,7 +513,7 @@ find_substitution (tree node)
 
   if (DEBUG_MANGLE)
     fprintf (stderr, "  ++ find_substitution (%s at %p)\n",
-            tree_code_name[TREE_CODE (node)], (void *) node);
+            get_tree_code_name (TREE_CODE (node)), (void *) node);
 
   /* Obtain the canonicalized substitution representation for NODE.
      This is what we'll compare against.  */
index 57b3ff04feb8521625267a3ef9f7737bb8a17960..95d901c73854527ee5588358db675c452ebdcc2f 100644 (file)
@@ -12102,7 +12102,7 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
       gcc_unreachable ();
 
     default:
-      sorry ("use of %qs in template", tree_code_name [(int) code]);
+      sorry ("use of %qs in template", get_tree_code_name ((int) code));
       return error_mark_node;
     }
 }
index 9bfd263776e9da87f37bd252017a227ad07b9fda..41965b643b0a590be13328b14faeb21016ef31a3 100644 (file)
@@ -9656,7 +9656,7 @@ cxx_eval_constant_expression (const constexpr_call *call, tree t,
 
     default:
       internal_error ("unexpected expression %qE of kind %s", t,
-                     tree_code_name[TREE_CODE (t)]);
+                     get_tree_code_name (TREE_CODE (t)));
       *non_constant_p = true;
       break;
     }
@@ -10417,7 +10417,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
       if (objc_is_property_ref (t))
        return false;
 
-      sorry ("unexpected AST of kind %s", tree_code_name[TREE_CODE (t)]);
+      sorry ("unexpected AST of kind %s", get_tree_code_name (TREE_CODE (t)));
       gcc_unreachable();
       return false;
     }
index f0f816671ec01f45c1e03863005dd7810d1c07c9..14fb1c8c26f9b12bea9f4bb70c11e82dd66824b7 100644 (file)
@@ -312,7 +312,7 @@ dump_unary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
       else
        {
          pp_left_bracket (buffer);
-         pp_string (buffer, tree_code_name [rhs_code]);
+         pp_string (buffer, get_tree_code_name (rhs_code));
          pp_string (buffer, "] ");
        }
 
@@ -351,7 +351,7 @@ dump_binary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
     case VEC_PACK_FIX_TRUNC_EXPR:
     case VEC_WIDEN_LSHIFT_HI_EXPR:
     case VEC_WIDEN_LSHIFT_LO_EXPR:
-      for (p = tree_code_name [(int) code]; *p; p++)
+      for (p = get_tree_code_name (code); *p; p++)
        pp_character (buffer, TOUPPER (*p));
       pp_string (buffer, " <");
       dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
@@ -397,7 +397,7 @@ dump_ternary_rhs (pretty_printer *buffer, gimple gs, int spc, int flags)
     {
     case WIDEN_MULT_PLUS_EXPR:
     case WIDEN_MULT_MINUS_EXPR:
-      for (p = tree_code_name [(int) code]; *p; p++)
+      for (p = get_tree_code_name (code); *p; p++)
        pp_character (buffer, TOUPPER (*p));
       pp_string (buffer, " <");
       dump_generic_node (buffer, gimple_assign_rhs1 (gs), spc, flags, false);
@@ -495,7 +495,7 @@ dump_gimple_assign (pretty_printer *buffer, gimple gs, int spc, int flags)
        }
 
       dump_gimple_fmt (buffer, spc, flags, "%G <%s, %T, %T, %T, %T>", gs,
-                       tree_code_name[gimple_assign_rhs_code (gs)],
+                      get_tree_code_name (gimple_assign_rhs_code (gs)),
                        gimple_assign_lhs (gs), arg1, arg2, arg3);
     }
   else
@@ -790,9 +790,9 @@ dump_gimple_cond (pretty_printer *buffer, gimple gs, int spc, int flags)
 {
   if (flags & TDF_RAW)
     dump_gimple_fmt (buffer, spc, flags, "%G <%s, %T, %T, %T, %T>", gs,
-                   tree_code_name [gimple_cond_code (gs)],
-                   gimple_cond_lhs (gs), gimple_cond_rhs (gs),
-                   gimple_cond_true_label (gs), gimple_cond_false_label (gs));
+                    get_tree_code_name (gimple_cond_code (gs)),
+                    gimple_cond_lhs (gs), gimple_cond_rhs (gs),
+                    gimple_cond_true_label (gs), gimple_cond_false_label (gs));
   else
     {
       if (!(flags & TDF_RHS_ONLY))
@@ -1113,7 +1113,7 @@ dump_gimple_omp_for (pretty_printer *buffer, gimple gs, int spc, int flags)
                         gimple_omp_for_index (gs, i),
                         gimple_omp_for_initial (gs, i),
                         gimple_omp_for_final (gs, i),
-                        tree_code_name[gimple_omp_for_cond (gs, i)],
+                        get_tree_code_name (gimple_omp_for_cond (gs, i)),
                         gimple_omp_for_incr (gs, i));
       dump_gimple_fmt (buffer, spc, flags, "PRE_BODY <%S>%->",
                       gimple_omp_for_pre_body (gs));
index a12dd67a118eaa994eab7a1791e6331f61bdb03e..9bc62c0026b17f7f92469c4de5c1a9248e502c77 100644 (file)
@@ -1200,10 +1200,10 @@ gimple_check_failed (const_gimple gs, const char *file, int line,
 {
   internal_error ("gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d",
                  gimple_code_name[code],
-                 tree_code_name[subcode],
+                 get_tree_code_name (subcode),
                  gimple_code_name[gimple_code (gs)],
                  gs->gsbase.subcode > 0
-                   ? tree_code_name[gs->gsbase.subcode]
+                   ? get_tree_code_name ((enum tree_code) gs->gsbase.subcode)
                    : "",
                  function, trim_filename (file), line);
 }
index 2fbc9d41541c87ead65c6026acebec2f3d980402..7ec3c49e42fee028af009c1aab45525d269533e4 100644 (file)
@@ -248,8 +248,7 @@ ipa_print_node_jump_functions_for_edge (FILE *f, struct cgraph_edge *cs)
          fprintf (f, "PASS THROUGH: ");
          fprintf (f, "%d, op %s",
                   jump_func->value.pass_through.formal_id,
-                  tree_code_name[(int)
-                                 jump_func->value.pass_through.operation]);
+                  get_tree_code_name(jump_func->value.pass_through.operation));
          if (jump_func->value.pass_through.operation != NOP_EXPR)
            {
              fprintf (f, " ");
index 20d8bfa9c426018675f381397ba7d9823e64c077..35ad1cf0c80b65c6e2bcfb52876533d5aa5b9755 100644 (file)
@@ -367,7 +367,7 @@ lto_write_tree (struct output_block *ob, tree expr, bool ref_p)
 {
   if (!lto_is_streamable (expr))
     internal_error ("tree code %qs is not supported in LTO streams",
-                   tree_code_name[TREE_CODE (expr)]);
+                   get_tree_code_name (TREE_CODE (expr)));
 
   /* Write the header, containing everything needed to materialize
      EXPR on the reading side.  */
@@ -1241,7 +1241,7 @@ DFS_write_tree (struct output_block *ob, sccs *from_state,
                  if (!lto_is_streamable (t))
                    internal_error ("tree code %qs is not supported "
                                    "in LTO streams",
-                                   tree_code_name[TREE_CODE (t)]);
+                                   get_tree_code_name (TREE_CODE (t)));
 
                  gcc_checking_assert (!streamer_handle_as_builtin_p (t));
 
index cdc75de9bae3b0ff35a3ce9a3d867b76fb0da892..f1d3b69127d164108c25488040072bdab1931686 100644 (file)
@@ -54,7 +54,7 @@ lto_tag_name (enum LTO_tags tag)
     {
       /* For tags representing tree nodes, return the name of the
         associated tree code.  */
-      return tree_code_name[lto_tag_to_tree_code (tag)];
+      return get_tree_code_name (lto_tag_to_tree_code (tag));
     }
 
   if (lto_tag_is_gimple_code_p (tag))
@@ -199,7 +199,7 @@ print_lto_report (const char *s)
     if (lto_stats.num_trees[i])
       fprintf (stderr, "[%s] # of '%s' objects read: "
               HOST_WIDE_INT_PRINT_UNSIGNED "\n", s,
-              tree_code_name[i], lto_stats.num_trees[i]);
+              get_tree_code_name ((enum tree_code) i), lto_stats.num_trees[i]);
 
   if (flag_lto)
     {
index 4ded0d6360a0c3db5a16998434398e2766fbad47..2b9aa704becbb93d4cd1364916549ee1ef45dd97 100644 (file)
@@ -71,7 +71,7 @@ print_node_brief (FILE *file, const char *prefix, const_tree node, int indent)
      name if any.  */
   if (indent > 0)
     fprintf (file, " ");
-  fprintf (file, "%s <%s", prefix, tree_code_name[(int) TREE_CODE (node)]);
+  fprintf (file, "%s <%s", prefix, get_tree_code_name (TREE_CODE (node)));
   dump_addr (file, " ", node);
 
   if (tclass == tcc_declaration)
@@ -247,7 +247,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
   indent_to (file, indent);
 
   /* Print the slot this node is in, and its code, and address.  */
-  fprintf (file, "%s <%s", prefix, tree_code_name[(int) code]);
+  fprintf (file, "%s <%s", prefix, get_tree_code_name (code));
   dump_addr (file, " ", node);
 
   /* Print the name, if any.  */
index a14c7e079b30d50c5294cf813fdfc0fb76320ece..c7fc84f87ada7fd4a00934d6f5b9cd763d2f4189 100644 (file)
@@ -1753,9 +1753,6 @@ extern const char *const tree_code_class_strings[];
 /* Number of argument-words in each kind of tree-node.  */
 extern const unsigned char tree_code_length[];
 
-/* Names of tree components.  */
-extern const char *const tree_code_name[];
-
 /* Vector of all alias pairs for global symbols.  */
 extern GTY(()) vec<alias_pair, va_gc> *alias_pairs;
 
index 0dd97291dea6e0636a3641ed9f71216817c59543..6b16caa9469fc06a8cbbde69bbf00735b5deb280 100644 (file)
@@ -278,7 +278,7 @@ dequeue_and_dump (dump_info_p di)
   if (dni->binfo_p)
     code_name = "binfo";
   else
-    code_name = tree_code_name[(int) TREE_CODE (t)];
+    code_name = get_tree_code_name (TREE_CODE (t));
   fprintf (di->stream, "%-16s ", code_name);
   di->column = 25;
 
index b10b7e254a31d43ebbb5cec4257172276747394f..f8a0342f9441108e778b6473dbaa30988df30ce5 100644 (file)
@@ -59,7 +59,7 @@ do_niy (pretty_printer *buffer, const_tree node)
   int i, len;
 
   pp_string (buffer, "<<< Unknown tree: ");
-  pp_string (buffer, tree_code_name[(int) TREE_CODE (node)]);
+  pp_string (buffer, get_tree_code_name (TREE_CODE (node)));
 
   if (EXPR_P (node))
     {
@@ -2569,7 +2569,7 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags,
     case VEC_WIDEN_LSHIFT_HI_EXPR:
     case VEC_WIDEN_LSHIFT_LO_EXPR:
       pp_space (buffer);
-      for (str = tree_code_name [code]; *str; str++)
+      for (str = get_tree_code_name (code); *str; str++)
        pp_character (buffer, TOUPPER (*str));
       pp_string (buffer, " < ");
       dump_generic_node (buffer, TREE_OPERAND (node, 0), spc, flags, false);
index f70556db03de7609a6b46ed9335d9d3465329976..8754b0a219526355af3ca6cceb517f12f0c4564c 100644 (file)
@@ -27,7 +27,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #define pp_unsupported_tree(PP, T)                         \
   pp_verbatim (PP, "#%qs not supported by %s#", \
-               tree_code_name[(int) TREE_CODE (T)], __FUNCTION__)
+              get_tree_code_name (TREE_CODE (T)), __FUNCTION__)
 
 #define pp_ti_abstract_origin(TI) ((tree *) (TI)->x_data)
 
index 6292bb0bd56c6599cfad1d3fd75e0916b6014b20..b2c7e147ef67724c7c484ebd64ff6d33b9500c28 100644 (file)
@@ -639,18 +639,18 @@ print_expr_hash_elt (FILE * stream, const struct expr_hash_elt *element)
         break;
 
       case EXPR_UNARY:
-        fprintf (stream, "%s ", tree_code_name[element->expr.ops.unary.op]);
+       fprintf (stream, "%s ", get_tree_code_name (element->expr.ops.unary.op));
         print_generic_expr (stream, element->expr.ops.unary.opnd, 0);
         break;
 
       case EXPR_BINARY:
         print_generic_expr (stream, element->expr.ops.binary.opnd0, 0);
-        fprintf (stream, " %s ", tree_code_name[element->expr.ops.binary.op]);
+       fprintf (stream, " %s ", get_tree_code_name (element->expr.ops.binary.op));
         print_generic_expr (stream, element->expr.ops.binary.opnd1, 0);
         break;
 
       case EXPR_TERNARY:
-        fprintf (stream, " %s <", tree_code_name[element->expr.ops.ternary.op]);
+       fprintf (stream, " %s <", get_tree_code_name (element->expr.ops.ternary.op));
         print_generic_expr (stream, element->expr.ops.ternary.opnd0, 0);
        fputs (", ", stream);
         print_generic_expr (stream, element->expr.ops.ternary.opnd1, 0);
index 946de8f3d52fe4a87b2806aa90d008f78ae08268..4774f39ae7cbe2144692d006cc8ff6f62a80c191 100644 (file)
@@ -911,7 +911,7 @@ print_pre_expr (FILE *outfile, const pre_expr expr)
       {
        unsigned int i;
        vn_nary_op_t nary = PRE_EXPR_NARY (expr);
-       fprintf (outfile, "{%s,", tree_code_name [nary->opcode]);
+       fprintf (outfile, "{%s,", get_tree_code_name (nary->opcode));
        for (i = 0; i < nary->length; i++)
          {
            print_generic_expr (outfile, nary->op[i], 0);
@@ -936,7 +936,7 @@ print_pre_expr (FILE *outfile, const pre_expr expr)
            if (vro->opcode != SSA_NAME
                && TREE_CODE_CLASS (vro->opcode) != tcc_declaration)
              {
-               fprintf (outfile, "%s", tree_code_name [vro->opcode]);
+               fprintf (outfile, "%s", get_tree_code_name (vro->opcode));
                if (vro->op0)
                  {
                    fprintf (outfile, "<");
index e7b2f33440189e9382c96dec15364521d9529782..e87e774e5e45212510a7b5a1887efbd5cab6a7d8 100644 (file)
@@ -3754,7 +3754,7 @@ vect_create_data_ref_ptr (gimple stmt, tree aggr_type, struct loop *at_loop,
       tree dr_base_type = TREE_TYPE (DR_BASE_OBJECT (dr));
       dump_printf_loc (MSG_NOTE, vect_location,
                        "create %s-pointer variable to type: ",
-                       tree_code_name[(int) TREE_CODE (aggr_type)]);
+                      get_tree_code_name (TREE_CODE (aggr_type)));
       dump_generic_expr (MSG_NOTE, TDF_SLIM, aggr_type);
       if (TREE_CODE (dr_base_type) == ARRAY_TYPE)
         dump_printf (MSG_NOTE, "  vectorizing an array ref: ");
index 8b6b91d21834a6771d217b88a5e15e6730f4e743..2bc15812e5a0a8d3d82589f4dff2862a4d047b74 100644 (file)
@@ -4585,7 +4585,7 @@ dump_asserts_for (FILE *file, tree name)
        }
       fprintf (file, "\n\tPREDICATE: ");
       print_generic_expr (file, name, 0);
-      fprintf (file, " %s ", tree_code_name[(int)loc->comp_code]);
+      fprintf (file, " %s ", get_tree_code_name (loc->comp_code));
       print_generic_expr (file, loc->val, 0);
       fprintf (file, "\n\n");
       loc = loc->next;
index 8b7490dcd9889f0f7842e56ea255ce9fd5ca1da6..f1dddb75de96874ad640cc9ba8da27cae807bf1b 100644 (file)
@@ -91,7 +91,7 @@ const unsigned char tree_code_length[] = {
 #define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,
 #define END_OF_BASE_TREE_CODES "@dummy",
 
-const char *const tree_code_name[] = {
+static const char *const tree_code_name[] = {
 #include "all-tree.def"
 };
 
@@ -9098,7 +9098,8 @@ dump_tree_statistics (void)
       fprintf (stderr, "Code                   Nodes\n");
       fprintf (stderr, "----------------------------\n");
       for (i = 0; i < (int) MAX_TREE_CODES; i++)
-       fprintf (stderr, "%-20s %7d\n", tree_code_name[i], tree_code_counts[i]);
+       fprintf (stderr, "%-20s %7d\n", get_tree_code_name ((enum tree_code) i),
+                 tree_code_counts[i]);
       fprintf (stderr, "----------------------------\n");
       ssanames_print_statistics ();
       phinodes_print_statistics ();
@@ -9268,11 +9269,11 @@ tree_check_failed (const_tree node, const char *file,
   va_list args;
   const char *buffer;
   unsigned length = 0;
-  int code;
+  enum tree_code code;
 
   va_start (args, function);
-  while ((code = va_arg (args, int)))
-    length += 4 + strlen (tree_code_name[code]);
+  while ((code = (enum tree_code) va_arg (args, int)))
+    length += 4 + strlen (get_tree_code_name (code));
   va_end (args);
   if (length)
     {
@@ -9281,14 +9282,14 @@ tree_check_failed (const_tree node, const char *file,
       length += strlen ("expected ");
       buffer = tmp = (char *) alloca (length);
       length = 0;
-      while ((code = va_arg (args, int)))
+      while ((code = (enum tree_code) va_arg (args, int)))
        {
          const char *prefix = length ? " or " : "expected ";
 
          strcpy (tmp + length, prefix);
          length += strlen (prefix);
-         strcpy (tmp + length, tree_code_name[code]);
-         length += strlen (tree_code_name[code]);
+         strcpy (tmp + length, get_tree_code_name (code));
+         length += strlen (get_tree_code_name (code));
        }
       va_end (args);
     }
@@ -9296,7 +9297,7 @@ tree_check_failed (const_tree node, const char *file,
     buffer = "unexpected node";
 
   internal_error ("tree check: %s, have %s in %s, at %s:%d",
-                 buffer, tree_code_name[TREE_CODE (node)],
+                 buffer, get_tree_code_name (TREE_CODE (node)),
                  function, trim_filename (file), line);
 }
 
@@ -9311,29 +9312,29 @@ tree_not_check_failed (const_tree node, const char *file,
   va_list args;
   char *buffer;
   unsigned length = 0;
-  int code;
+  enum tree_code code;
 
   va_start (args, function);
-  while ((code = va_arg (args, int)))
-    length += 4 + strlen (tree_code_name[code]);
+  while ((code = (enum tree_code) va_arg (args, int)))
+    length += 4 + strlen (get_tree_code_name (code));
   va_end (args);
   va_start (args, function);
   buffer = (char *) alloca (length);
   length = 0;
-  while ((code = va_arg (args, int)))
+  while ((code = (enum tree_code) va_arg (args, int)))
     {
       if (length)
        {
          strcpy (buffer + length, " or ");
          length += 4;
        }
-      strcpy (buffer + length, tree_code_name[code]);
-      length += strlen (tree_code_name[code]);
+      strcpy (buffer + length, get_tree_code_name (code));
+      length += strlen (get_tree_code_name (code));
     }
   va_end (args);
 
   internal_error ("tree check: expected none of %s, have %s in %s, at %s:%d",
-                 buffer, tree_code_name[TREE_CODE (node)],
+                 buffer, get_tree_code_name (TREE_CODE (node)),
                  function, trim_filename (file), line);
 }
 
@@ -9348,7 +9349,7 @@ tree_class_check_failed (const_tree node, const enum tree_code_class cl,
     ("tree check: expected class %qs, have %qs (%s) in %s, at %s:%d",
      TREE_CODE_CLASS_STRING (cl),
      TREE_CODE_CLASS_STRING (TREE_CODE_CLASS (TREE_CODE (node))),
-     tree_code_name[TREE_CODE (node)], function, trim_filename (file), line);
+     get_tree_code_name (TREE_CODE (node)), function, trim_filename (file), line);
 }
 
 /* Similar to tree_check_failed, except that instead of specifying a
@@ -9364,7 +9365,7 @@ tree_range_check_failed (const_tree node, const char *file, int line,
   unsigned int c;
 
   for (c = c1; c <= c2; ++c)
-    length += 4 + strlen (tree_code_name[c]);
+    length += 4 + strlen (get_tree_code_name ((enum tree_code) c));
 
   length += strlen ("expected ");
   buffer = (char *) alloca (length);
@@ -9376,12 +9377,12 @@ tree_range_check_failed (const_tree node, const char *file, int line,
 
       strcpy (buffer + length, prefix);
       length += strlen (prefix);
-      strcpy (buffer + length, tree_code_name[c]);
-      length += strlen (tree_code_name[c]);
+      strcpy (buffer + length, get_tree_code_name ((enum tree_code) c));
+      length += strlen (get_tree_code_name ((enum tree_code) c));
     }
 
   internal_error ("tree check: %s, have %s in %s, at %s:%d",
-                 buffer, tree_code_name[TREE_CODE (node)],
+                 buffer, get_tree_code_name (TREE_CODE (node)),
                  function, trim_filename (file), line);
 }
 
@@ -9397,7 +9398,7 @@ tree_not_class_check_failed (const_tree node, const enum tree_code_class cl,
     ("tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d",
      TREE_CODE_CLASS_STRING (cl),
      TREE_CODE_CLASS_STRING (TREE_CODE_CLASS (TREE_CODE (node))),
-     tree_code_name[TREE_CODE (node)], function, trim_filename (file), line);
+     get_tree_code_name (TREE_CODE (node)), function, trim_filename (file), line);
 }
 
 
@@ -9408,7 +9409,7 @@ omp_clause_check_failed (const_tree node, const char *file, int line,
                          const char *function, enum omp_clause_code code)
 {
   internal_error ("tree check: expected omp_clause %s, have %s in %s, at %s:%d",
-                 omp_clause_code_name[code], tree_code_name[TREE_CODE (node)],
+                 omp_clause_code_name[code], get_tree_code_name (TREE_CODE (node)),
                  function, trim_filename (file), line);
 }
 
@@ -9469,7 +9470,7 @@ tree_contains_struct_check_failed (const_tree node,
   internal_error
     ("tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d",
      TS_ENUM_NAME (en),
-     tree_code_name[TREE_CODE (node)], function, trim_filename (file), line);
+     get_tree_code_name (TREE_CODE (node)), function, trim_filename (file), line);
 }
 
 
@@ -9492,10 +9493,10 @@ void
 tree_operand_check_failed (int idx, const_tree exp, const char *file,
                           int line, const char *function)
 {
-  int code = TREE_CODE (exp);
+  enum tree_code code = TREE_CODE (exp);
   internal_error
     ("tree check: accessed operand %d of %s with %d operands in %s, at %s:%d",
-     idx + 1, tree_code_name[code], TREE_OPERAND_LENGTH (exp),
+     idx + 1, get_tree_code_name (code), TREE_OPERAND_LENGTH (exp),
      function, trim_filename (file), line);
 }
 
@@ -12407,4 +12408,16 @@ using_eh_for_cleanups_p (void)
   return using_eh_for_cleanups_flag;
 }
 
+/* Wrapper for tree_code_name to ensure that tree code is valid */
+const char *
+get_tree_code_name (enum tree_code code)
+{
+  const char *invalid = "<invalid tree code>";
+
+  if (code >= MAX_TREE_CODES)
+    return invalid;
+
+  return tree_code_name[code];
+}
+
 #include "gt-tree.h"
index 6cae818af793fc54a44a6ccd9c66e0946d6b34de..2b6e762cbe8455c40c88173824c3b3ad9ed57279 100644 (file)
@@ -4593,6 +4593,8 @@ extern bool block_may_fallthru (const_tree);
 extern void using_eh_for_cleanups (void);
 extern bool using_eh_for_cleanups_p (void);
 
+extern const char *get_tree_code_name (enum tree_code);
+
 /* In tree-nested.c */
 extern tree build_addr (tree, tree);