From 3307a681fe6883008495d686f3b357dcbfb9537c Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Mon, 12 Apr 2021 16:56:23 +0200 Subject: [PATCH] [Ada] More robust guard against cascaded errors with overlapping actuals gcc/ada/ * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded errors once for the subprogram call, not for every pair of actual parameters. --- gcc/ada/sem_warn.adb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb index 23f2771..9e337f9 100644 --- a/gcc/ada/sem_warn.adb +++ b/gcc/ada/sem_warn.adb @@ -3729,6 +3729,11 @@ package body Sem_Warn is if Nkind (N) not in N_Subprogram_Call | N_Entry_Call_Statement then return; + + -- Guard against previous errors + + elsif Error_Posted (N) then + return; end if; -- If a call C has two or more parameters of mode in out or out that are @@ -3800,10 +3805,9 @@ package body Sem_Warn is and then Is_Composite_Type (Etype (Form1))) then - -- Guard against previous errors + -- Guard against previous errors - if Error_Posted (N) - or else No (Etype (Act1)) + if No (Etype (Act1)) or else No (Etype (Act2)) then null; -- 2.7.4