diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-03-05 09:12:44 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2020-03-05 09:12:44 +0100 |
commit | febfe87d80c5bc8afd9038136ae7c09910a0d883 (patch) | |
tree | 566935b3278662e79e7f1734be2771b92e29f48b /gcc/tree-pretty-print.h | |
parent | c9f90a25d4945e904839326957c7c4d34abd88dd (diff) | |
download | gcc-febfe87d80c5bc8afd9038136ae7c09910a0d883.zip gcc-febfe87d80c5bc8afd9038136ae7c09910a0d883.tar.gz gcc-febfe87d80c5bc8afd9038136ae7c09910a0d883.tar.bz2 |
print-rtl: Fix printing of CONST_STRING in DEBUG_INSNs [PR93399]
The following testcase fails to assemble, as CONST_STRING in the DEBUG_INSNs
is printed as is, so if it contains \n and/or \r, we are in trouble:
.loc 1 14 3
# DEBUG haystack => [si]
# DEBUG needle => "
"
In the gimple dumps we print those (STRING_CSTs) as
# DEBUG haystack => D#1
# DEBUG needle => "\n"
so this patch uses what we use in tree printing for the CONST_STRINGs too.
2020-03-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/93399
* tree-pretty-print.h (pretty_print_string): Declare.
* tree-pretty-print.c (pretty_print_string): Remove forward
declaration, no longer static. Change nbytes parameter type
from unsigned to size_t.
* print-rtl.c (print_value) <case CONST_STRING>: Use
pretty_print_string and for shrink way too long strings.
* gcc.dg/pr93399.c: New test.
Diffstat (limited to 'gcc/tree-pretty-print.h')
-rw-r--r-- | gcc/tree-pretty-print.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-pretty-print.h b/gcc/tree-pretty-print.h index 49b04d4..33a2d40 100644 --- a/gcc/tree-pretty-print.h +++ b/gcc/tree-pretty-print.h @@ -47,6 +47,7 @@ extern void print_declaration (pretty_printer *, tree, int, dump_flags_t); extern int op_code_prio (enum tree_code); extern int op_prio (const_tree); extern const char *op_symbol_code (enum tree_code); +extern void pretty_print_string (pretty_printer *, const char *, size_t); extern void print_call_name (pretty_printer *, tree, dump_flags_t); extern void percent_K_format (text_info *, location_t, tree); extern void pp_tree_identifier (pretty_printer *, tree); |