Fix gdb testsuite failures caused by Kenner's bulk merge from gcc2.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Nov 1999 03:56:09 +0000 (03:56 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Nov 1999 03:56:09 +0000 (03:56 +0000)
* dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
unsigned types.

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

gcc/ChangeLog
gcc/dbxout.c

index 68fbfbd..a27282e 100644 (file)
@@ -1,3 +1,8 @@
+Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
+       unsigned types.
+
 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
 
        * function.c (diddle_return_value): Use hard_function_value to
index 7005194..cce7031 100644 (file)
@@ -1180,9 +1180,17 @@ dbxout_type (type, full, show_arg_types)
             can write it out in case the host wide int is narrower than the
             target "long".  */
 
+         /* For unsigned types, we use octal if they are the same size or
+            larger.  This is because we print the bounds as signed decimal,
+            and hence they can't span same size unsigned types.  */
+
          if (use_gnu_debug_info_extensions
              && (TYPE_PRECISION (type) > TYPE_PRECISION (integer_type_node)
-                 || TYPE_PRECISION (type) > HOST_BITS_PER_WIDE_INT))
+                 || (TYPE_PRECISION (type) == TYPE_PRECISION (integer_type_node)
+                     && TREE_UNSIGNED (type))
+                 || TYPE_PRECISION (type) > HOST_BITS_PER_WIDE_INT
+                 || (TYPE_PRECISION (type) == HOST_BITS_PER_WIDE_INT
+                     && TREE_UNSIGNED (type))))
            {
              fprintf (asmfile, "r");
              dbxout_type_index (type);