summaryrefslogtreecommitdiff
path: root/gcc/dbxout.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1999-11-12 03:56:09 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1999-11-12 03:56:09 +0000
commit65381c5560d5afb34f07d8d3a039cf4a1da128b4 (patch)
tree4d441d031a51d2351a139401eeaa69f86d12adfc /gcc/dbxout.c
parentec393d58ac3cb2d74996cda3fca634f3ddb6e9ec (diff)
downloadgcc-65381c5560d5afb34f07d8d3a039cf4a1da128b4.tar.gz
Fix gdb testsuite failures caused by Kenner's bulk merge from gcc2.
* 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
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r--gcc/dbxout.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 70051944ca3..cce7031e4eb 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -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);