diff options
author | Richard Guenther <rguenther@suse.de> | 2012-03-12 13:04:43 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-03-12 13:04:43 +0000 |
commit | 7ee6fd6836b487a0229b69821c71b6878b529870 (patch) | |
tree | 6c55d1468abe6bfcb3d90e9788f768fef21263d8 /gcc/tree-pretty-print.c | |
parent | d8aba32a0959169d00b9d89b28f6d4ccc4763be8 (diff) | |
download | gcc-7ee6fd6836b487a0229b69821c71b6878b529870.zip gcc-7ee6fd6836b487a0229b69821c71b6878b529870.tar.gz gcc-7ee6fd6836b487a0229b69821c71b6878b529870.tar.bz2 |
tree.c (signed_or_unsigned_type_for): Use build_nonstandard_integer_type.
2012-03-12 Richard Guenther <rguenther@suse.de>
* tree.c (signed_or_unsigned_type_for): Use
build_nonstandard_integer_type.
(signed_type_for): Adjust documentation.
(unsigned_type_for): Likewise.
* tree-pretty-print.c (dump_generic_node): Use standard names
for non-standard integer types if available.
From-SVN: r185226
Diffstat (limited to 'gcc/tree-pretty-print.c')
-rw-r--r-- | gcc/tree-pretty-print.c | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c index 4b9b453..227999c 100644 --- a/gcc/tree-pretty-print.c +++ b/gcc/tree-pretty-print.c @@ -723,11 +723,41 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags, } else if (TREE_CODE (node) == INTEGER_TYPE) { - pp_string (buffer, (TYPE_UNSIGNED (node) - ? "<unnamed-unsigned:" - : "<unnamed-signed:")); - pp_decimal_int (buffer, TYPE_PRECISION (node)); - pp_string (buffer, ">"); + if (TYPE_PRECISION (node) == CHAR_TYPE_SIZE) + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "unsigned char" + : "signed char")); + else if (TYPE_PRECISION (node) == SHORT_TYPE_SIZE) + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "unsigned short" + : "signed short")); + else if (TYPE_PRECISION (node) == INT_TYPE_SIZE) + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "unsigned int" + : "signed int")); + else if (TYPE_PRECISION (node) == LONG_TYPE_SIZE) + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "unsigned long" + : "signed long")); + else if (TYPE_PRECISION (node) == LONG_LONG_TYPE_SIZE) + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "unsigned long long" + : "signed long long")); + else if (TYPE_PRECISION (node) >= CHAR_TYPE_SIZE + && exact_log2 (TYPE_PRECISION (node))) + { + pp_string (buffer, (TYPE_UNSIGNED (node) ? "uint" : "int")); + pp_decimal_int (buffer, TYPE_PRECISION (node)); + pp_string (buffer, "_t"); + } + else + { + pp_string (buffer, (TYPE_UNSIGNED (node) + ? "<unnamed-unsigned:" + : "<unnamed-signed:")); + pp_decimal_int (buffer, TYPE_PRECISION (node)); + pp_string (buffer, ">"); + } } else if (TREE_CODE (node) == COMPLEX_TYPE) { |