OSDN Git Service

Fix stabs bug with C array ranges.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jul 1998 19:14:18 +0000 (19:14 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jul 1998 19:14:18 +0000 (19:14 +0000)
* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
already defined type.

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

gcc/ChangeLog
gcc/dbxout.c

index f3e1fcc..97b5457 100644 (file)
@@ -1,3 +1,8 @@
+Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
+       already defined type.
+
 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
 
        * expr.c (check_max_integer_computation_mode): Allow conversions
index 9cdcef0..5e6f2a9 100644 (file)
@@ -954,8 +954,18 @@ dbxout_range_type (type)
         were defined to be sub-ranges of int.  Unfortunately, this
         does not allow us to distinguish true sub-ranges from integer
         types.  So, instead we define integer (non-sub-range) types as
-        sub-ranges of themselves.  */
-      dbxout_type_index (type);
+        sub-ranges of themselves.  This matters for Chill.  If this isn't
+        a subrange type, then we want to define it in terms of itself.
+        However, in C, this may be an anonymous integer type, and we don't
+        want to emit debug info referring to it.  Just calling
+        dbxout_type_index won't work anyways, because the type hasn't been
+        defined yet.  We make this work for both cases by checked to see
+        whether this is a defined type, referring to it if it is, and using
+        'int' otherwise.  */
+      if (TYPE_SYMTAB_ADDRESS (type) != 0)
+       dbxout_type_index (type);
+      else
+       dbxout_type_index (integer_type_node);
     }
   if (TREE_CODE (TYPE_MIN_VALUE (type)) == INTEGER_CST)
     {