2013-09-10 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 2013 15:30:44 +0000 (15:30 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 2013 15:30:44 +0000 (15:30 +0000)
* sem_ch3.adb: sem_ch3.adb:
(Replace_Anonymoous_Access_To_Protected_Subprogram): If the
return type is itself an access to function, recurse to emit
another anonymous type.
gcc-interface/decl.c (gnat_to_gnu_entity): In ASIS mode
(type_annotate_only) do not check whether access types have a set size.

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

* err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode.
* errout.adb (Warning_Doc_Switch): Ignored in VMS mode.
* errout.ads (Warning_Doc_Switch): Ignored in VMS mode.
* inline.ads (Warnings): New component in Pending_Body_Info.
* sem_ch12.adb (Pending_Body_Info): Save and restore warnings
at instantiation point.
* warnsw.adb (Save_Warnings): New function (Restore_Warnings):
New procedure Remove special handling of Warning_Doc_Switch,
cleaner to handle the VMS case in errout, than to introduce
undocumented oddities here.
* warnsw.ads (Warning_Record) : New type.
(Save_Warnings): New function.
(Restore_Warnings): New procedure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202467 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/err_vars.ads
gcc/ada/errout.adb
gcc/ada/errout.ads
gcc/ada/gcc-interface/Make-lang.in
gcc/ada/inline.ads
gcc/ada/sem_ch12.adb
gcc/ada/sem_ch3.adb
gcc/ada/warnsw.adb
gcc/ada/warnsw.ads

index 1ebe97c..4c8650a 100644 (file)
@@ -1,3 +1,26 @@
+2013-09-10  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch3.adb (Replace_Anonymoous_Access_To_Protected_Subprogram): If
+       the return type is itself an access to function, recurse to emit
+       another anonymous type.
+       * gcc-interface/Make-lang.in: Update dependencies.
+
+2013-09-10  Robert Dewar  <dewar@adacore.com>
+
+       * err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode.
+       * errout.adb (Warning_Doc_Switch): Ignored in VMS mode.
+       * errout.ads (Warning_Doc_Switch): Ignored in VMS mode.
+       * inline.ads (Warnings): New component in Pending_Body_Info.
+       * sem_ch12.adb (Pending_Body_Info): Save and restore warnings
+       at instantiation point.
+       * warnsw.adb (Save_Warnings): New function (Restore_Warnings):
+       New procedure Remove special handling of Warning_Doc_Switch,
+       cleaner to handle the VMS case in errout, than to introduce
+       undocumented oddities here.
+       * warnsw.ads (Warning_Record) : New type.
+       (Save_Warnings): New function.
+       (Restore_Warnings): New procedure.
+
 2013-09-10  Robert Dewar  <dewar@adacore.com>
 
        * sinput.adb (Check_For_BOM): Avoid reading past end of file.
index bc43cb1..6009379 100644 (file)
@@ -93,6 +93,7 @@ package Err_Vars is
    --  are active (see errout.ads for details). If this switch is False, then
    --  these sequences are ignored (i.e. simply equivalent to a single ?). The
    --  -gnatw.d switch sets this flag True, -gnatw.D sets this flag False.
+   --  Note: always ignored on VMS, where we do not provide this capability.
 
    ----------------------------------------
    -- Error Message Insertion Parameters --
index a1e2714..12cf828 100644 (file)
@@ -49,6 +49,7 @@ with Sinfo;    use Sinfo;
 with Snames;   use Snames;
 with Stand;    use Stand;
 with Stylesw;  use Stylesw;
+with Targparm; use Targparm;
 with Uname;    use Uname;
 
 package body Errout is
@@ -2704,7 +2705,7 @@ package body Errout is
          Warning_Msg_Char := ' ';
 
          if P <= Text'Last and then Text (P) = '?' then
-            if Warning_Doc_Switch then
+            if Warning_Doc_Switch and not OpenVMS_On_Target then
                Warning_Msg_Char := '?';
             end if;
 
@@ -2716,7 +2717,7 @@ package body Errout is
                      Text (P) in 'A' .. 'Z')
            and then Text (P + 1) = '?'
          then
-            if Warning_Doc_Switch then
+            if Warning_Doc_Switch and not OpenVMS_On_Target then
                Warning_Msg_Char := Text (P);
             end if;
 
@@ -2802,7 +2803,10 @@ package body Errout is
                --  If tagging of messages is enabled, and this is a warning,
                --  then it is treated as being [enabled by default].
 
-               if Error_Msg_Warn and Warning_Doc_Switch then
+               if Error_Msg_Warn
+                 and Warning_Doc_Switch
+                 and not OpenVMS_On_Target
+               then
                   Warning_Msg_Char := '?';
                end if;
 
index e267302..0c36322 100644 (file)
@@ -64,6 +64,7 @@ package Errout is
    --  are active (see errout.ads for details). If this switch is False, then
    --  these sequences are ignored (i.e. simply equivalent to a single ?). The
    --  -gnatw.d switch sets this flag True, -gnatw.D sets this flag False.
+   --  Note: always ignored in VMS mode where we do not provide this feature.
 
    -----------------------------------
    -- Suppression of Error Messages --
@@ -695,7 +696,9 @@ package Errout is
 
    procedure Error_Msg_F (Msg : String; N : Node_Id);
    --  Similar to Error_Msg_N except that the message is placed on the first
