]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
freeze.adb (Freeze_Entity): Remove test of obsolete flag Propagate_Exceptions...
authorRobert Dewar <dewar@adacore.com>
Fri, 5 Jul 2013 10:21:56 +0000 (10:21 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 5 Jul 2013 10:21:56 +0000 (12:21 +0200)
2013-07-05  Robert Dewar  <dewar@adacore.com>

* freeze.adb (Freeze_Entity): Remove test of obsolete flag
Propagate_Exceptions, and associated useless code that did
nothing.
* gnat_rm.texi: Add documentation for obsolete pragma
Propagate_Exceptions.
* opt.ads (Propagate_Exceptions): Obsolete flag removed.
* sem_prag.adb (Analyze_Pragma, case Propagate_Exceptions):
Remove useless and obsolete setting of Propagate_Exceptions flag.

From-SVN: r200698

gcc/ada/ChangeLog
gcc/ada/freeze.adb
gcc/ada/gnat_rm.texi
gcc/ada/opt.ads
gcc/ada/sem_prag.adb

index 01d84ba0d11f5d8239b0d62bec056f2061e9318f..2c1f91464c14daf830ea633c59e2b69774e9a7d2 100644 (file)
@@ -1,3 +1,14 @@
+2013-07-05  Robert Dewar  <dewar@adacore.com>
+
+       * freeze.adb (Freeze_Entity): Remove test of obsolete flag
+       Propagate_Exceptions, and associated useless code that did
+       nothing.
+       * gnat_rm.texi: Add documentation for obsolete pragma
+       Propagate_Exceptions.
+       * opt.ads (Propagate_Exceptions): Obsolete flag removed.
+       * sem_prag.adb (Analyze_Pragma, case Propagate_Exceptions):
+       Remove useless and obsolete setting of Propagate_Exceptions flag.
+
 2013-07-05  Robert Dewar  <dewar@adacore.com>
 
        * gnat_rm.texi, sem_prag.adb: Minor comment/text fixes.
index 88a8f6df656045e9d62872080bf1d0b535ef237d..125c3bcb6eedcbea4034ef5375463440920c34ee 100644 (file)
@@ -4940,21 +4940,6 @@ package body Freeze is
            and then not Is_Library_Level_Entity (E)
          then
             Set_Is_Public (E, False);
-
-         --  If no address clause and not intrinsic, then for imported
-         --  subprogram in main unit, generate descriptor if we are in
-         --  Propagate_Exceptions mode.
-
-         --  This is very odd code, it makes a null result, why ???
-
-         elsif Propagate_Exceptions
-           and then Is_Imported (E)
-           and then not Is_Intrinsic_Subprogram (E)
-           and then Convention (E) /= Convention_Stubbed
-         then
-            if Result = No_List then
-               Result := Empty_List;
-            end if;
          end if;
       end if;
 
index 312e0a8ca3da39134e61aa1806df1be8d3a921ce..cb559a320c7647cc056513495708996ac0e4ea9a 100644 (file)
@@ -206,6 +206,7 @@ Implementation Defined Pragmas
 * Pragma Priority_Specific_Dispatching::
 * Pragma Profile::
 * Pragma Profile_Warnings::
+* Pragma Propagate_Exceptions::
 * Pragma Psect_Object::
 * Pragma Pure_05::
 * Pragma Pure_12::
@@ -1010,6 +1011,7 @@ consideration, the use of these pragmas should be minimized.
 * Pragma Priority_Specific_Dispatching::
 * Pragma Profile::
 * Pragma Profile_Warnings::
+* Pragma Propagate_Exceptions::
 * Pragma Psect_Object::
 * Pragma Pure_05::
 * Pragma Pure_12::
@@ -5288,7 +5290,24 @@ generating @code{Restrictions} pragmas, it generates
 violations of the profile generate warning messages instead
 of error messages.
 
+@node Pragma Propagate_Exceptions
+@unnumberedsec Pragma Propagate_Exceptions
+@cindex Interfacing to C++
+@findex Propagate_Exceptions
+@noindent
+Syntax:
+
+@smallexample @c ada
+pragma Propagate_Exceptions;
+@end smallexample
+
 @noindent
+This pragma is now obsolete and, other than generating a warning if warnings
+on obsolescent features are enabled, is ignored.
+It is retained for compatibility
+purposes. It used to be used in connection with optimization of
+a now-obsolete mechanism for implementation of exceptions.
+
 @node Pragma Psect_Object
 @unnumberedsec Pragma Psect_Object
 @findex Psect_Object
index 01cbad1fc9a07bdb99c697a4ad02dcb96cea22e1..54d39f80312195fc6ded4f1018e307f2f2a1aa40 100644 (file)
@@ -1147,12 +1147,6 @@ package Opt is
    --  Set to true to enable printing of package standard in source form.
    --  This flag is set by the -gnatS switch
 
-   Propagate_Exceptions : Boolean := False;
-   --  GNAT
-   --  Indicates if subprogram descriptor exception tables should be
-   --  built for imported subprograms. Set True if a Propagate_Exceptions
-   --  pragma applies to the extended main unit.
-
    type Usage is (Unknown, Not_In_Use, In_Use);
    Project_File_In_Use : Usage := Unknown;
    --  GNAT
index 553ce2131dde8b99aa8936c426e38c1e8ccbbfe5..3f70c8f055264dbe29f39c34b568894224844075 100644 (file)
@@ -10300,7 +10300,7 @@ package body Sem_Prag is
 
             if Warn_On_Obsolescent_Feature then
                Error_Msg_N
-                 ("'G'N'A'T pragma cpp'_virtual is now obsolete and has no "
+                 ("'G'N'A'T pragma Cpp'_Virtual is now obsolete and has no "
                   & "effect?j?", N);
             end if;
          end CPP_Virtual;
@@ -10315,7 +10315,7 @@ package body Sem_Prag is
 
             if Warn_On_Obsolescent_Feature then
                Error_Msg_N
-                 ("'G'N'A'T pragma cpp'_vtable is now obsolete and has no "
+                 ("'G'N'A'T pragma Cpp'_Vtable is now obsolete and has no "
                   & "effect?j?", N);
             end if;
          end CPP_Vtable;
@@ -14604,6 +14604,7 @@ package body Sem_Prag is
          when Pragma_Overriding_Renamings =>
             GNAT_Pragma;
             Check_Arg_Count (0);
+            Check_Valid_Configuration_Pragma;
             Overriding_Renamings := True;
 
          ----------
@@ -15039,7 +15040,7 @@ package body Sem_Prag is
 
          --  pragma Predicate
          --    ([Entity =>] type_LOCAL_NAME,
-         --     [Check  =>] EXPRESSION);
+         --     [Check  =>] boolean_EXPRESSION);
 
          when Pragma_Predicate => Predicate : declare
             Type_Id : Node_Id;
@@ -15469,10 +15470,10 @@ package body Sem_Prag is
             GNAT_Pragma;
             Check_Arg_Count (0);
 
-            --  This code does not agree with above (no effect) comment ???
-
-            if In_Extended_Main_Source_Unit (N) then
-               Propagate_Exceptions := True;
+            if Warn_On_Obsolescent_Feature then
+               Error_Msg_N
+                 ("'G'N'A'T pragma Propagate'_Exceptions is now obsolete " &
+                  "and has no effect?j?", N);
             end if;
 
          ------------------