https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90387
JunMa <JunMa at linux dot alibaba.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |JunMa at linux dot alibaba.com
--- Comment #2 from JunMa <JunMa at linux dot alibaba.com> ---
VRP tries to fold builtin_constant_p when its argument is a function parameter.
builtin_constant_p should be removed as dead stmt in this case no matter "#if
1 " or "#if 0", since p_len is function parameter.
When "#if 1" turns true, vrp pass inserts ASSERT_EXPR to infer value range of
p_len, this changes argument of builtin_constant_p from function parameter to
result of ASSERT_EXPR which breaks the rule.