tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL, NAMESPACE_DECL, IMPORTED_DECL...
[gcc.git] / gcc / print-tree.c
index 91b696cfa49eab1908f5ac72566c72dce3bb4446..eee0df9afc0b91195e512d78209d7cc65cfdd2a6 100644 (file)
@@ -35,6 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-dump.h"
 #include "dumpfile.h"
+#include "wide-int-print.h"
 
 /* Define the hash table of nodes already seen.
    Such nodes are not repeated; brief cross-references are used.  */
@@ -125,16 +126,7 @@ print_node_brief (FILE *file, const char *prefix, const_tree node, int indent)
        fprintf (file, " overflow");
 
       fprintf (file, " ");
-      if (TREE_INT_CST_HIGH (node) == 0)
-       fprintf (file, HOST_WIDE_INT_PRINT_UNSIGNED, TREE_INT_CST_LOW (node));
-      else if (TREE_INT_CST_HIGH (node) == -1
-              && TREE_INT_CST_LOW (node) != 0)
-       fprintf (file, "-" HOST_WIDE_INT_PRINT_UNSIGNED,
-                -TREE_INT_CST_LOW (node));
-      else
-       fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX,
-                (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (node),
-                (unsigned HOST_WIDE_INT) TREE_INT_CST_LOW (node));
+      print_dec (node, file, TYPE_SIGN (TREE_TYPE (node)));
     }
   if (TREE_CODE (node) == REAL_CST)
     {
@@ -341,7 +333,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
   if (TREE_VISITED (node))
     fputs (" visited", file);
 
-  if (code != TREE_VEC && code != SSA_NAME)
+  if (code != TREE_VEC && code != INTEGER_CST && code != SSA_NAME)
     {
       if (TREE_LANG_FLAG_0 (node))
        fputs (" tree_0", file);
@@ -426,24 +418,8 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
        fputs (" common", file);
       if (code == VAR_DECL && DECL_THREAD_LOCAL_P (node))
        {
-         enum tls_model kind = DECL_TLS_MODEL (node);
-         switch (kind)
-           {
-             case TLS_MODEL_GLOBAL_DYNAMIC:
-               fputs (" tls-global-dynamic", file);
-               break;
-             case TLS_MODEL_LOCAL_DYNAMIC:
-               fputs (" tls-local-dynamic", file);
-               break;
-             case TLS_MODEL_INITIAL_EXEC:
-               fputs (" tls-initial-exec", file);
-               break;
-             case TLS_MODEL_LOCAL_EXEC:
-               fputs (" tls-local-exec", file);
-               break;
-             default:
-               gcc_unreachable ();
-           }
+         fputs (" ", file);
+         fputs (tls_model_names[DECL_TLS_MODEL (node)], file);
        }
 
       if (CODE_CONTAINS_STRUCT (code, TS_DECL_COMMON))
@@ -538,7 +514,6 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
        }
       if (CODE_CONTAINS_STRUCT (code, TS_DECL_NON_COMMON))
        {
-         print_node (file, "arguments", DECL_ARGUMENT_FLD (node), indent + 4);
          print_node (file, "result", DECL_RESULT_FLD (node), indent + 4);
        }
 
@@ -564,6 +539,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
       else if (code == FUNCTION_DECL
               && DECL_STRUCT_FUNCTION (node) != 0)
        {
+         print_node (file, "arguments", DECL_ARGUMENTS (node), indent + 4);
          indent_to (file, indent + 4);
          dump_addr (file, "struct-function ", DECL_STRUCT_FUNCTION (node));
        }
@@ -743,17 +719,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
            fprintf (file, " overflow");
 
          fprintf (file, " ");
-         if (TREE_INT_CST_HIGH (node) == 0)
-           fprintf (file, HOST_WIDE_INT_PRINT_UNSIGNED,
-                    TREE_INT_CST_LOW (node));
-         else if (TREE_INT_CST_HIGH (node) == -1
-                  && TREE_INT_CST_LOW (node) != 0)
-           fprintf (file, "-" HOST_WIDE_INT_PRINT_UNSIGNED,
-                    -TREE_INT_CST_LOW (node));
-         else
-           fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX,
-                    (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (node),
-                    (unsigned HOST_WIDE_INT) TREE_INT_CST_LOW (node));
+         print_dec (node, file, TYPE_SIGN (TREE_TYPE (node)));
          break;
 
        case REAL_CST: