diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-04-24 04:03:16 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-04-24 04:03:16 -0600 |
commit | e003ca80ce8c49aa90640dd03e82d5d3068164d3 (patch) | |
tree | bd05663d0562f87fb7c9b74d9c654f6f8600b3e9 /gcc | |
parent | 442f40184cbd2031b28e39cbe4f533db58cb540d (diff) | |
download | gcc-e003ca80ce8c49aa90640dd03e82d5d3068164d3.zip gcc-e003ca80ce8c49aa90640dd03e82d5d3068164d3.tar.gz gcc-e003ca80ce8c49aa90640dd03e82d5d3068164d3.tar.bz2 |
dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC appropriately.
d
* dbxout.c (dbxout_type_fields): Use HOST_WIDE_INT_PRINT_DEC
appropriately.
(dbxout_type_method_1, dbxout_type): Likewise.
(print_int_cst_octal, print_octal, dbxout_symbol): Likewise.
(dbxout_type): Fix check for when to print a type range in
octal vs decimal.
From-SVN: r19402
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/dbxout.c | 83 |
1 files changed, 58 insertions, 25 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 231f003..79c1ba7 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -662,8 +662,10 @@ dbxout_type_fields (type) dbxout_type (DECL_FCONTEXT (tem), 0, 0); fprintf (asmfile, ":"); dbxout_type (TREE_TYPE (tem), 0, 0); - fprintf (asmfile, ",%d;", + fputc (',', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, TREE_INT_CST_LOW (DECL_FIELD_BITPOS (tem))); + fputc (';', asmfile); continue; } @@ -712,9 +714,13 @@ dbxout_type_fields (type) } else if (TREE_CODE (DECL_FIELD_BITPOS (tem)) == INTEGER_CST) { - fprintf (asmfile, ",%d,%d;", - TREE_INT_CST_LOW (DECL_FIELD_BITPOS (tem)), + fputc (',', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, + TREE_INT_CST_LOW (DECL_FIELD_BITPOS (tem))); + fputc (',', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, TREE_INT_CST_LOW (DECL_SIZE (tem))); + fputc (';', asmfile); } CHARS (23); } @@ -759,8 +765,9 @@ dbxout_type_method_1 (decl, debug_name) - (debug_name - IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)))); if (DECL_VINDEX (decl)) { - fprintf (asmfile, "%d;", + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, TREE_INT_CST_LOW (DECL_VINDEX (decl))); + fputc (';', asmfile); dbxout_type (DECL_CONTEXT (decl), 0, 0); fprintf (asmfile, ";"); CHARS (8); @@ -1128,9 +1135,12 @@ dbxout_type (type, full, show_arg_types) dbxout_type_index (type); fprintf (asmfile, ";0;127;"); } + /* This used to check if the type's precision was more than + HOST_BITS_PER_WIDE_INT. That is wrong since gdb uses a + long (it has no concept of HOST_BITS_PER_WIDE_INT). */ else 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) > HOST_BITS_PER_LONG)) { /* This used to say `r1' and we used to take care to make sure that `int' was type number 1. */ @@ -1152,14 +1162,20 @@ dbxout_type (type, full, show_arg_types) to make sure that `int' was type number 1. */ fprintf (asmfile, "r"); dbxout_type_index (integer_type_node); - fprintf (asmfile, ";%d;0;", int_size_in_bytes (type)); + fputc (';', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, int_size_in_bytes (type)); + fputs (";0;", asmfile); CHARS (13); break; case CHAR_TYPE: if (use_gnu_debug_info_extensions) - fprintf (asmfile, "@s%d;-20;", - BITS_PER_UNIT * int_size_in_bytes (type)); + { + fputs ("@s", asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, + BITS_PER_UNIT * int_size_in_bytes (type)); + fputs (";-20;", asmfile); + } else { /* Output the type `char' as a subrange of itself. @@ -1173,8 +1189,12 @@ dbxout_type (type, full, show_arg_types) case BOOLEAN_TYPE: if (use_gnu_debug_info_extensions) - fprintf (asmfile, "@s%d;-16;", - BITS_PER_UNIT * int_size_in_bytes (type)); + { + fputs ("@s", asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, + BITS_PER_UNIT * int_size_in_bytes (type)); + fputs (";-16;", asmfile); + } else /* Define as enumeral type (False, True) */ fprintf (asmfile, "eFalse:0,True:1,;"); CHARS (17); @@ -1193,15 +1213,18 @@ dbxout_type (type, full, show_arg_types) { fprintf (asmfile, "r"); dbxout_type_index (type); - fprintf (asmfile, ";%d;0;", + fputc (';', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, int_size_in_bytes (TREE_TYPE (type))); + fputs (";0;", asmfile); CHARS (12); /* The number is probably incorrect here. */ } else { /* Output a complex integer type as a structure, pending some other way to do it. */ - fprintf (asmfile, "s%d", int_size_in_bytes (type)); + fputc ('s', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, int_size_in_bytes (type)); fprintf (asmfile, "real:"); CHARS (10); @@ -1223,8 +1246,10 @@ dbxout_type (type, full, show_arg_types) if (use_gnu_debug_info_extensions) { have_used_extensions = 1; - fprintf (asmfile, "@s%d;", + fputs ("@s", asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, BITS_PER_UNIT * int_size_in_bytes (type)); + fputc (';', asmfile); /* Check if a bitstring type, which in Chill is different from a [power]set. */ if (TYPE_STRING_FLAG (type)) @@ -1310,7 +1335,8 @@ dbxout_type (type, full, show_arg_types) } /* Identify record or union, and print its size. */ - fprintf (asmfile, (TREE_CODE (type) == RECORD_TYPE) ? "s%d" : "u%d", + fputc (((TREE_CODE (type) == RECORD_TYPE) ? 's' : 'u'), asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, int_size_in_bytes (type)); if (use_gnu_debug_info_extensions) @@ -1334,8 +1360,9 @@ dbxout_type (type, full, show_arg_types) putc (TREE_VIA_PUBLIC (child) ? '2' : '0', asmfile); - fprintf (asmfile, "%d,", + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, TREE_INT_CST_LOW (BINFO_OFFSET (child)) * BITS_PER_UNIT); + fputc (',', asmfile); CHARS (15); dbxout_type (BINFO_TYPE (child), 0, 0); putc (';', asmfile); @@ -1347,9 +1374,13 @@ dbxout_type (type, full, show_arg_types) dbxout_type_name (BINFO_TYPE (child)); putc (':', asmfile); dbxout_type (BINFO_TYPE (child), full, 0); - fprintf (asmfile, ",%d,%d;", - TREE_INT_CST_LOW (BINFO_OFFSET (child)) * BITS_PER_UNIT, + fputc (',', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, + TREE_INT_CST_LOW (BINFO_OFFSET (child)) * BITS_PER_UNIT); + fputc (',', asmfile); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, TREE_INT_CST_LOW (DECL_SIZE (TYPE_NAME (BINFO_TYPE (child)))) * BITS_PER_UNIT); + fputc (';', asmfile); CHARS (20); } } @@ -1418,12 +1449,12 @@ dbxout_type (type, full, show_arg_types) { fprintf (asmfile, "%s:", IDENTIFIER_POINTER (TREE_PURPOSE (tem))); if (TREE_INT_CST_HIGH (TREE_VALUE (tem)) == 0) - fprintf (asmfile, "%lu", - (unsigned long) TREE_INT_CST_LOW (TREE_VALUE (tem))); + fprintf (asmfile, HOST_WIDE_INT_PRINT_UNSIGNED, + TREE_INT_CST_LOW (TREE_VALUE (tem))); else if (TREE_INT_CST_HIGH (TREE_VALUE (tem)) == -1 && TREE_INT_CST_LOW (TREE_VALUE (tem)) < 0) - fprintf (asmfile, "%ld", - (long) TREE_INT_CST_LOW (TREE_VALUE (tem))); + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, + TREE_INT_CST_LOW (TREE_VALUE (tem))); else print_int_cst_octal (TREE_VALUE (tem)); fprintf (asmfile, ","); @@ -1560,7 +1591,7 @@ print_int_cst_octal (c) << (HOST_BITS_PER_WIDE_INT / 3 * 3)) - 1); - fprintf (asmfile, "%o%01o", beg, middle); + fprintf (asmfile, "%o%01o", (int)beg, (int)middle); print_octal (end, HOST_BITS_PER_WIDE_INT / 3); } } @@ -1573,7 +1604,7 @@ print_octal (value, digits) int i; for (i = digits - 1; i >= 0; i--) - fprintf (asmfile, "%01o", ((value >> (3 * i)) & 7)); + fprintf (asmfile, "%01o", (int)((value >> (3 * i)) & 7)); } /* Output the name of type TYPE, with no punctuation. @@ -1853,8 +1884,10 @@ dbxout_symbol (decl, local) #ifdef DBX_OUTPUT_CONSTANT_SYMBOL DBX_OUTPUT_CONSTANT_SYMBOL (asmfile, name, ival); #else - fprintf (asmfile, "%s \"%s:c=i%d\",0x%x,0,0,0\n", - ASM_STABS_OP, name, ival, N_LSYM); + fprintf (asmfile, "%s \"%s:c=i", ASM_STABS_OP, name); + + fprintf (asmfile, HOST_WIDE_INT_PRINT_DEC, ival); + fprintf (asmfile, "\",0x%x,0,0,0\n", N_LSYM); #endif return; } |