[gcc r14-8486] debug/103047 - argument order of inlined functions
Richard Biener
rguenth@gcc.gnu.org
Mon Jan 29 07:47:20 GMT 2024
https://gcc.gnu.org/g:b702dc980215074a06535e3aa52a766bef38af4c
commit r14-8486-gb702dc980215074a06535e3aa52a766bef38af4c
Author: Richard Biener <rguenther@suse.de>
Date: Fri Jan 26 15:11:47 2024 +0100
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:
---
gcc/tree-inline.cc | 4 ++++
1 file changed, 4 insertions(+)
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);
}
More information about the Gcc-cvs
mailing list