https://gcc.gnu.org/g:ead57a9ad8cb8431864f9ebe86778be58c76e159
commit r16-1853-gead57a9ad8cb8431864f9ebe86778be58c76e159 Author: Viljar Indus <in...@adacore.com> Date: Wed Apr 30 13:50:27 2025 +0300 ada: Mark errors that are removed as deleted gcc/ada/ChangeLog: * errout.adb (Remove_Warning_Messages): Mark removed messages as deleted. * erroutc.adb (Purge_Messages): Likewise. Diff: --- gcc/ada/errout.adb | 2 ++ gcc/ada/erroutc.adb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb index 2554d5895b3a..5ba44a21d213 100644 --- a/gcc/ada/errout.adb +++ b/gcc/ada/errout.adb @@ -3364,6 +3364,8 @@ package body Errout is E := First_Error_Msg; while E /= No_Error_Msg loop while To_Be_Removed (Errors.Table (E).Next) loop + Errors.Table (Errors.Table (E).Next).Deleted := True; + Errors.Table (E).Next := Errors.Table (Errors.Table (E).Next).Next; diff --git a/gcc/ada/erroutc.adb b/gcc/ada/erroutc.adb index 707851ac6a7a..26095520fa1b 100644 --- a/gcc/ada/erroutc.adb +++ b/gcc/ada/erroutc.adb @@ -1332,6 +1332,8 @@ package body Erroutc is E := First_Error_Msg; while E /= No_Error_Msg loop while To_Be_Purged (Errors.Table (E).Next) loop + Errors.Table (Errors.Table (E).Next).Deleted := True; + Errors.Table (E).Next := Errors.Table (Errors.Table (E).Next).Next; end loop;