[PATCH] c++/97197 - support TARGET_MEM_REF in C/C++ error pretty-printing
Jakub Jelinek
jakub@redhat.com
Fri Sep 25 11:20:30 GMT 2020
On Fri, Sep 25, 2020 at 01:11:37PM +0200, Richard Biener wrote:
> This adds rough support to avoid "'target_mem_ref' not supported by"
> in diagnostics. There were recent patches by Martin to sanitize
> dumping of MEM_REF so I'm not trying to interfere with this here.
Is that correct?
I mean, TARGET_MEM_REF encodes more than what MEM_REF encodes,
so printing it like MEM_REF will ignore many things from there.
I'd say we should print it like:
*(type *)(BASE + STEP * INDEX + INDEX2 + OFFSET)
rather than how we print MEM_REFs as
*(type *)(BASE + OFFSET)
(with skipping whatever is NULL in there).
So instead of adding case MEM_REF: in the second and last hunk
copy and edit it (perhaps kill the probably unnecessary
part that checks for *&foo and prints it as foo, because who would
create TARGET_MEM_REF when MEM_REF could have been used in that case).
>
> Bootstrap & regtest pending.
>
> OK?
>
> 2020-09-25 Richard Biener <rguenther@suse.de>
>
> PR c++/97197
> cp/
> * error.c (dump_expr): Handle TARGET_MEM_REF as if it
> were MEM_REF.
>
> c-family/
> * c-pretty-print.c (c_pretty_printer::postfix_expression):
> Handle TARGET_MEM_REF as expression.
> (c_pretty_printer::expression): Handle TARGET_MEM_REF as
> unary_expression.
> (c_pretty_printer::unary_expression): Handle TARGET_MEM_REF
> as if it were MEM_REF.
Jakub
More information about the Gcc-patches
mailing list