[gcc r14-1967] ada: Fix -fdiagnostics-format=json not printing all messages
Marc Poulhi?s
dkm@gcc.gnu.org
Tue Jun 20 07:46:21 GMT 2023
https://gcc.gnu.org/g:3404e481d09d49311ef74a8de15d8a72ed240cce
commit r14-1967-g3404e481d09d49311ef74a8de15d8a72ed240cce
Author: Ghjuvan Lacambre <lacambre@adacore.com>
Date: Fri May 26 13:26:21 2023 +0200
ada: Fix -fdiagnostics-format=json not printing all messages
The previous version of this code stopped printing messages as soon as
it encountered a deleted or continuation message. This was wrong,
continuation and deleted messages can be followed by live messages that
do need to be printed.
gcc/ada/
* errout.adb (Output_Messages): Fix loop termination condition.
Diff:
---
gcc/ada/errout.adb | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb
index 1c6222b3a29..6e378a60731 100644
--- a/gcc/ada/errout.adb
+++ b/gcc/ada/errout.adb
@@ -3062,16 +3062,19 @@ package body Errout is
E := Errors.Table (E).Next;
- -- Skip deleted messages.
- -- Also skip continuation messages, as they have already been
- -- printed along the message they're attached to.
+ while E /= No_Error_Msg loop
+
+ -- Skip deleted messages.
+ -- Also skip continuation messages, as they have already been
+ -- printed along the message they're attached to.
+
+ if not Errors.Table (E).Deleted
+ and then not Errors.Table (E).Msg_Cont
+ then
+ Write_Char (',');
+ Output_JSON_Message (E);
+ end if;
- while E /= No_Error_Msg
- and then not Errors.Table (E).Deleted
- and then not Errors.Table (E).Msg_Cont
- loop
- Write_Char (',');
- Output_JSON_Message (E);
E := Errors.Table (E).Next;
end loop;
end if;
More information about the Gcc-cvs
mailing list