dwarf2out.c (output_line_info): Put the marker for the end of the line number info...
authorJason Merrill <jason@casey.cygnus.com>
Tue, 22 Feb 2000 22:04:35 +0000 (22:04 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 22 Feb 2000 22:04:35 +0000 (17:04 -0500)
        * dwarf2out.c (output_line_info): Put the marker for the end of
        the line number info at the actual end.
        (gen_struct_or_union_type_die): Use decl_function_context
        to check for local classes.
        * dwarfout.c (output_type): Likewise.

From-SVN: r32105

gcc/ChangeLog
gcc/dwarf2out.c
gcc/dwarfout.c

index 34cef0f..84c5af1 100644 (file)
@@ -1,3 +1,11 @@
+2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
+
+       * dwarf2out.c (output_line_info): Put the marker for the end of
+       the line number info at the actual end.
+       (gen_struct_or_union_type_die): Use decl_function_context 
+       to check for local classes.
+       * dwarfout.c (output_type): Likewise.
+
 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
 
        * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
index 39b3734..6181cfb 100644 (file)
@@ -2398,6 +2398,8 @@ static int get_AT_flag                    PARAMS ((dw_die_ref,
                                                 enum dwarf_attribute));
 static unsigned get_AT_unsigned                PARAMS ((dw_die_ref,
                                                 enum dwarf_attribute));
+static inline dw_die_ref get_AT_ref    PARAMS ((dw_die_ref,
+                                                enum dwarf_attribute));
 static int is_c_family                 PARAMS ((void));
 static int is_fortran                  PARAMS ((void));
 static void remove_AT                  PARAMS ((dw_die_ref,
@@ -3876,7 +3878,6 @@ get_AT_unsigned (die, attr_kind)
   return AT_unsigned (a);
 }
 
-static inline dw_die_ref get_AT_ref PARAMS ((dw_die_ref, enum dwarf_attribute));
 static inline dw_die_ref
 get_AT_ref (die, attr_kind)
      dw_die_ref die;
@@ -5730,8 +5731,6 @@ output_line_info ()
       fputc ('\n', asm_out_file);
     }
 
-  /* Output the marker for the end of the line number info.  */
-  ASM_OUTPUT_LABEL (asm_out_file, ".LTEND");
   ASM_OUTPUT_DWARF_DATA1 (asm_out_file, 0);
   if (flag_debug_asm)
     fprintf (asm_out_file, "\t%s DW_LNE_end_sequence", ASM_COMMENT_START);
@@ -5926,6 +5925,9 @@ output_line_info ()
          fputc ('\n', asm_out_file);
        }
     }
+
+  /* Output the marker for the end of the line number info.  */
+  ASM_OUTPUT_LABEL (asm_out_file, ".LTEND");
 }
 \f
 /* Given a pointer to a BLOCK node return non-zero if (and only if) the node
@@ -8881,7 +8883,7 @@ gen_struct_or_union_type_die (type, context_die)
       add_AT_flag (type_die, DW_AT_declaration, 1);
 
       /* We don't need to do this for function-local types.  */
-      if (context_die)
+      if (! decl_function_context (TYPE_STUB_DECL (type)))
        add_incomplete_type (type);
     }
 }
index c6fcbe6..9474425 100644 (file)
@@ -4456,9 +4456,8 @@ output_type (type, containing_scope)
                || TREE_CODE (TYPE_CONTEXT (type)) == NAMESPACE_DECL)
            && !finalizing)
          {
-           /* We can't do this for function-local types, and we don't need
-               to.  */
-           if (TREE_PERMANENT (type))
+           /* We don't need to do this for function-local types.  */
+           if (! decl_function_context (TYPE_STUB_DECL (type)))
              add_incomplete_type (type);
            return;     /* EARLY EXIT!  Avoid setting TREE_ASM_WRITTEN.  */
          }