Commit cadf64d1 by Bob Duff Committed by Arnaud Charlet

restrict.ads, [...] (Check_Implicit_Dynamic_Code_Allowed): New procedure to be…

restrict.ads, [...] (Check_Implicit_Dynamic_Code_Allowed): New procedure to be called from the back end to check the...

2007-12-06  Bob Duff  <duff@adacore.com>

	* restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
	procedure to be called from the back end to check the
	No_Implicit_Dynamic_Code restriction.

From-SVN: r130847
parent 6c1f47ee
...@@ -101,19 +101,18 @@ package body Restrict is ...@@ -101,19 +101,18 @@ package body Restrict is
procedure Check_Elaboration_Code_Allowed (N : Node_Id) is procedure Check_Elaboration_Code_Allowed (N : Node_Id) is
begin begin
-- Avoid calling Namet.Unlock/Lock except when there is an error. Check_Restriction (No_Elaboration_Code, N);
-- Even in the error case it is a bit dubious, either gigi needs
-- the table locked or it does not! ???
if Restrictions.Set (No_Elaboration_Code)
and then not Suppress_Restriction_Message (N)
then
Namet.Unlock;
Check_Restriction (No_Elaboration_Code, N);
Namet.Lock;
end if;
end Check_Elaboration_Code_Allowed; end Check_Elaboration_Code_Allowed;
-----------------------------------------
-- Check_Implicit_Dynamic_Code_Allowed --
-----------------------------------------
procedure Check_Implicit_Dynamic_Code_Allowed (N : Node_Id) is
begin
Check_Restriction (No_Implicit_Dynamic_Code, N);
end Check_Implicit_Dynamic_Code_Allowed;
---------------------------------- ----------------------------------
-- Check_No_Implicit_Heap_Alloc -- -- Check_No_Implicit_Heap_Alloc --
---------------------------------- ----------------------------------
......
...@@ -207,6 +207,13 @@ package Restrict is ...@@ -207,6 +207,13 @@ package Restrict is
-- an elaboration routine. If elaboration code is not allowed, an error -- an elaboration routine. If elaboration code is not allowed, an error
-- message is posted on the node given as argument. -- message is posted on the node given as argument.
procedure Check_Implicit_Dynamic_Code_Allowed (N : Node_Id);
-- Tests to see if dynamic code generation (dynamically generated
-- trampolines, in particular) is allowed by the current restrictions
-- settings. This function is called by Gigi when it needs to generate code
-- that generates a trampoline. If not allowed, an error message is posted
-- on the node given as argument.
procedure Check_No_Implicit_Heap_Alloc (N : Node_Id); procedure Check_No_Implicit_Heap_Alloc (N : Node_Id);
-- Equivalent to Check_Restriction (No_Implicit_Heap_Allocations, N). -- Equivalent to Check_Restriction (No_Implicit_Heap_Allocations, N).
-- Provided for easy use by back end, which has to check this restriction. -- Provided for easy use by back end, which has to check this restriction.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment