From 0c32ab8232a40d8bb982c0ac13864d2290dc9336 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Thu, 23 Apr 2020 14:26:48 +0200 Subject: [PATCH] [Ada] Add second warning for convention C_Variadic_n 2020-06-18 Eric Botcazou gcc/ada/ * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n being applied to a subprogram with exactly n parameters. --- gcc/ada/sem_prag.adb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 689c7282947..e9cfb13a830 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -8323,11 +8323,21 @@ package body Sem_Prag is Next_Formal (Formal); end loop; + -- Error out if the number of parameters is lower than n + if Count < Minimum then Error_Msg_Uint_1 := UI_From_Int (Minimum); Error_Pragma_Arg ("argument of pragma% must have at least" & "^ parameters", Arg2); + + -- But warn if it is exactly n because this is useless + + elsif Count = Minimum then + Error_Msg_Uint_1 := UI_From_Int (Minimum + 1); + Error_Msg_N + ("??subprogram should have at least ^ parameters", + Get_Pragma_Arg (Arg2)); end if; end; end if; -- 2.30.2