From: Ghjuvan Lacambre Date: Wed, 4 Mar 2020 13:40:01 +0000 (+0100) Subject: [Ada] Fix assertion failure on functions with contracts X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=057548bc5f3a067f881cd6985419956b0f2696fc;p=gcc.git [Ada] Fix assertion failure on functions with contracts 2020-06-10 Ghjuvan Lacambre gcc/ada/ * par-ch6.adb (P_Subprogram): Make sure the specification belongs to a procedure. --- diff --git a/gcc/ada/par-ch6.adb b/gcc/ada/par-ch6.adb index a43d6735668..abf7d1052e3 100644 --- a/gcc/ada/par-ch6.adb +++ b/gcc/ada/par-ch6.adb @@ -960,9 +960,12 @@ package body Ch6 is if Token = Tok_Is then - -- If the subprogram declaration already has a specification, we - -- can't define another. - if Null_Present (Specification (Decl_Node)) then + -- If the subprogram is a procedure and already has a + -- specification, we can't define another. + + if Nkind (Specification (Decl_Node)) = N_Procedure_Specification + and then Null_Present (Specification (Decl_Node)) + then Error_Msg_AP ("null procedure cannot have a body"); end if;