diff options
author | Per Bothner <per@bothner.com> | 2002-09-10 00:02:28 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 2002-09-10 00:02:28 -0700 |
commit | 9038942205905e09e2a38c0c6c8d342ec7fd25d1 (patch) | |
tree | 25c2c2a9f804e8e188bb2dafa14aa6b5ef4f7798 /gcc/print-tree.c | |
parent | 278bba8be61c5f235f9b4b202ca4c437196f0cc8 (diff) | |
download | gcc-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.c | 15 |
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); |