diff options
author | bosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-12 00:21:40 +0000 |
---|---|---|
committer | bosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-12 00:21:40 +0000 |
commit | a7b4d0777f64ffceedfc656aab24815db3406891 (patch) | |
tree | 0f89902e80ebe7075531f1ea0945930034fb97aa /gcc/ada/rtsfind.ads | |
parent | 59c93cd996e0ac582348d0fd3620e01c70f12326 (diff) | |
download | gcc-a7b4d0777f64ffceedfc656aab24815db3406891.tar.gz |
* restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
the error message for high integrity mode.
* rtsfind.adb (RTE): Give message if we try to find an entity that
is not available in high integrity mode.
* rtsfind.ads:
(OK_To_Use_In_HIE_Mode): New array.
(RTE): May return Empty in high integrity mode.
* rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
* sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
unit if not inlined always and in no runtime mode. Fixes problem
caused by new Rtsfind changes.
* sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
body is deleted.
* rtsfind.adb (RTE): Make sure we do not try to load unit after
giving message for entity not available in high integrity mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46214 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/rtsfind.ads')
-rw-r--r-- | gcc/ada/rtsfind.ads | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/gcc/ada/rtsfind.ads b/gcc/ada/rtsfind.ads index 11304f625a8..6b30cf154df 100644 --- a/gcc/ada/rtsfind.ads +++ b/gcc/ada/rtsfind.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- $Revision: 1.216 $ +-- $Revision$ -- -- -- Copyright (C) 1992-2001, Free Software Foundation, Inc. -- -- -- @@ -376,6 +376,23 @@ package Rtsfind is System_Tasking_Async_Delays_Enqueue_RT; -- Range of values for children of System.Tasking.Async_Delays + OK_To_Use_In_No_Run_Time_Mode : array (RTU_Id) of Boolean := + (Ada_Tags => True, + Interfaces => True, + System => True, + System_Fat_Flt => True, + System_Fat_LFlt => True, + System_Fat_LLF => True, + System_Fat_SFlt => True, + System_Machine_Code => True, + System_Storage_Elements => True, + System_Unsigned_Types => True, + others => False); + -- This array defines the set of packages that can legitimately be + -- accessed by Rtsfind in No_Run_Time mode. Any attempt to load + -- any other package in this mode will result in a message noting + -- use of a feature not supported in high integrity mode. + -------------------------- -- Runtime Entity Table -- -------------------------- @@ -2291,7 +2308,13 @@ package Rtsfind is -- expanding) its spec if the unit has not already been loaded. If the -- unit cannot be found, or if it does not contain the specified entity, -- then an appropriate error message is output ("run-time configuration - -- error") and an Unrecoverable_Error exception is raised. + -- error") and an Unrecoverable_Error exception is raised. There is one + -- situation in which RTE can generate an error message, and that is if + -- an unuathorized entity is accessed in high integrity mode. If this + -- occurs, the result returned may be Empty, and the caller must deal + -- with this possibility if the call to RTE may occur in high integrity + -- mode (often this will have been ruled out by specific checks for + -- high integrity mode prior to the RTE call). function Is_RTE (Ent : Entity_Id; E : RE_Id) return Boolean; -- This function determines if the given entity corresponds to the entity |