[Ada] Spurious visibility error in inlined function
This patch corrects the use of tree replication when inlining a function that returns an unconstrained result, and its sole statement is an extended return statement. The use of New_Copy_Tree ensires that global references saved in a generic template are properly carried over when the function is instantiated and inlined. 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * inline.adb (Build_Return_Object_Formal): New routine. (Can_Split_Unconstrained_Function): Code clean up. (Copy_Formals,Copy_Return_Object): New routines. (Split_Unconstrained_Function): Code clean up and refactoring. gcc/testsuite/ * gnat.dg/inline15.adb, gnat.dg/inline15_gen.adb, gnat.dg/inline15_gen.ads, gnat.dg/inline15_types.ads: New testcase. From-SVN: r272980
Showing
This diff is collapsed.
Click to expand it.
gcc/testsuite/gnat.dg/inline15.adb
0 → 100644
gcc/testsuite/gnat.dg/inline15_gen.adb
0 → 100644
gcc/testsuite/gnat.dg/inline15_gen.ads
0 → 100644
gcc/testsuite/gnat.dg/inline15_types.ads
0 → 100644
Please
register
or
sign in
to comment