diff options
author | Jim Wilson <wilson@cygnus.com> | 1999-11-12 03:56:09 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1999-11-11 19:56:09 -0800 |
commit | f292dac5d54e445c9d0372f109c25932a3888eca (patch) | |
tree | 4d441d031a51d2351a139401eeaa69f86d12adfc /gcc/dbxout.c | |
parent | d3f2edaeb9b41c23c6beeaeff944c0acb3c83658 (diff) | |
download | gcc-f292dac5d54e445c9d0372f109c25932a3888eca.zip gcc-f292dac5d54e445c9d0372f109c25932a3888eca.tar.gz gcc-f292dac5d54e445c9d0372f109c25932a3888eca.tar.bz2 |
Fix gdb testsuite failures caused by Kenner's bulk merge from gcc2.
* dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
unsigned types.
From-SVN: r30495
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 7005194..cce7031 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); |