-   --  node of the construct N (First_Node (N)).
+   --  node of the construct N (First_Node (N)). Note that this procedure uses
+   --  Original_Node to look at the original source tree, since that's what we
+   --  want for placing an error message flag in the right place.
 
    procedure Error_Msg_NE
      (Msg : String;
@@ -739,8 +742,11 @@ package Errout is
    --  usual manner, and need not be the same length as the original text.
 
    function First_Node (C : Node_Id) return Node_Id;
-   --  Given a construct C, finds the first node in the construct, i.e. the
-   --  one with the lowest Sloc value. This is useful in placing error msgs.
+   --  Given a construct C, finds the first node in the construct, i.e. the one
+   --  with the lowest Sloc value. This is useful in placing error msgs. Note
+   --  that this procedure uses Original_Node to look at the original source
+   --  tree, since that's what we want for placing an error message flag in
+   --  the right place.
 
    function First_Sloc (N : Node_Id) return Source_Ptr;
    --  Given the node for an expression, return a source pointer value that
index 93250da..fbbb417 100644 (file)
@@ -1280,17 +1280,17 @@ ada/checks.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \
    ada/sem_warn.ads ada/set_targ.ads ada/sinfo.ads ada/sinfo.adb \
    ada/sinput.ads ada/snames.ads ada/sprint.ads ada/stand.ads \
-   ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \
-   ada/stylesw.ads ada/system.ads ada/s-assert.ads ada/s-exctab.ads \
-   ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \
-   ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \
-   ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
-   ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
-   ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
-   ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
-   ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \
-   ada/widechar.ads 
+   ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \
+   ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-assert.ads \
+   ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
+   ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
+   ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+   ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+   ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
+   ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
+   ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
+   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
+   ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/comperr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1471,7 +1471,7 @@ ada/exp_aggr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
    ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
    ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
-   ada/urealp.ads ada/validsw.ads ada/widechar.ads 
+   ada/urealp.ads ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_atag.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1530,7 +1530,7 @@ ada/exp_attr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_cg.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1575,7 +1575,7 @@ ada/exp_ch11.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
    ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
-   ada/urealp.ads ada/widechar.ads 
+   ada/urealp.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1663,7 +1663,8 @@ ada/exp_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/exp_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1699,7 +1700,7 @@ ada/exp_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
-   ada/validsw.ads ada/widechar.ads 
+   ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1731,7 +1732,7 @@ ada/exp_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
    ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/uintp.ads ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads 
 
 ada/exp_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1761,17 +1762,17 @@ ada/exp_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/sem_res.ads ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads \
    ada/sem_util.adb ada/sem_warn.ads ada/set_targ.ads ada/sinfo.ads \
    ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/sprint.ads \
-   ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \
-   ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-assert.ads \
-   ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
-   ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
-   ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
-   ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
-   ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
-   ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
-   ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
+   ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \
+   ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \
+   ada/s-assert.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \
+   ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
+   ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \
+   ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \
+   ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
+   ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
+   ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_ch7.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1805,7 +1806,8 @@ ada/exp_ch7.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/exp_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1828,7 +1830,7 @@ ada/exp_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
    ada/targparm.ads ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads \
-   ada/urealp.ads ada/validsw.ads 
+   ada/urealp.ads ada/validsw.ads ada/warnsw.ads 
 
 ada/exp_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1862,7 +1864,7 @@ ada/exp_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_code.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1942,7 +1944,7 @@ ada/exp_disp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -1967,7 +1969,7 @@ ada/exp_dist.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_fixd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2044,7 +2046,7 @@ ada/exp_intr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
    ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_pakd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2071,7 +2073,7 @@ ada/exp_pakd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
    ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
    ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
-   ada/validsw.ads 
+   ada/validsw.ads ada/warnsw.ads 
 
 ada/exp_prag.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2131,17 +2133,16 @@ ada/exp_spark.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \
    ada/exp_attr.ads ada/exp_ch4.ads ada/exp_ch6.ads ada/exp_dbug.ads \
    ada/exp_spark.ads ada/exp_spark.adb ada/exp_tss.ads ada/exp_util.ads \
-   ada/hostparm.ads ada/namet.ads ada/nlists.ads ada/nlists.adb \
-   ada/opt.ads ada/output.ads ada/rtsfind.ads ada/sem_aux.ads \
-   ada/sem_aux.adb ada/sem_res.ads ada/sem_util.ads ada/sinfo.ads \
-   ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
-   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-imenne.ads \
-   ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-soflin.ads \
-   ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \
-   ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
-   ada/table.ads ada/table.adb ada/tbuild.ads ada/tree_io.ads \
-   ada/types.ads ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads \
-   ada/urealp.ads 
+   ada/hostparm.ads ada/namet.ads ada/nlists.ads ada/opt.ads \
+   ada/output.ads ada/rtsfind.ads ada/sem_aux.ads ada/sem_aux.adb \
+   ada/sem_res.ads ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb \
+   ada/sinput.ads ada/snames.ads ada/stand.ads ada/system.ads \
+   ada/s-assert.ads ada/s-exctab.ads ada/s-imenne.ads ada/s-memory.ads \
+   ada/s-os_lib.ads ada/s-parame.ads ada/s-soflin.ads ada/s-stache.ads \
+   ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
+   ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
+   ada/table.adb ada/tbuild.ads ada/tree_io.ads ada/types.ads \
+   ada/uintp.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads 
 
 ada/exp_strm.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2212,7 +2213,7 @@ ada/exp_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
-   ada/validsw.ads ada/widechar.ads 
+   ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/exp_vfpt.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2251,7 +2252,7 @@ ada/expander.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
    ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
    ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uname.ads \
-   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads 
+   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads 
 
 ada/fmap.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/fmap.ads ada/fmap.adb \
@@ -2321,7 +2322,7 @@ ada/freeze.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/frontend.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -2349,7 +2350,8 @@ ada/frontend.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
    ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uname.ads \
-   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
+   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/g-byorma.o : ada/gnat.ads ada/g-byorma.ads ada/g-byorma.adb \
    ada/system.ads 
@@ -2372,9 +2374,10 @@ ada/g-u3spch.o : ada/gnat.ads ada/g-spchge.ads ada/g-spchge.adb \
 
 ada/get_spark_xrefs.o : ada/ada.ads ada/a-ioexce.ads ada/a-unccon.ads \
    ada/get_spark_xrefs.ads ada/get_spark_xrefs.adb ada/gnat.ads \
-   ada/g-table.ads ada/g-table.adb ada/spark_xrefs.ads ada/system.ads \
-   ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads ada/s-stalib.ads \
-   ada/s-unstyp.ads ada/types.ads ada/unchconv.ads ada/unchdeal.ads 
+   ada/g-hesorg.ads ada/g-table.ads ada/g-table.adb ada/spark_xrefs.ads \
+   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads \
+   ada/s-stalib.ads ada/s-unstyp.ads ada/types.ads ada/unchconv.ads \
+   ada/unchdeal.ads 
 
 ada/get_targ.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/einfo.ads \
@@ -2415,7 +2418,7 @@ ada/gnat1drv.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tree_gen.ads ada/tree_io.ads ada/treepr.ads ada/ttypes.ads \
    ada/types.ads ada/uintp.ads ada/uname.ads ada/unchconv.ads \
    ada/unchdeal.ads ada/urealp.ads ada/usage.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/gnatbind.o : ada/ada.ads ada/a-comlin.ads ada/a-clrefi.ads \
    ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads ada/ali.ads \
@@ -2476,7 +2479,7 @@ ada/inline.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
    ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
    ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/interfac.o : ada/interfac.ads ada/system.ads 
 
@@ -2840,19 +2843,20 @@ ada/prepcomp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
 
 ada/put_scos.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/gnat.ads \
-   ada/g-table.ads ada/g-table.adb ada/hostparm.ads ada/namet.ads \
-   ada/opt.ads ada/output.ads ada/put_scos.ads ada/put_scos.adb \
-   ada/scos.ads ada/system.ads ada/s-assert.ads ada/s-exctab.ads \
-   ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads \
-   ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
-   ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads \
-   ada/unchconv.ads ada/unchdeal.ads 
+   ada/g-hesorg.ads ada/g-table.ads ada/g-table.adb ada/hostparm.ads \
+   ada/namet.ads ada/opt.ads ada/output.ads ada/put_scos.ads \
+   ada/put_scos.adb ada/scos.ads ada/system.ads ada/s-assert.ads \
+   ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
+   ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+   ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
+   ada/types.ads ada/unchconv.ads ada/unchdeal.ads 
 
 ada/put_spark_xrefs.o : ada/ada.ads ada/a-unccon.ads ada/gnat.ads \
-   ada/g-table.ads ada/g-table.adb ada/put_spark_xrefs.ads \
-   ada/put_spark_xrefs.adb ada/spark_xrefs.ads ada/system.ads \
-   ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads ada/s-stalib.ads \
-   ada/s-unstyp.ads ada/types.ads ada/unchconv.ads ada/unchdeal.ads 
+   ada/g-hesorg.ads ada/g-table.ads ada/g-table.adb \
+   ada/put_spark_xrefs.ads ada/put_spark_xrefs.adb ada/spark_xrefs.ads \
+   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads \
+   ada/s-stalib.ads ada/s-unstyp.ads ada/types.ads ada/unchconv.ads \
+   ada/unchdeal.ads 
 
 ada/repinfo.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3128,12 +3132,13 @@ ada/scng.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
 
 ada/scos.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/gnat.ads \
-   ada/g-table.ads ada/g-table.adb ada/hostparm.ads ada/namet.ads \
-   ada/opt.ads ada/output.ads ada/scos.ads ada/scos.adb ada/system.ads \
-   ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads \
-   ada/s-parame.ads ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads \
-   ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
-   ada/tree_io.ads ada/types.ads ada/unchconv.ads ada/unchdeal.ads 
+   ada/g-hesorg.ads ada/g-hesorg.adb ada/g-table.ads ada/g-table.adb \
+   ada/hostparm.ads ada/namet.ads ada/opt.ads ada/output.ads ada/scos.ads \
+   ada/scos.adb ada/system.ads ada/s-assert.ads ada/s-exctab.ads \
+   ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads \
+   ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+   ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads \
+   ada/unchconv.ads ada/unchdeal.ads 
 
 ada/sem.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \
    ada/alloc.ads ada/aspects.ads ada/atree.ads ada/atree.adb \
@@ -3156,7 +3161,7 @@ ada/sem.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \
    ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
    ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \
    ada/types.ads ada/uintp.ads ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_aggr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3189,7 +3194,8 @@ ada/sem_aggr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/sem_attr.o : ada/ada.ads ada/a-charac.ads ada/a-chlat1.ads \
    ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads ada/alloc.ads \
@@ -3202,13 +3208,14 @@ ada/sem_attr.o : ada/ada.ads ada/a-charac.ads ada/a-chlat1.ads \
    ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads \
    ada/exp_util.adb ada/expander.ads ada/fname.ads ada/fname-uf.ads \
    ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \
-   ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/inline.ads \
-   ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib-load.ads \
-   ada/lib-util.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \
-   ada/namet-sp.ads ada/nlists.ads ada/nlists.adb ada/nmake.ads \
-   ada/nmake.adb ada/opt.ads ada/output.ads ada/put_spark_xrefs.ads \
-   ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \
-   ada/scans.ads ada/sdefault.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \
+   ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \
+   ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \
+   ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \
+   ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/namet-sp.ads \
+   ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \
+   ada/output.ads ada/put_spark_xrefs.ads ada/restrict.ads \
+   ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \
+   ada/sdefault.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \
    ada/sem_attr.ads ada/sem_attr.adb ada/sem_aux.ads ada/sem_aux.adb \
    ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \
    ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \
@@ -3230,7 +3237,7 @@ ada/sem_attr.o : ada/ada.ads ada/a-charac.ads ada/a-chlat1.ads \
    ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
-   ada/validsw.ads ada/widechar.ads 
+   ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_aux.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3322,7 +3329,7 @@ ada/sem_ch10.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
    ada/targparm.ads ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/uintp.ads ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_ch11.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3353,12 +3360,11 @@ ada/sem_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/erroutc.ads ada/exp_ch11.ads ada/exp_ch7.ads ada/exp_disp.ads \
    ada/exp_dist.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \
    ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \
-   ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \
-   ada/hostparm.ads ada/inline.ads ada/inline.adb ada/itypes.ads \
-   ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \
-   ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \
-   ada/namet-sp.ads ada/nlists.ads ada/nlists.adb ada/nmake.ads \
-   ada/nmake.adb ada/opt.ads ada/opt.adb ada/output.ads \
+   ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \
+   ada/inline.ads ada/inline.adb ada/itypes.ads ada/lib.ads ada/lib.adb \
+   ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \
+   ada/lib-xref.ads ada/namet.ads ada/namet-sp.ads ada/nlists.ads \
+   ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
    ada/put_spark_xrefs.ads ada/restrict.ads ada/rident.ads ada/rtsfind.ads \
    ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \
    ada/sem_aux.ads ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \
@@ -3380,7 +3386,7 @@ ada/sem_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_ch13.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/aspects.adb \
@@ -3469,7 +3475,7 @@ ada/sem_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
    ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
-   ada/validsw.ads ada/widechar.ads 
+   ada/validsw.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3541,7 +3547,7 @@ ada/sem_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
    ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads 
 
 ada/sem_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3579,7 +3585,7 @@ ada/sem_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_ch7.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3609,7 +3615,8 @@ ada/sem_ch7.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \
    ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \
-   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
+   ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/sem_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3646,7 +3653,7 @@ ada/sem_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
    ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \
-   ada/urealp.ads ada/widechar.ads 
+   ada/urealp.ads ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/aspects.adb \
@@ -3683,7 +3690,7 @@ ada/sem_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
    ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/warnsw.ads 
 
 ada/sem_dim.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3770,28 +3777,28 @@ ada/sem_elab.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/exp_ch11.ads \
    ada/exp_disp.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \
    ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \
-   ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \
-   ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \
-   ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \
-   ada/namet.ads ada/namet.adb ada/namet-sp.ads ada/nlists.ads \
-   ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \
-   ada/put_spark_xrefs.ads ada/restrict.ads ada/restrict.adb \
-   ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads \
-   ada/sem_attr.ads ada/sem_aux.ads ada/sem_cat.ads ada/sem_ch7.ads \
-   ada/sem_ch8.ads ada/sem_disp.ads ada/sem_elab.ads ada/sem_elab.adb \
-   ada/sem_eval.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \
-   ada/sem_util.adb ada/set_targ.ads ada/sinfo.ads ada/sinfo.adb \
-   ada/sinput.ads ada/snames.ads ada/stand.ads ada/stringt.ads \
-   ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \
-   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-htable.ads \
-   ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
-   ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
-   ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
-   ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
-   ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \
-   ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \
-   ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
-   ada/widechar.ads 
+   ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \
+   ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/lib.adb \
+   ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \
+   ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/namet-sp.ads \
+   ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \
+   ada/output.ads ada/put_spark_xrefs.ads ada/restrict.ads \
+   ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \
+   ada/sem.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_cat.ads \
+   ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_disp.ads ada/sem_elab.ads \
+   ada/sem_elab.adb ada/sem_eval.ads ada/sem_res.ads ada/sem_type.ads \
+   ada/sem_util.ads ada/sem_util.adb ada/set_targ.ads ada/sinfo.ads \
+   ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \
+   ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \
+   ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-assert.ads \
+   ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \
+   ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \
+   ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+   ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+   ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
+   ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \
+   ada/types.ads ada/uintp.ads ada/uname.ads ada/unchconv.ads \
+   ada/unchdeal.ads ada/urealp.ads ada/widechar.ads 
 
 ada/sem_elim.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -3965,7 +3972,7 @@ ada/sem_res.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/types.adb \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
    ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_scil.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -4020,7 +4027,7 @@ ada/sem_type.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \
    ada/treepr.ads ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb \
    ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \
-   ada/widechar.ads 
+   ada/warnsw.ads ada/widechar.ads 
 
 ada/sem_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -4055,7 +4062,8 @@ ada/sem_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
    ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \
    ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/widechar.ads 
+   ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/warnsw.ads \
+   ada/widechar.ads 
 
 ada/sem_vfpt.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/atree.ads ada/cstand.ads \
@@ -4204,14 +4212,14 @@ ada/snames.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads 
 
 ada/spark_xrefs.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
-   ada/a-uncdea.ads ada/gnat.ads ada/g-table.ads ada/g-table.adb \
-   ada/hostparm.ads ada/output.ads ada/output.adb ada/put_spark_xrefs.ads \
-   ada/put_spark_xrefs.adb ada/spark_xrefs.ads ada/spark_xrefs.adb \
-   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads \
-   ada/s-os_lib.ads ada/s-parame.ads ada/s-soflin.ads ada/s-stache.ads \
-   ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \
-   ada/s-traent.ads ada/s-unstyp.ads ada/types.ads ada/unchconv.ads \
-   ada/unchdeal.ads 
+   ada/a-uncdea.ads ada/gnat.ads ada/g-hesorg.ads ada/g-hesorg.adb \
+   ada/g-table.ads ada/g-table.adb ada/hostparm.ads ada/output.ads \
+   ada/output.adb ada/put_spark_xrefs.ads ada/put_spark_xrefs.adb \
+   ada/spark_xrefs.ads ada/spark_xrefs.adb ada/system.ads ada/s-assert.ads \
+   ada/s-exctab.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \
+   ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+   ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
+   ada/types.ads ada/unchconv.ads ada/unchdeal.ads 
 
 ada/sprint.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \
@@ -4490,12 +4498,11 @@ ada/validsw.o : ada/ada.ads ada/a-unccon.ads ada/a-uncdea.ads \
 ada/warnsw.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/err_vars.ads \
    ada/hostparm.ads ada/namet.ads ada/opt.ads ada/output.ads \
-   ada/rident.ads ada/system.ads ada/s-assert.ads ada/s-exctab.ads \
-   ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \
-   ada/s-stalib.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \
-   ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \
-   ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \
-   ada/unchdeal.ads ada/warnsw.ads ada/warnsw.adb 
+   ada/system.ads ada/s-assert.ads ada/s-exctab.ads ada/s-memory.ads \
+   ada/s-os_lib.ads ada/s-parame.ads ada/s-stalib.ads ada/s-string.ads \
+   ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \
+   ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \
+   ada/unchconv.ads ada/unchdeal.ads ada/warnsw.ads ada/warnsw.adb 
 
 ada/widechar.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \
    ada/a-uncdea.ads ada/hostparm.ads ada/interfac.ads ada/opt.ads \
index d34a7f1..825b958 100644 (file)
 --  Frontend, and thus are not mutually recursive.
 
 with Alloc;
-with Opt;   use Opt;
-with Sem;   use Sem;
+with Opt;    use Opt;
+with Sem;    use Sem;
 with Table;
-with Types; use Types;
+with Types;  use Types;
+with Warnsw; use Warnsw;
 
 package Inline is
 
@@ -92,6 +93,9 @@ package Inline is
 
       Version_Pragma : Node_Id;
       --  This is linked with the Version value
+
+      Warnings : Warning_Record;
+      --  Capture values of warning flags
    end record;
 
    package Pending_Instantiations is new Table.Table (
index 819f573..035d0b0 100644 (file)
@@ -76,6 +76,7 @@ with Table;
 with Tbuild;   use Tbuild;
 with Uintp;    use Uintp;
 with Urealp;   use Urealp;
+with Warnsw;   use Warnsw;
 
 with GNAT.HTable;
 
@@ -3895,7 +3896,8 @@ package body Sem_Ch12 is
                    Scope_Suppress           => Scope_Suppress,
                    Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                    Version                  => Ada_Version,
-                   Version_Pragma           => Ada_Version_Pragma));
+                   Version_Pragma           => Ada_Version_Pragma,
+                   Warnings                 => Save_Warnings));
             end if;
          end if;
 
