From: Piotr Trojanek Date: Thu, 23 Mar 2023 17:46:08 +0000 (+0100) Subject: ada: Fix detection of non-static expressions in records with pragmas X-Git-Tag: basepoints/gcc-15~8860 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70f609b01fde630141e683f9563545b8dff87ad6;p=thirdparty%2Fgcc.git ada: Fix detection of non-static expressions in records with pragmas When iterating over record components we must ignore pragmas. Minor bug, as pragmas within record components do not appear often. gcc/ada/ * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside loop, not in the loop condition itself. --- diff --git a/gcc/ada/sem_cat.adb b/gcc/ada/sem_cat.adb index 09560e6179ac..13dff3dbdd93 100644 --- a/gcc/ada/sem_cat.adb +++ b/gcc/ada/sem_cat.adb @@ -346,14 +346,13 @@ package body Sem_Cat is if Null_Present (Recdef) then return; - else - Component_Decl := First (Component_Items (Component_List (Recdef))); end if; - while Present (Component_Decl) - and then Nkind (Component_Decl) = N_Component_Declaration - loop - if Present (Expression (Component_Decl)) + Component_Decl := First (Component_Items (Component_List (Recdef))); + + while Present (Component_Decl) loop + if Nkind (Component_Decl) = N_Component_Declaration + and then Present (Expression (Component_Decl)) and then Nkind (Expression (Component_Decl)) /= N_Null and then not Is_OK_Static_Expression (Expression (Component_Decl))