diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-09 10:38:54 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-09 10:38:54 +0000 |
commit | 15175b09198ccc90607e9d00c38dbc3321c0a5f2 (patch) | |
tree | 31ba08971e0c8db8e92b164c64a7ddadbd742ba1 /gcc/ada/binderr.adb | |
parent | 7efd77ab65d7f00004ea2f4f4ebf554e10037289 (diff) | |
download | gcc-15175b09198ccc90607e9d00c38dbc3321c0a5f2.tar.gz |
2009-04-09 Robert Dewar <dewar@adacore.com>
* binderr.adb, errout.adb, errutil.adb: New circuitry for handling
Maximum_Messages.
* erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
warning status as well.
* opt.ads (Maximum_Messages): New name for Maximum_Errors.
* switch-b.adb, switch-c.adb: Change name Maximum_Errors to
Maximum_Messages.
* bindusg.adb, usage.adb: Update line for -gnatm switch
* gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
-mnn binder switch.
* sem_ch10.adb: Minor reformatting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145822 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/binderr.adb')
-rw-r--r-- | gcc/ada/binderr.adb | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gcc/ada/binderr.adb b/gcc/ada/binderr.adb index 4f90ee68f03..830a2f17715 100644 --- a/gcc/ada/binderr.adb +++ b/gcc/ada/binderr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2008, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -64,10 +64,24 @@ package body Binderr is Error_Msg_Output (Msg, Info => False); end if; - if Warnings_Detected + Errors_Detected > Maximum_Errors then - raise Unrecoverable_Error; + -- If too many warnings print message and then turn off warnings + + if Warnings_Detected = Maximum_Messages then + Set_Standard_Error; + Write_Line ("maximum number of warnings reached"); + Write_Line ("further warnings will be suppressed"); + Set_Standard_Output; + Warning_Mode := Suppress; end if; + -- If too many errors print message and give fatal error + + if Errors_Detected = Maximum_Messages then + Set_Standard_Error; + Write_Line ("fatal error: maximum number of errors exceeded"); + Set_Standard_Output; + raise Unrecoverable_Error; + end if; end Error_Msg; -------------------- @@ -99,7 +113,7 @@ package body Binderr is Warning : Boolean := False; begin - if Warnings_Detected + Errors_Detected > Maximum_Errors then + if Warnings_Detected + Errors_Detected > Maximum_Messages then Write_Str ("error: maximum errors exceeded"); Write_Eol; return; |