From: Kito Cheng Date: Thu, 14 Aug 2025 09:30:17 +0000 (+0800) Subject: Use gimple_call_fntype rather than gimple_call_fndecl in pass_return_slot::execute X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b60bb6dc70e7f94f9c9a8d7584981ecf0720641;p=thirdparty%2Fgcc.git Use gimple_call_fntype rather than gimple_call_fndecl in pass_return_slot::execute Call with funciton pointer might not able to get the fndecl, but fntype so use gimple_call_fntype instead of gimple_call_fndecl. aggregate_value_p can handle fndecl and fntype right (and even CALL_EXPR), so I think this change is safe. gcc/ChangeLog: * tree-nrv.cc (pass_return_slot::execute): Use gimple_call_fntype instead of gimple_call_fndecl. --- diff --git a/gcc/tree-nrv.cc b/gcc/tree-nrv.cc index 3be97afb319..9b514b7e70b 100644 --- a/gcc/tree-nrv.cc +++ b/gcc/tree-nrv.cc @@ -385,7 +385,7 @@ pass_return_slot::execute (function *fun) undesirable warnings with some backends. */ && !gimple_call_internal_p (stmt) && aggregate_value_p (TREE_TYPE (gimple_call_lhs (stmt)), - gimple_call_fndecl (stmt))) + gimple_call_fntype (stmt))) { /* Check if the location being assigned to is clobbered by the call. */