diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb index afa30674fa389fdd85170f543d1830c4cd62117a..b30e8b51d159d89b900a90030d450376083834d7 100644 --- a/gcc/ada/errout.adb +++ b/gcc/ada/errout.adb @@ -3351,6 +3351,17 @@ package body Errout is Warning_Info_Messages := Warning_Info_Messages - 1; end if; + -- When warning about a runtime exception has been escalated + -- into error, the starting message has increased the total + -- errors counter, so here we decrease this counter. + + if Errors.Table (E).Warn_Runtime_Raise + and then not Errors.Table (E).Msg_Cont + and then Warning_Mode = Treat_Run_Time_Warnings_As_Errors + then + Total_Errors_Detected := Total_Errors_Detected - 1; + end if; + return True; -- No removal required diff --git a/gcc/ada/erroutc.adb b/gcc/ada/erroutc.adb index 7766c9727308c471c217764af0a7f35093d14408..d40c668be8abe9aa195af3f0c8b694667d9f6bf0 100644 --- a/gcc/ada/erroutc.adb +++ b/gcc/ada/erroutc.adb @@ -312,32 +312,33 @@ package body Erroutc is begin w ("Dumping error message, Id = ", Int (Id)); - w (" Text = ", E.Text.all); - w (" Next = ", Int (E.Next)); - w (" Prev = ", Int (E.Prev)); - w (" Sfile = ", Int (E.Sfile)); + w (" Text = ", E.Text.all); + w (" Next = ", Int (E.Next)); + w (" Prev = ", Int (E.Prev)); + w (" Sfile = ", Int (E.Sfile)); Write_Str - (" Sptr = "); + (" Sptr = "); Write_Location (E.Sptr.Ptr); -- ??? Do not write the full span for now Write_Eol; Write_Str - (" Optr = "); + (" Optr = "); Write_Location (E.Optr.Ptr); Write_Eol; - w (" Line = ", Int (E.Line)); - w (" Col = ", Int (E.Col)); - w (" Warn = ", E.Warn); - w (" Warn_Err = ", E.Warn_Err); - w (" Warn_Chr = '" & E.Warn_Chr & '''); - w (" Style = ", E.Style); - w (" Serious = ", E.Serious); - w (" Uncond = ", E.Uncond); - w (" Msg_Cont = ", E.Msg_Cont); - w (" Deleted = ", E.Deleted); - w (" Node = ", Int (E.Node)); + w (" Line = ", Int (E.Line)); + w (" Col = ", Int (E.Col)); + w (" Warn = ", E.Warn); + w (" Warn_Err = ", E.Warn_Err); + w (" Warn_Runtime_Raise = ", E.Warn_Runtime_Raise); + w (" Warn_Chr = '" & E.Warn_Chr & '''); + w (" Style = ", E.Style); + w (" Serious = ", E.Serious); + w (" Uncond = ", E.Uncond); + w (" Msg_Cont = ", E.Msg_Cont); + w (" Deleted = ", E.Deleted); + w (" Node = ", Int (E.Node)); Write_Eol; end dmsg;