From bed7dc7a9f5ed1ad3f65fd3e5438e69a9fcd251d Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Mon, 27 Jul 1992 04:09:09 +0000 Subject: [PATCH] (dbxout_symbol): Distinguish implicit C++ typedefs from explicit C typedefs for structs, using DECL_SOURCE_LINE. From-SVN: r1690 --- gcc/dbxout.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gcc/dbxout.c b/gcc/dbxout.c index a39f6515fdb..5f9e4b5d2b5 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -1413,14 +1413,15 @@ dbxout_symbol (decl, local) /* Handle the case of a C++ structure or union where the TYPE_NAME is a TYPE_DECL which gives both a typedef name and a tag. */ - /* dbx requires the tag first and the typedef second. - ??? there is a bug here. It generates spurious tags - for C code. */ + /* dbx requires the tag first and the typedef second. */ if ((TREE_CODE (type) == RECORD_TYPE || TREE_CODE (type) == UNION_TYPE) && TYPE_NAME (type) == decl && !(use_gnu_debug_info_extensions && have_used_extensions) - && !TREE_ASM_WRITTEN (TYPE_NAME (type))) + && !TREE_ASM_WRITTEN (TYPE_NAME (type)) + /* Distinguish the implicit typedefs of C++ + from explicit ones that might be found in C. */ + && DECL_SOURCE_LINE (decl) == 0) { tree name = TYPE_NAME (type); if (TREE_CODE (name) == TYPE_DECL) -- 2.30.2