From: Piotr Trojanek Date: Sat, 4 Mar 2023 17:07:55 +0000 (+0100) Subject: ada: Prevent search of calls in preconditions from going too far X-Git-Tag: basepoints/gcc-15~8926 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=845d4419da1abe839431af7e6bf5aaecec932486;p=thirdparty%2Fgcc.git ada: Prevent search of calls in preconditions from going too far When determining whether a call to protected function appears within a pragma expression we can safely stop at the subprogram body. Cleanup related to recently added support for a new SPARK aspects, whose implementation was based on Contract_Cases. gcc/ada/ * sem_util.adb (Check_Internal_Protected_Use): Add standard protection against search going too far. --- diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 2e2fb911c388..bfe1b9fc74d9 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -3501,6 +3501,11 @@ package body Sem_Util is ("internal call cannot appear in default for formal of " & "protected operation", N); return; + + -- Prevent the search from going too far + + elsif Is_Body_Or_Package_Declaration (P) then + exit; end if; P := Parent (P);