Tomasz Miąsko 1be1c2ebcf Fix insertion of statements to be executed along return edge in inlining
Inlining creates additional statements to be executed along the return
edge: an assignment to the destination, storage end for temporaries.

Previously those statements where inserted directly into a call target,
but this is incorrect when the target has other predecessors.

Avoid the issue by creating a new dedicated block for those statements.
When the block happens to be redundant it will be removed by CFG
simplification that follows inlining.

Fixes #117355
2023-11-20 09:27:30 +01:00
..
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-20 21:14:01 +00:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:22:01 -07:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-19 15:51:54 +00:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00
2023-10-19 15:51:54 +00:00
2023-10-25 15:25:38 -07:00
2023-10-25 15:25:38 -07:00