From: Richard Biener Date: Fri, 26 Jan 2024 14:11:47 +0000 (+0100) Subject: debug/103047 - argument order of inlined functions X-Git-Tag: basepoints/gcc-15~1653 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b702dc980215074a06535e3aa52a766bef38af4c;p=thirdparty%2Fgcc.git debug/103047 - argument order of inlined functions The inliner puts variables for parameters of the inlined functions in the inline scope in reverse order. The following reverses them again so that we get consistent ordering between the DW_TAG_subprogram DW_TAG_formal_parameter and the DW_TAG_inlined_subroutine DW_TAG_formal_parameter set. I failed to create a testcase with regexps since the inline instances have just abstract origins and so I can't match them up. PR debug/103047 * tree-inline.cc (initialize_inlined_parameters): Reverse the decl chain of inlined parameters. --- diff --git a/gcc/tree-inline.cc b/gcc/tree-inline.cc index 1a2541ad9523..75c10eb7dfc2 100644 --- a/gcc/tree-inline.cc +++ b/gcc/tree-inline.cc @@ -3684,6 +3684,10 @@ initialize_inlined_parameters (copy_body_data *id, gimple *stmt, setup_one_parameter (id, p, static_chain, fn, bb, &vars); } + /* Reverse so the variables appear in the correct order in DWARF + debug info. */ + vars = nreverse (vars); + declare_inline_vars (id->block, vars); }