@@ -4240,7 +4242,8 @@ package body Sem_Ch12 is
                Scope_Suppress           => Scope_Suppress,
                Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                Version                  => Ada_Version,
-               Version_Pragma           => Ada_Version_Pragma)),
+               Version_Pragma           => Ada_Version_Pragma,
+               Warnings                 => Save_Warnings)),
             Inlined_Body => True);
 
          Pop_Scope;
@@ -4357,7 +4360,8 @@ package body Sem_Ch12 is
                Scope_Suppress           => Scope_Suppress,
                Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                Version                  => Ada_Version,
-               Version_Pragma           => Ada_Version_Pragma)),
+               Version_Pragma           => Ada_Version_Pragma,
+               Warnings                 => Save_Warnings)),
             Inlined_Body => True);
       end if;
    end Inline_Instance_Body;
@@ -4414,7 +4418,8 @@ package body Sem_Ch12 is
              Scope_Suppress           => Scope_Suppress,
              Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
              Version                  => Ada_Version,
-             Version_Pragma           => Ada_Version_Pragma));
+             Version_Pragma           => Ada_Version_Pragma,
+             Warnings                 => Save_Warnings));
          return True;
 
       --  Here if not inlined, or we ignore the inlining
@@ -9914,6 +9919,7 @@ package body Sem_Ch12 is
       Scope_Suppress           := Body_Info.Scope_Suppress;
       Opt.Ada_Version          := Body_Info.Version;
       Opt.Ada_Version_Pragma   := Body_Info.Version_Pragma;
+      Restore_Warnings (Body_Info.Warnings);
 
       if No (Gen_Body_Id) then
          Load_Parent_Of_Generic
@@ -10174,7 +10180,9 @@ package body Sem_Ch12 is
       Unit_Renaming : Node_Id;
 
       Parent_Installed : Boolean := False;
-      Save_Style_Check : constant Boolean := Style_Check;
+
+      Saved_Style_Check : constant Boolean        := Style_Check;
+      Saved_Warnings    : constant Warning_Record := Save_Warnings;
 
       Par_Ent : Entity_Id := Empty;
       Par_Vis : Boolean   := False;
@@ -10201,6 +10209,7 @@ package body Sem_Ch12 is
       Scope_Suppress           := Body_Info.Scope_Suppress;
       Opt.Ada_Version          := Body_Info.Version;
       Opt.Ada_Version_Pragma   := Body_Info.Version_Pragma;
+      Restore_Warnings (Body_Info.Warnings);
 
       if No (Gen_Body_Id) then
 
@@ -10380,7 +10389,8 @@ package body Sem_Ch12 is
          end if;
 
          Restore_Env;
-         Style_Check := Save_Style_Check;
+         Style_Check := Saved_Style_Check;
+         Restore_Warnings (Saved_Warnings);
 
       --  Body not found. Error was emitted already. If there were no previous
       --  errors, this may be an instance whose scope is a premature instance.
@@ -11861,7 +11871,8 @@ package body Sem_Ch12 is
       Body_Optional : Boolean := False)
    is
       Comp_Unit          : constant Node_Id := Cunit (Get_Source_Unit (Spec));
-      Save_Style_Check   : constant Boolean := Style_Check;
+      Saved_Style_Check  : constant Boolean := Style_Check;
+      Saved_Warnings     : constant Warning_Record := Save_Warnings;
       True_Parent        : Node_Id;
       Inst_Node          : Node_Id;
       OK                 : Boolean;
@@ -12096,7 +12107,8 @@ package body Sem_Ch12 is
                               Local_Suppress_Stack_Top =>
                                 Local_Suppress_Stack_Top,
                               Version                  => Ada_Version,
-                              Version_Pragma           => Ada_Version_Pragma);
+                              Version_Pragma           => Ada_Version_Pragma,
+                              Warnings                 => Save_Warnings);
 
                            --  Package instance
 
@@ -12137,7 +12149,8 @@ package body Sem_Ch12 is
                          Scope_Suppress           => Scope_Suppress,
                          Local_Suppress_Stack_Top => Local_Suppress_Stack_Top,
                          Version                  => Ada_Version,
-                         Version_Pragma           => Ada_Version_Pragma)),
+                         Version_Pragma           => Ada_Version_Pragma,
+                         Warnings                 => Save_Warnings)),
                      Body_Optional => Body_Optional);
                end;
             end if;
@@ -12148,7 +12161,8 @@ package body Sem_Ch12 is
             Opt.Style_Check := False;
             Expander_Mode_Save_And_Set (True);
             Load_Needed_Body (Comp_Unit, OK);
-            Opt.Style_Check := Save_Style_Check;
+            Opt.Style_Check := Saved_Style_Check;
+            Restore_Warnings (Saved_Warnings);
             Expander_Mode_Restore;
 
             if not OK
index 2d8d5f7..ea41423 100644 (file)
@@ -5092,11 +5092,25 @@ package body Sem_Ch3 is
             Process_Formals (Parameter_Specifications (Spec), Spec);
 
             if Nkind (Spec) = N_Access_Function_Definition then
-               if Nkind (Result_Definition (Spec)) = N_Access_Definition then
-                  Find_Type (Subtype_Mark (Result_Definition (Spec)));
-               else
-                  Find_Type (Result_Definition (Spec));
-               end if;
+               declare
+                  Def : constant Node_Id := Result_Definition (Spec);
+
+               begin
+                  --  The result might itself be an anonymous access type, so
+                  --  have to recurse.
+
+                  if Nkind (Def) = N_Access_Definition then
+                     if Present (Access_To_Subprogram_Definition (Def)) then
+                        Set_Etype (Def,
+                           Replace_Anonymous_Access_To_Protected_Subprogram
+                            (Spec));
+                     else
+                        Find_Type (Subtype_Mark (Def));
+                     end if;
+                  else
+                     Find_Type (Def);
+                  end if;
+               end;
             end if;
 
             End_Scope;
index c194b31..36360f9 100644 (file)
 
 with Err_Vars; use Err_Vars;
 with Opt;      use Opt;
-with Targparm; use Targparm;
+
 package body Warnsw is
 
+   ----------------------
+   -- Restore_Warnings --
+   ----------------------
+
+   procedure Restore_Warnings (W : Warning_Record) is
+   begin
+      Address_Clause_Overlay_Warnings     :=
+        W.Address_Clause_Overlay_Warnings;
+      Check_Unreferenced                  :=
+        W.Check_Unreferenced;
+      Check_Unreferenced_Formals          :=
+        W.Check_Unreferenced_Formals;
+      Check_Withs                         :=
+        W.Check_Withs;
+      Constant_Condition_Warnings         :=
+        W.Constant_Condition_Warnings;
+      Elab_Warnings                       :=
+        W.Elab_Warnings;
+      Implementation_Unit_Warnings        :=
+        W.Implementation_Unit_Warnings;
+      Ineffective_Inline_Warnings         :=
+        W.Ineffective_Inline_Warnings;
+      List_Inherited_Aspects              :=
+        W.List_Inherited_Aspects;
+      Warning_Doc_Switch                  :=
+        W.Warning_Doc_Switch;
+      Warn_On_Ada_2005_Compatibility      :=
+        W.Warn_On_Ada_2005_Compatibility;
+      Warn_On_Ada_2012_Compatibility      :=
+        W.Warn_On_Ada_2012_Compatibility;
+      Warn_On_All_Unread_Out_Parameters   :=
+        W.Warn_On_All_Unread_Out_Parameters;
+      Warn_On_Assertion_Failure           :=
+        W.Warn_On_Assertion_Failure;
+      Warn_On_Assumed_Low_Bound           :=
+        W.Warn_On_Assumed_Low_Bound;
+      Warn_On_Atomic_Synchronization      :=
+        W.Warn_On_Atomic_Synchronization;
+      Warn_On_Bad_Fixed_Value             :=
+        W.Warn_On_Bad_Fixed_Value;
+      Warn_On_Biased_Representation       :=
+        W.Warn_On_Biased_Representation;
+      Warn_On_Constant                    :=
+        W.Warn_On_Constant;
+      Warn_On_Deleted_Code                :=
+        W.Warn_On_Deleted_Code;
+      Warn_On_Dereference                 :=
+        W.Warn_On_Dereference;
+      Warn_On_Export_Import               :=
+        W.Warn_On_Export_Import;
+      Warn_On_Hiding                      :=
+        W.Warn_On_Hiding;
+      Warn_On_Modified_Unread             :=
+        W.Warn_On_Modified_Unread;
+      Warn_On_No_Value_Assigned           :=
+        W.Warn_On_No_Value_Assigned;
+      Warn_On_Non_Local_Exception         :=
+        W.Warn_On_Non_Local_Exception;
+      Warn_On_Object_Renames_Function     :=
+        W.Warn_On_Object_Renames_Function;
+      Warn_On_Obsolescent_Feature         :=
+        W.Warn_On_Obsolescent_Feature;
+      Warn_On_Overlap                     :=
+        W.Warn_On_Overlap;
+      Warn_On_Overridden_Size             :=
+        W.Warn_On_Overridden_Size;
+      Warn_On_Parameter_Order             :=
+        W.Warn_On_Parameter_Order;
+      Warn_On_Questionable_Missing_Parens :=
+        W.Warn_On_Questionable_Missing_Parens;
+      Warn_On_Record_Holes                :=
+        W.Warn_On_Record_Holes;
+      Warn_On_Redundant_Constructs        :=
+        W.Warn_On_Redundant_Constructs;
+      Warn_On_Reverse_Bit_Order           :=
+        W.Warn_On_Reverse_Bit_Order;
+      Warn_On_Standard_Redefinition       :=
+        W.Warn_On_Standard_Redefinition;
+      Warn_On_Suspicious_Contract         :=
+        W.Warn_On_Suspicious_Contract;
+      Warn_On_Unchecked_Conversion        :=
+        W.Warn_On_Unchecked_Conversion;
+      Warn_On_Unordered_Enumeration_Type  :=
+        W.Warn_On_Unordered_Enumeration_Type;
+      Warn_On_Unrecognized_Pragma         :=
+        W.Warn_On_Unrecognized_Pragma;
+      Warn_On_Unrepped_Components         :=
+        W.Warn_On_Unrepped_Components;
+      Warn_On_Warnings_Off                :=
+        W.Warn_On_Warnings_Off;
+   end Restore_Warnings;
+
+   -------------------
+   -- Save_Warnings --
+   -------------------
+
+   function Save_Warnings return Warning_Record is
+      W : Warning_Record;
+
+   begin
+      W.Address_Clause_Overlay_Warnings     :=
+        Address_Clause_Overlay_Warnings;
+      W.Check_Unreferenced                  :=
+        Check_Unreferenced;
+      W.Check_Unreferenced_Formals          :=
+        Check_Unreferenced_Formals;
+      W.Check_Withs                         :=
+        Check_Withs;
+      W.Constant_Condition_Warnings         :=
+        Constant_Condition_Warnings;
+      W.Elab_Warnings                       :=
+        Elab_Warnings;
+      W.Implementation_Unit_Warnings        :=
+        Implementation_Unit_Warnings;
+      W.Ineffective_Inline_Warnings         :=
+        Ineffective_Inline_Warnings;
+      W.List_Inherited_Aspects              :=
+        List_Inherited_Aspects;
+      W.Warning_Doc_Switch                  :=
+        Warning_Doc_Switch;
+      W.Warn_On_Ada_2005_Compatibility      :=
+        Warn_On_Ada_2005_Compatibility;
+      W.Warn_On_Ada_2012_Compatibility      :=
+        Warn_On_Ada_2012_Compatibility;
+      W.Warn_On_All_Unread_Out_Parameters   :=
+        Warn_On_All_Unread_Out_Parameters;
+      W.Warn_On_Assertion_Failure           :=
+        Warn_On_Assertion_Failure;
+      W.Warn_On_Assumed_Low_Bound           :=
+        Warn_On_Assumed_Low_Bound;
+      W.Warn_On_Atomic_Synchronization      :=
+        Warn_On_Atomic_Synchronization;
+      W.Warn_On_Bad_Fixed_Value             :=
+        Warn_On_Bad_Fixed_Value;
+      W.Warn_On_Biased_Representation       :=
+        Warn_On_Biased_Representation;
+      W.Warn_On_Constant                    :=
+        Warn_On_Constant;
+      W.Warn_On_Deleted_Code                :=
+        Warn_On_Deleted_Code;
+      W.Warn_On_Dereference                 :=
+        Warn_On_Dereference;
+      W.Warn_On_Export_Import               :=
+        Warn_On_Export_Import;
+      W.Warn_On_Hiding                      :=
+        Warn_On_Hiding;
+      W.Warn_On_Modified_Unread             :=
+        Warn_On_Modified_Unread;
+      W.Warn_On_No_Value_Assigned           :=
+        Warn_On_No_Value_Assigned;
+      W.Warn_On_Non_Local_Exception         :=
+        Warn_On_Non_Local_Exception;
+      W.Warn_On_Object_Renames_Function     :=
+        Warn_On_Object_Renames_Function;
+      W.Warn_On_Obsolescent_Feature         :=
+        Warn_On_Obsolescent_Feature;
+      W.Warn_On_Overlap                     :=
+        Warn_On_Overlap;
+      W.Warn_On_Overridden_Size             :=
+        Warn_On_Overridden_Size;
+      W.Warn_On_Parameter_Order             :=
+        Warn_On_Parameter_Order;
+      W.Warn_On_Questionable_Missing_Parens :=
+        Warn_On_Questionable_Missing_Parens;
+      W.Warn_On_Record_Holes                :=
+        Warn_On_Record_Holes;
+      W.Warn_On_Redundant_Constructs        :=
+        Warn_On_Redundant_Constructs;
+      W.Warn_On_Reverse_Bit_Order           :=
+        Warn_On_Reverse_Bit_Order;
+      W.Warn_On_Standard_Redefinition       :=
+        Warn_On_Standard_Redefinition;
+      W.Warn_On_Suspicious_Contract         :=
+        Warn_On_Suspicious_Contract;
+      W.Warn_On_Unchecked_Conversion        :=
+        Warn_On_Unchecked_Conversion;
+      W.Warn_On_Unordered_Enumeration_Type  :=
+        Warn_On_Unordered_Enumeration_Type;
+      W.Warn_On_Unrecognized_Pragma         :=
+        Warn_On_Unrecognized_Pragma;
+      W.Warn_On_Unrepped_Components         :=
+        Warn_On_Unrepped_Components;
+      W.Warn_On_Warnings_Off                :=
+        Warn_On_Warnings_Off;
+
+      return W;
+   end Save_Warnings;
+
    ----------------------------
    -- Set_Dot_Warning_Switch --
    ----------------------------
@@ -54,17 +242,9 @@ package body Warnsw is
             Warn_On_Unrepped_Components         := False;
 
          when 'd' =>
-            if OpenVMS_On_Target then
-               return False;
-            end if;
-
             Warning_Doc_Switch                  := True;
 
          when 'D' =>
-            if OpenVMS_On_Target then
-               return False;
-            end if;
-
             Warning_Doc_Switch                  := False;
 
          when 'e' =>
@@ -77,11 +257,7 @@ package body Warnsw is
             Implementation_Unit_Warnings        := True;
             Ineffective_Inline_Warnings         := True;
             List_Inherited_Aspects              := True;
-
-            if not OpenVMS_On_Target then
-               Warning_Doc_Switch               := True;
-            end if;
-
+            Warning_Doc_Switch                  := True;
             Warn_On_Ada_2005_Compatibility      := True;
             Warn_On_Ada_2012_Compatibility      := True;
             Warn_On_All_Unread_Out_Parameters   := True;
index 45983e9..b39f545 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1999-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1999-2013, 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- --
@@ -35,7 +35,8 @@ package Warnsw is
    --  whether warnings of a given class will be generated or not.
 
    --  Note: most of these flags are still in opt, but the plan is to move them
-   --  here as time goes by.
+   --  here as time goes by. And in fact a really nice idea would be to put
+   --  them all in a Warn_Record so that they would be easy to save/restore.
 
    Warn_On_Record_Holes : Boolean := False;
    --  Warn when explicit record component clauses leave uncovered holes (gaps)
@@ -52,6 +53,63 @@ package Warnsw is
    --  Standard. Off by default, modified by use of -gnatw.k/.K, but not
    --  affected by -gnatwa.
 
+   -----------------------------------
+   -- Saving and Restoring Warnings --
+   -----------------------------------
+
+   --  Type used to save and restore warnings
+
+   type Warning_Record is record
+      Address_Clause_Overlay_Warnings     : Boolean;
+      Check_Unreferenced                  : Boolean;
+      Check_Unreferenced_Formals          : Boolean;
+      Check_Withs                         : Boolean;
+      Constant_Condition_Warnings         : Boolean;
+      Elab_Warnings                       : Boolean;
+      Implementation_Unit_Warnings        : Boolean;
+      Ineffective_Inline_Warnings         : Boolean;
+      List_Inherited_Aspects              : Boolean;
+      Warning_Doc_Switch                  : Boolean;
+      Warn_On_Ada_2005_Compatibility      : Boolean;
+      Warn_On_Ada_2012_Compatibility      : Boolean;
+      Warn_On_All_Unread_Out_Parameters   : Boolean;
+      Warn_On_Assertion_Failure           : Boolean;
+      Warn_On_Assumed_Low_Bound           : Boolean;
+      Warn_On_Atomic_Synchronization      : Boolean;
+      Warn_On_Bad_Fixed_Value             : Boolean;
+      Warn_On_Biased_Representation       : Boolean;
+      Warn_On_Constant                    : Boolean;
+      Warn_On_Deleted_Code                : Boolean;
+      Warn_On_Dereference                 : Boolean;
+      Warn_On_Export_Import               : Boolean;
+      Warn_On_Hiding                      : Boolean;
+      Warn_On_Modified_Unread             : Boolean;
+      Warn_On_No_Value_Assigned           : Boolean;
+      Warn_On_Non_Local_Exception         : Boolean;
+      Warn_On_Object_Renames_Function     : Boolean;
+      Warn_On_Obsolescent_Feature         : Boolean;
+      Warn_On_Overlap                     : Boolean;
+      Warn_On_Overridden_Size             : Boolean;
+      Warn_On_Parameter_Order             : Boolean;
+      Warn_On_Questionable_Missing_Parens : Boolean;
+      Warn_On_Record_Holes                : Boolean;
+      Warn_On_Redundant_Constructs        : Boolean;
+      Warn_On_Reverse_Bit_Order           : Boolean;
+      Warn_On_Standard_Redefinition       : Boolean;
+      Warn_On_Suspicious_Contract         : Boolean;
+      Warn_On_Unchecked_Conversion        : Boolean;
+      Warn_On_Unordered_Enumeration_Type  : Boolean;
+      Warn_On_Unrecognized_Pragma         : Boolean;
+      Warn_On_Unrepped_Components         : Boolean;
+      Warn_On_Warnings_Off                : Boolean;
+   end record;
+
+   function Save_Warnings return Warning_Record;
+   --  Returns current settingh of warnings
+
+   procedure Restore_Warnings (W : Warning_Record);
+   --  Restores current settings of warning flags from W
+
    -----------------
    -- Subprograms --
    -----------------