Warning about check failing at run time is likely spurious for mutually
recursive subprograms with multiple variant clauses. These will be
non-trivial to detect, so we simply suppress the warning altogether for
all subprogram variants.
gcc/ada/
* exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
subprogram variants.
then
null;
+ -- For Subprogram_Variant suppress the warning altogether, because
+ -- for mutually recursive subprograms with multiple variant clauses
+ -- some of the clauses might have expressions that are only meant for
+ -- verification and would always fail when executed.
+
+ elsif Nam = Name_Subprogram_Variant then
+ null;
elsif Nam = Name_Assert then
Error_Msg_N ("?.a?assertion will fail at run time", N);
else