diff mbox

[Ada] Don't delete real errors with specific warning control

Message ID 20130910145502.GA24914@adacore.com
State New
Headers show

Commit Message

Arnaud Charlet Sept. 10, 2013, 2:55 p.m. UTC
The pragma Warnings (Off, msg) is intended only to delete warnings,
but it was deleting real errors as well. This patch corrects that
mistake.

The following compiles with the indicated message (previously
this message was suppressed).

     1. procedure ErrMsgDelete is
     2.    X : Integer;
     3. begin
     4.    pragma Warnings (Off, "*universal*");
     5.    X := 1.0;
                |
        >>> expected type "Standard.Integer"
        >>> found type universal real

     6.    pragma Warnings (On, "*universal*");
     7. end;

Tested on x86_64-pc-linux-gnu, committed on trunk

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* errout.adb (Finalize): Don't delete real errors with specific
	warning control.
diff mbox

Patch

Index: errout.adb
===================================================================
--- errout.adb	(revision 202451)
+++ errout.adb	(working copy)
@@ -1302,7 +1302,7 @@ 
             CE : Error_Msg_Object renames Errors.Table (Cur);
 
          begin
-            if not CE.Deleted
+            if (CE.Warn and not CE.Deleted)
               and then
                 (Warning_Specifically_Suppressed (CE.Sptr, CE.Text)
                    or else