OSDN Git Service

* dwarf2out.c (gen_type_die): Check for typedefs before calling
authordrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Feb 2003 21:12:55 +0000 (21:12 +0000)
committerdrow <drow@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Feb 2003 21:12:55 +0000 (21:12 +0000)
for TYPE_MAIN_VARIANT.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62258 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c

index fef7792..95aff18 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
+
+       * dwarf2out.c (gen_type_die): Check for typedefs before calling
+       for TYPE_MAIN_VARIANT.
+
 2003-02-01  Richard Henderson  <rth@redhat.com>
 
        * libgcc2.c: Include auto-host.h.
index 1cd511d..64aac19 100644 (file)
@@ -11606,20 +11606,12 @@ gen_type_die (type, context_die)
   if (type == NULL_TREE || type == error_mark_node)
     return;
 
-  /* We are going to output a DIE to represent the unqualified version
-     of this type (i.e. without any const or volatile qualifiers) so
-     get the main variant (i.e. the unqualified version) of this type
-     now.  (Vectors are special because the debugging info is in the
-     cloned type itself).  */
-  if (TREE_CODE (type) != VECTOR_TYPE)
-    type = type_main_variant (type);
-
-  if (TREE_ASM_WRITTEN (type))
-    return;
-
   if (TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
       && DECL_ORIGINAL_TYPE (TYPE_NAME (type)))
     {
+      if (TREE_ASM_WRITTEN (type))
+       return;
+
       /* Prevent broken recursion; we can't hand off to the same type.  */
       if (DECL_ORIGINAL_TYPE (TYPE_NAME (type)) == type)
        abort ();
@@ -11629,6 +11621,17 @@ gen_type_die (type, context_die)
       return;
     }
 
+  /* We are going to output a DIE to represent the unqualified version
+     of this type (i.e. without any const or volatile qualifiers) so
+     get the main variant (i.e. the unqualified version) of this type
+     now.  (Vectors are special because the debugging info is in the
+     cloned type itself).  */
+  if (TREE_CODE (type) != VECTOR_TYPE)
+    type = type_main_variant (type);
+
+  if (TREE_ASM_WRITTEN (type))
+    return;
+
   switch (TREE_CODE (type))
     {
     case ERROR_MARK: