From af02da670bfb62cf65c8eaaad0d2f3a5315d84f5 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 19 May 1998 15:31:53 +0000 Subject: [PATCH] Fix SCO5 namespace/dwarf interaction bug. * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore LANG_TYPE trees with DECL_SOURCE_LINE of 0. From-SVN: r19883 --- gcc/ChangeLog | 5 +++++ gcc/dwarfout.c | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e1660b19f99..811a157a4b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +1998-05-19 Jim Wilson + + * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Ignore + LANG_TYPE trees with DECL_SOURCE_LINE of 0. + Tue May 19 15:07:54 1998 Todd Vierling * arm/netbsd.h: Ensure DWARF2_UNWIND_INFO is undefined. diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c index e80a2c9a92f..ce9df47efd3 100644 --- a/gcc/dwarfout.c +++ b/gcc/dwarfout.c @@ -5190,8 +5190,18 @@ dwarfout_file_scope_decl (decl, set_finalizing) really need to output these (non-fundamental) types because other DIEs may contain references to them. */ + /* Also ignore language dependent types here, because they are probably + also built-in types. If we didn't ignore them, then we would get + references to undefined labels because output_type doesn't support + them. So, for now, we need to ignore them to avoid assembler + errors. */ + + /* ??? This code is different than the equivalent code in dwarf2out.c. + The dwarf2out.c code is probably more correct. */ + if (DECL_SOURCE_LINE (decl) == 0 - && type_is_fundamental (TREE_TYPE (decl))) + && (type_is_fundamental (TREE_TYPE (decl)) + || TREE_CODE (TREE_TYPE (decl)) == LANG_TYPE)) return; /* If we are in terse mode, don't generate any DIEs to represent -- 2.30.2