From 7e7c40617a6f210b5a4c7cf63970a92bd0b9ec6a Mon Sep 17 00:00:00 2001
From: Yannick Moy <moy@adacore.com>
Date: Fri, 30 Jun 2023 14:51:53 +0200
Subject: [PATCH] ada: Allow warnings with explain code

Change the way explain codes are handled to generate the command for the
user to get the explanations, as this was not working for warnings.

gcc/ada/

	* errout.adb (Error_Msg_Internal): Remove call to
	Prescan_Message on the special continuation for the explain code
	command, as this does not play well with the setting of global
	variables for the message (like its status as a warning or not).
	Instead, set directly the global variables regarding content of
	the message in terms of special characters.
---
 gcc/ada/errout.adb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb
index adc260843ec2..ac6491cf2991 100644
--- a/gcc/ada/errout.adb
+++ b/gcc/ada/errout.adb
@@ -1451,10 +1451,12 @@ package body Errout is
       if Has_Error_Code then
          declare
             Msg : constant String :=
-              "launch ""gnatprove --explain=[]"" for more information";
+              "\launch ""gnatprove --explain=[]"" for more information";
          begin
-            Prescan_Message (Msg);
+            Has_Double_Exclam := False;
             Has_Error_Code := False;
+            Has_Insertion_Line := False;
+
             Error_Msg_Internal
               (Msg      => Msg,
                Span     => Span,
-- 
GitLab