[PATCH] avoid assuming gimple_call_alloc_size argument is a call (PR 99489)
Jakub Jelinek
jakub@redhat.com
Fri Mar 12 13:52:20 GMT 2021
On Tue, Mar 09, 2021 at 03:07:38PM -0700, Martin Sebor via Gcc-patches wrote:
> The gimple_call_alloc_size() function is documented to "return null
> when STMT is not a call to a valid allocation function" but the code
> assumes STMT is a call statement, causing the function to ICE when
> it isn't.
>
> The attached patch changes the function to fulfill its contract and
> return null also when STMT isn't a call. The fix seems obvious to
> me but I'll wait some time before committing it in case it's not
> to someone else.
I think the name of the function suggests that it should be called on calls,
not random stmts. Currently the function has 3 callers, two of them
already verify is_gimple_call before calling it and only one doesn't,
and the stmt will never be NULL.
So I'd say it would be better to remove the if (!stmt) return NULL_TREE;
from the start of the function and add is_gimple_call (stmt) &&
in tree-ssa-strlen.c.
Jakub
More information about the Gcc-patches
mailing list