Fix gdb testsuite failures caused by Kenner's bulk merge from gcc2.
authorJim Wilson <wilson@cygnus.com>
Fri, 12 Nov 1999 03:56:09 +0000 (03:56 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 12 Nov 1999 03:56:09 +0000 (19:56 -0800)
* dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
unsigned types.

From-SVN: r30495

gcc/ChangeLog
gcc/dbxout.c

index 68fbfbd27f6a15b7dac19d634109da7f4fb2ed86..a27282e652b0dd6c528e6fd640059facc8863297 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 70051944ca31b97203e7f926891689d29b14f8ae..cce7031e4ebe2c43922fd10dc14a8649d5bbf323 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);