As PR92107 shows, genattrtab doesn't parenthesize expressions correctly (or at all, even). This fixes it.
I'll commit it as trivial and obvious if my bootstrap with it shows no problems (or someone tells me not to, of course). Segher 2019-10-15 Segher Boessenkool <seg...@kernel.crashing.org> PR rtl-optimization/92107 * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the expression written. --- gcc/genattrtab.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index cdf0b5c..2fd8593 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -4425,11 +4425,11 @@ write_attr_value (FILE *outf, class attr_desc *attr, rtx value) goto do_operator; do_operator: + fprintf (outf, "("); write_attr_value (outf, attr, XEXP (value, 0)); - fputc (' ', outf); - fputc (op, outf); - fputc (' ', outf); + fprintf (outf, " %c ", op); write_attr_value (outf, attr, XEXP (value, 1)); + fprintf (outf, ")"); break; case IF_THEN_ELSE: -- 1.8.3.1