On Tue, Oct 22, 2024 at 7:21 PM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > When internal functions support was added to match (r6-4979-gc9e926ce2bdc8b), > the check for ECF_CONST was the builtin function side. Though before > r15-4503-g8d6d6d537fdc, > there was no use of maybe_push_res_to_seq with non-const internal functions > so the check > would not make a difference. > > This adds the check for internal functions just as there is a check for > builtins. > > Note I didn't add a testcase because there was no non-const internal function > which could be used on x86_64 in a decent manor. > > Bootstrapped and tested on x86_64-linux-gnu.
OK. Thanks, Richard. > gcc/ChangeLog: > > PR tree-optimization/117260 > * gimple-match-exports.cc (maybe_push_res_to_seq): Reject non-const > internal functions. > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > --- > gcc/gimple-match-exports.cc | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/gcc/gimple-match-exports.cc b/gcc/gimple-match-exports.cc > index d3e626a1a24..77d225825cf 100644 > --- a/gcc/gimple-match-exports.cc > +++ b/gcc/gimple-match-exports.cc > @@ -522,6 +522,11 @@ maybe_push_res_to_seq (gimple_match_op *res_op, > gimple_seq *seq, tree res) > { > /* Generate the given function if we can. */ > internal_fn ifn = as_internal_fn (fn); > + > + /* We can't and should not emit calls to non-const functions. */ > + if (!(internal_fn_flags (ifn) & ECF_CONST)) > + return NULL_TREE; > + > new_stmt = build_call_internal (ifn, res_op); > if (!new_stmt) > return NULL_TREE; > -- > 2.43.0 >