DWARF
authorJason Merrill <merrill@gnu.org>
Sat, 5 Oct 1996 09:38:40 +0000 (09:38 +0000)
committerJason Merrill <merrill@gnu.org>
Sat, 5 Oct 1996 09:38:40 +0000 (09:38 +0000)
From-SVN: r12905

gcc/toplev.c

index 662ebaad595019952b5a2b3f01058dd605c413af..e61415213d70a4e185c1f61d5642be9649773652 100644 (file)
@@ -2520,7 +2520,7 @@ compile_file (name)
           and definitions which have not yet been forced out.  */
 
        if (write_symbols == DWARF_DEBUG
-           && DECL_RTL (decl) != 0
+           && (TREE_CODE (decl) != VAR_DECL || DECL_RTL (decl) != 0)
            && (TREE_CODE (decl) != FUNCTION_DECL || !DECL_INITIAL (decl)))
          TIMEVAR (symout_time, dwarfout_file_scope_decl (decl, 1));
 #endif
@@ -2753,7 +2753,13 @@ rest_of_type_compilation (type, toplev)
     TIMEVAR (symout_time, sdbout_symbol (TYPE_STUB_DECL (type), !toplev));
 #endif
 #ifdef DWARF_DEBUGGING_INFO
-  if (write_symbols == DWARF_DEBUG)
+  /* If this is a file-scope or function-scope type, or a class-scope type
+     for which the containing class has already been completed, write it
+     out now to avoid ordering headaches with member functions.  */
+  if (write_symbols == DWARF_DEBUG
+      && (TYPE_CONTEXT (type) == NULL_TREE
+         || TREE_CODE_CLASS (TREE_CODE (TYPE_CONTEXT (type))) != 't'
+         || TREE_ASM_WRITTEN (TYPE_CONTEXT (type))))
     TIMEVAR (symout_time, dwarfout_file_scope_decl (TYPE_STUB_DECL (type), 0));
 #endif
 }