From: Piotr Trojanek Date: Thu, 24 Jul 2025 08:20:40 +0000 (+0200) Subject: ada: Improve error for pre/post on generic formal subprogram in Ada 2012 mode X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4fb2a53f2e161a0e5df410fa0c691e4d708906cf;p=thirdparty%2Fgcc.git ada: Improve error for pre/post on generic formal subprogram in Ada 2012 mode Instead of saying that pragma placement is illegal, we now say that it would be legal in Ada 2022. gcc/ada/ChangeLog: * sem_prag.adb (Analyze_Pre_Post_Condition): Handle contracts on generic formal subprograms like on declarations of access-to-subprogram types. --- diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 1e115aae019..28c5f1776db 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -5848,9 +5848,12 @@ package body Sem_Prag is -- For Ada 2022, pre/postconditions can appear on formal subprograms elsif Nkind (Subp_Decl) = N_Formal_Concrete_Subprogram_Declaration - and then Ada_Version >= Ada_2022 then - null; + if Ada_Version < Ada_2022 then + Error_Msg_Ada_2022_Feature + ("pre/postcondition on formal subprogram", Loc); + raise Pragma_Exit; + end if; -- An access-to-subprogram type can have pre/postconditions, which -- are both analyzed when attached to the type and copied to the