OSDN Git Service

* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
[pf3gnuchains/gcc-fork.git] / gcc / sdbout.c
index 7d5c820..255c68e 100644 (file)
@@ -1,6 +1,6 @@
 /* Output sdb-format symbol table information from GNU compiler.
    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
+   2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -48,7 +48,7 @@ AT&T C compiler.  From the example below I would conclude the following:
 #include "debug.h"
 #include "tree.h"
 #include "ggc.h"
-#include "varray.h"
+#include "vec.h"
 
 static GTY(()) tree anonymous_types;
 
@@ -58,7 +58,7 @@ static GTY(()) int unnamed_struct_number;
 
 /* Declarations whose debug info was deferred till end of compilation.  */
 
-static GTY(()) varray_type deferred_global_decls;
+static GTY(()) VEC(tree,gc) *deferred_global_decls;
 
 /* The C front end may call sdbout_symbol before sdbout_init runs.
    We save all such decls in this list and output them when we get
@@ -75,7 +75,7 @@ static GTY(()) bool sdbout_initialized;
 #include "insn-config.h"
 #include "reload.h"
 #include "output.h"
-#include "toplev.h"
+#include "diagnostic-core.h"
 #include "tm_p.h"
 #include "gsyms.h"
 #include "langhooks.h"
@@ -325,6 +325,7 @@ const struct gcc_debug_hooks sdb_debug_hooks =
   sdbout_begin_prologue,                /* begin_prologue */
   debug_nothing_int_charstar,           /* end_prologue */
 #endif
+  debug_nothing_int_charstar,           /* begin_epilogue */
   sdbout_end_epilogue,                  /* end_epilogue */
   sdbout_begin_function,                /* begin_function */
   sdbout_end_function,                  /* end_function */
@@ -338,12 +339,9 @@ const struct gcc_debug_hooks sdb_debug_hooks =
   debug_nothing_int,                    /* handle_pch */
   debug_nothing_rtx,                    /* var_location */
   debug_nothing_void,                    /* switch_text_section */
-  debug_nothing_tree,                   /* direct_call */
-  debug_nothing_tree_int,               /* virtual_call_token */
-  debug_nothing_rtx_rtx,                /* copy_call_info */
-  debug_nothing_uid,                    /* virtual_call */
   debug_nothing_tree_tree,              /* set_name */
-  0                                      /* start_end_main_source_file */
+  0,                                     /* start_end_main_source_file */
+  TYPE_SYMTAB_IS_POINTER                 /* tree_type_symtab_field */
 };
 
 /* Return a unique string to name an anonymous type.  */
@@ -493,6 +491,7 @@ plain_type_1 (tree type, int level)
   switch (TREE_CODE (type))
     {
     case VOID_TYPE:
+    case NULLPTR_TYPE:
       return T_VOID;
     case BOOLEAN_TYPE:
     case INTEGER_TYPE:
@@ -1156,7 +1155,7 @@ sdbout_one_type (tree type)
              {
                tree child_type = BINFO_TYPE (child);
                tree child_type_name;
-               
+
                if (TYPE_NAME (child_type) == 0)
                  continue;
                if (TREE_CODE (TYPE_NAME (child_type)) == IDENTIFIER_NODE)
@@ -1464,7 +1463,7 @@ sdbout_global_decl (tree decl)
       if (!DECL_INITIAL (decl) || !TREE_PUBLIC (decl))
        sdbout_symbol (decl, 0);
       else
-       VARRAY_PUSH_TREE (deferred_global_decls, decl);
+       VEC_safe_push (tree, gc, deferred_global_decls, decl);
 
       /* Output COFF information for non-global file-scope initialized
         variables.  */
@@ -1480,9 +1479,10 @@ static void
 sdbout_finish (const char *main_filename ATTRIBUTE_UNUSED)
 {
   size_t i;
+  tree decl;
 
-  for (i = 0; i < VARRAY_ACTIVE_SIZE (deferred_global_decls); i++)
-    sdbout_symbol (VARRAY_TREE (deferred_global_decls, i), 0);
+  FOR_EACH_VEC_ELT (tree, deferred_global_decls, i, decl)
+    sdbout_symbol (decl, 0);
 }
 
 /* Describe the beginning of an internal block within a function.
@@ -1689,7 +1689,7 @@ sdbout_init (const char *input_file_name ATTRIBUTE_UNUSED)
   current_file->name = input_file_name;
 #endif
 
-  VARRAY_TREE_INIT (deferred_global_decls, 12, "deferred_global_decls");
+  deferred_global_decls = VEC_alloc (tree, gc, 12);
 
   /* Emit debug information which was queued by sdbout_symbol before
      we got here.  */
@@ -1700,46 +1700,6 @@ sdbout_init (const char *input_file_name ATTRIBUTE_UNUSED)
   preinit_symbols = 0;
 }
 
-#else  /* SDB_DEBUGGING_INFO */
-
-/* This should never be used, but its address is needed for comparisons.  */
-const struct gcc_debug_hooks sdb_debug_hooks =
-{
-  0,           /* init */
-  0,           /* finish */
-  0,           /* assembly_start */
-  0,           /* define */
-  0,           /* undef */
-  0,           /* start_source_file */
-  0,           /* end_source_file */
-  0,           /* begin_block */
-  0,           /* end_block */
-  0,           /* ignore_block */
-  0,           /* source_line */
-  0,           /* begin_prologue */
-  0,           /* end_prologue */
-  0,           /* end_epilogue */
-  0,           /* begin_function */
-  0,           /* end_function */
-  0,           /* function_decl */
-  0,           /* global_decl */
-  0,           /* type_decl */
-  0,           /* imported_module_or_decl */
-  0,           /* deferred_inline_function */
-  0,           /* outlining_inline_function */
-  0,           /* label */
-  0,           /* handle_pch */
-  0,           /* var_location */
-  0,           /* switch_text_section */
-  0,           /* direct_call */
-  0,           /* virtual_call_token */
-  0,           /* copy_call_info */
-  0,           /* virtual_call */
-  0,           /* set_name */
-  0            /* start_end_main_source_file */
-};
-
-
 #endif /* SDB_DEBUGGING_INFO */
 
 #include "gt-sdbout.h"