https://gcc.gnu.org/g:aaa7ac48bd888ee7bbe95006b29bb2f7eaefd0b4
commit r16-4353-gaaa7ac48bd888ee7bbe95006b29bb2f7eaefd0b4 Author: Richard Biener <[email protected]> Date: Fri Oct 10 08:20:22 2025 +0200 tree-optimization/122225 - fix return stmt verification The following fixes return stmt type verification by properly looking at DECL_RESULT to decide whether that's by reference, not trying to figure that from the actual argument. PR tree-optimization/122225 * tree-cfg.cc (verify_gimple_return): Look at DECL_RESULT for DECL_BY_REFERENCE. Diff: --- gcc/tree-cfg.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index 39aeb16f74e0..62513045c6f0 100644 --- a/gcc/tree-cfg.cc +++ b/gcc/tree-cfg.cc @@ -4786,6 +4786,7 @@ verify_gimple_return (greturn *stmt) { tree op = gimple_return_retval (stmt); tree restype = TREE_TYPE (TREE_TYPE (cfun->decl)); + tree resdecl = DECL_RESULT (cfun->decl); /* We cannot test for present return values as we do not fix up missing return values from the original source. */ @@ -4800,12 +4801,7 @@ verify_gimple_return (greturn *stmt) return true; } - if ((TREE_CODE (op) == RESULT_DECL - && DECL_BY_REFERENCE (op)) - || (TREE_CODE (op) == SSA_NAME - && SSA_NAME_VAR (op) - && TREE_CODE (SSA_NAME_VAR (op)) == RESULT_DECL - && DECL_BY_REFERENCE (SSA_NAME_VAR (op)))) + if (resdecl && DECL_BY_REFERENCE (resdecl)) op = TREE_TYPE (op); if (!useless_type_conversion_p (restype, TREE_TYPE (op)))
