summaryrefslogtreecommitdiff
path: root/gcc/print-tree.c
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>2002-09-10 00:02:28 -0700
committerPer Bothner <bothner@gcc.gnu.org>2002-09-10 00:02:28 -0700
commit9038942205905e09e2a38c0c6c8d342ec7fd25d1 (patch)
tree25c2c2a9f804e8e188bb2dafa14aa6b5ef4f7798 /gcc/print-tree.c
parent278bba8be61c5f235f9b4b202ca4c437196f0cc8 (diff)
downloadgcc-9038942205905e09e2a38c0c6c8d342ec7fd25d1.tar.gz
print-tree.c (print_node): In a STRING_CST...
* print-tree.c (print_node): In a STRING_CST, escape non-ascii characters, and only print TREE_STRING_LENGTH chars. From-SVN: r56994
Diffstat (limited to 'gcc/print-tree.c')
-rw-r--r--gcc/print-tree.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 949b7f51be0..bb03d81f2a8 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -711,7 +711,20 @@ print_node (file, prefix, node, indent)
break;
case STRING_CST:
- fprintf (file, " \"%s\"", TREE_STRING_POINTER (node));
+ {
+ const char *p = TREE_STRING_POINTER (node);
+ int i = TREE_STRING_LENGTH (node);
+ fputs (" \"", file);
+ while (--i >= 0)
+ {
+ char ch = *p++;
+ if (ch >= ' ' && ch < 127)
+ putc (ch, file);
+ else
+ fprintf(file, "\\%03o", ch & 0xFF);
+ }
+ fputc ('\"', file);
+ }
/* Print the chain at second level. */
if (indent == 4)
print_node (file, "chain", TREE_CHAIN (node), indent + 4);