From: Piotr Trojanek Date: Tue, 5 Dec 2023 15:05:10 +0000 (+0100) Subject: ada: Remove dead detection of recursive inlined subprograms X-Git-Tag: basepoints/gcc-15~3090 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00a97303c2ab27263b18a008a389c3567650123b;p=thirdparty%2Fgcc.git ada: Remove dead detection of recursive inlined subprograms Inlining of subprogram calls happens in routine Expand_Inlined_Call which calls Establish_Actual_Mapping_For_Inlined_Call. Both routines had detection of recursive calls. The detection in the second routine was dead code. gcc/ada/ * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Remove detection of recursive calls. --- diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb index f6bed4d26e38..dffd6293394b 100644 --- a/gcc/ada/inline.adb +++ b/gcc/ada/inline.adb @@ -2988,25 +2988,6 @@ package body Inline is F := First_Formal (Subp); A := First_Actual (N); while Present (F) loop - if Present (Renamed_Object (F)) then - - -- If expander is active, it is an error to try to inline a - -- recursive subprogram. In GNATprove mode, just indicate that the - -- inlining will not happen, and mark the subprogram as not always - -- inlined. - - if GNATprove_Mode then - Cannot_Inline - ("cannot inline call to recursive subprogram?", N, Subp); - Set_Is_Inlined_Always (Subp, False); - else - Error_Msg_N - ("cannot inline call to recursive subprogram", N); - end if; - - return; - end if; - -- Reset Last_Assignment for any parameters of mode out or in out, to -- prevent spurious warnings about overwriting for assignments to the -- formal in the inlined code.