From 5bfaaedad796941281dc9e736c7f638c3f9f5690 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Tue, 12 Mar 1996 21:47:30 -0800 Subject: [PATCH] dbxout.c (dbxout_type): Better "variant" handling to ignore const/volatile but not typedef names. * dbxout.c (dbxout_type): Better "variant" handling to ignore const/volatile but not typedef names. Improves Feb 12 change. From-SVN: r11523 --- gcc/dbxout.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 17c56877292..39c61ea0c4c 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -1057,10 +1057,20 @@ dbxout_type (type, full, show_arg_types) by assuming `int'. */ if (type == error_mark_node) type = integer_type_node; - else if (!(TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL - && DECL_ORIGINAL_TYPE (TYPE_NAME (type)))) + else { - type = TYPE_MAIN_VARIANT (type); + /* Try to find the "main variant" with the same name but not const + or volatile. (Since stabs does not distinguish const and volatile, + there is no need to make them separate types. But types with + different names are usefully distinguished.) */ + + for (tem = TYPE_MAIN_VARIANT (type); tem; tem = TYPE_NEXT_VARIANT (tem)) + if (!TYPE_READONLY (tem) && !TYPE_VOLATILE (tem) + && TYPE_NAME (tem) == TYPE_NAME (type)) + { + type = tem; + break; + } if (TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL && TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (type))) -- 2.30.2