middle-end/100727 - fix call expansion with WITH_SIZE_EXPR arg
authorRichard Biener <rguenther@suse.de>
Tue, 25 May 2021 08:21:41 +0000 (10:21 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 25 May 2021 09:11:02 +0000 (11:11 +0200)
commit316bdb2e8970a461f2ae1a7183262d18a72adab3
tree54cf30bf2a06382386086dc5e426039c798cbc0c
parent3a81735c1c8cea4323dcb912b7a8879b54aa3bc0
middle-end/100727 - fix call expansion with WITH_SIZE_EXPR arg

call expansion used the result of get_base_address to switch between
ABIs - with get_base_address now never returning NULL we have to
re-instantiate the check in a more explicit way.  This also adjusts
mark_addressable to skip WITH_SIZE_EXPRs, consistent with how
build_fold_addr_expr handles it.

2021-05-25  Richard Biener  <rguenther@suse.de>

PR middle-end/100727
* calls.c (initialize_argument_information): Explicitely test
for WITH_SIZE_EXPR.
* gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.
gcc/calls.c
gcc/gimple-expr.c