aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@casey.cygnus.com>2000-02-22 22:04:35 +0000
committerJason Merrill <jason@gcc.gnu.org>2000-02-22 17:04:35 -0500
commitf19f17e08049dd89871753a20746f3fdf2a95ffb (patch)
tree846fb85460f1cf57241b9ec2478e7006167386cd
parent99803cd4cc24c236f177c15da793366841bb5434 (diff)
downloadgcc-f19f17e08049dd89871753a20746f3fdf2a95ffb.zip
gcc-f19f17e08049dd89871753a20746f3fdf2a95ffb.tar.gz
gcc-f19f17e08049dd89871753a20746f3fdf2a95ffb.tar.bz2
dwarf2out.c (output_line_info): Put the marker for the end of the line number info at the actual end.
* 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
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/dwarf2out.c10
-rw-r--r--gcc/dwarfout.c5
3 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 34cef0f..84c5af1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 39b3734..6181cfb 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -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");
}
/* 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);
}
}
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c
index c6fcbe6..9474425 100644
--- a/gcc/dwarfout.c
+++ b/gcc/dwarfout.c
@@ -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. */
}