[multiple changes]
2009-04-20 Bob Duff <duff@adacore.com> * gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside pragma Debug. 2009-04-20 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated subprogram as Eliminated when source operation is. (Expand_N_Protected_Type_Declaration): Generate protected and unprotected specs for the internal operations, even if the source operation is eliminated. 2009-04-20 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Do not create the declarations and bodies of the primitive subprograms associated with dispatching select statements when the runtime is in configurable mode. 2009-04-20 Ed Falis <falis@adacore.com> * s-vxwext-kernel.ads (tickGet): Use tick64Get. From-SVN: r146393
This commit is contained in:
parent
4fd1e8b001
commit
3edf2f76e4
@ -1,3 +1,27 @@
|
|||||||
|
2009-04-20 Bob Duff <duff@adacore.com>
|
||||||
|
|
||||||
|
* gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside
|
||||||
|
pragma Debug.
|
||||||
|
|
||||||
|
2009-04-20 Ed Schonberg <schonberg@adacore.com>
|
||||||
|
|
||||||
|
* exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated
|
||||||
|
subprogram as Eliminated when source operation is.
|
||||||
|
(Expand_N_Protected_Type_Declaration): Generate protected and
|
||||||
|
unprotected specs for the internal operations, even if the source
|
||||||
|
operation is eliminated.
|
||||||
|
|
||||||
|
2009-04-20 Hristian Kirtchev <kirtchev@adacore.com>
|
||||||
|
|
||||||
|
* exp_ch3.adb (Make_Predefined_Primitive_Specs,
|
||||||
|
Predefined_Primitive_Bodies): Do not create the declarations and bodies
|
||||||
|
of the primitive subprograms associated with dispatching select
|
||||||
|
statements when the runtime is in configurable mode.
|
||||||
|
|
||||||
|
2009-04-20 Ed Falis <falis@adacore.com>
|
||||||
|
|
||||||
|
* s-vxwext-kernel.ads (tickGet): Use tick64Get.
|
||||||
|
|
||||||
2009-04-20 Thomas Quinot <quinot@adacore.com>
|
2009-04-20 Thomas Quinot <quinot@adacore.com>
|
||||||
|
|
||||||
* s-oscons-tmplt.c: Add support for generating a dummy version of
|
* s-oscons-tmplt.c: Add support for generating a dummy version of
|
||||||
|
@ -7819,12 +7819,13 @@ package body Exp_Ch3 is
|
|||||||
|
|
||||||
-- These operations cannot be implemented on VM targets, so we simply
|
-- These operations cannot be implemented on VM targets, so we simply
|
||||||
-- disable their generation in this case. Disable the generation of
|
-- disable their generation in this case. Disable the generation of
|
||||||
-- these bodies if No_Dispatching_Calls or Ravenscar is active.
|
-- these bodies if No_Dispatching_Calls, Ravenscar or ZFP is active.
|
||||||
|
|
||||||
if Ada_Version >= Ada_05
|
if Ada_Version >= Ada_05
|
||||||
and then VM_Target = No_VM
|
and then VM_Target = No_VM
|
||||||
and then not Restriction_Active (No_Dispatching_Calls)
|
and then not Restriction_Active (No_Dispatching_Calls)
|
||||||
and then not Restriction_Active (No_Select_Statements)
|
and then not Restriction_Active (No_Select_Statements)
|
||||||
|
and then RTE_Available (RE_Select_Specific_Data)
|
||||||
then
|
then
|
||||||
-- These primitives are defined abstract in interface types
|
-- These primitives are defined abstract in interface types
|
||||||
|
|
||||||
@ -8313,7 +8314,7 @@ package body Exp_Ch3 is
|
|||||||
|
|
||||||
-- These operations cannot be implemented on VM targets, so we simply
|
-- These operations cannot be implemented on VM targets, so we simply
|
||||||
-- disable their generation in this case. Disable the generation of
|
-- disable their generation in this case. Disable the generation of
|
||||||
-- these bodies if No_Dispatching_Calls or Ravenscar is active.
|
-- these bodies if No_Dispatching_Calls, Ravenscar or ZFP is active.
|
||||||
|
|
||||||
if Ada_Version >= Ada_05
|
if Ada_Version >= Ada_05
|
||||||
and then VM_Target = No_VM
|
and then VM_Target = No_VM
|
||||||
@ -8325,6 +8326,7 @@ package body Exp_Ch3 is
|
|||||||
and then Has_Interfaces (Tag_Typ)))
|
and then Has_Interfaces (Tag_Typ)))
|
||||||
and then not Restriction_Active (No_Dispatching_Calls)
|
and then not Restriction_Active (No_Dispatching_Calls)
|
||||||
and then not Restriction_Active (No_Select_Statements)
|
and then not Restriction_Active (No_Select_Statements)
|
||||||
|
and then RTE_Available (RE_Select_Specific_Data)
|
||||||
then
|
then
|
||||||
Append_To (Res, Make_Disp_Asynchronous_Select_Body (Tag_Typ));
|
Append_To (Res, Make_Disp_Asynchronous_Select_Body (Tag_Typ));
|
||||||
Append_To (Res, Make_Disp_Conditional_Select_Body (Tag_Typ));
|
Append_To (Res, Make_Disp_Conditional_Select_Body (Tag_Typ));
|
||||||
|
@ -2791,6 +2791,11 @@ package body Exp_Ch9 is
|
|||||||
|
|
||||||
Set_Debug_Info_Needed (New_Id);
|
Set_Debug_Info_Needed (New_Id);
|
||||||
|
|
||||||
|
-- If a pragma Eliminate applies to the source entity, the internal
|
||||||
|
-- subprograms will be eliminated as well.
|
||||||
|
|
||||||
|
Set_Is_Eliminated (New_Id, Is_Eliminated (Def_Id));
|
||||||
|
|
||||||
if Nkind (Specification (Decl)) = N_Procedure_Specification then
|
if Nkind (Specification (Decl)) = N_Procedure_Specification then
|
||||||
New_Spec :=
|
New_Spec :=
|
||||||
Make_Procedure_Specification (Loc,
|
Make_Procedure_Specification (Loc,
|
||||||
@ -7212,7 +7217,7 @@ package body Exp_Ch9 is
|
|||||||
|
|
||||||
when N_Subprogram_Body =>
|
when N_Subprogram_Body =>
|
||||||
|
|
||||||
-- Exclude functions created to analyze defaults
|
-- Do not create bodies for eliminated operations.
|
||||||
|
|
||||||
if not Is_Eliminated (Defining_Entity (Op_Body))
|
if not Is_Eliminated (Defining_Entity (Op_Body))
|
||||||
and then not Is_Eliminated (Corresponding_Spec (Op_Body))
|
and then not Is_Eliminated (Corresponding_Spec (Op_Body))
|
||||||
@ -7803,9 +7808,7 @@ package body Exp_Ch9 is
|
|||||||
Comp := First (Visible_Declarations (Pdef));
|
Comp := First (Visible_Declarations (Pdef));
|
||||||
|
|
||||||
while Present (Comp) loop
|
while Present (Comp) loop
|
||||||
if Nkind (Comp) = N_Subprogram_Declaration
|
if Nkind (Comp) = N_Subprogram_Declaration then
|
||||||
and then not Is_Eliminated (Defining_Entity (Comp))
|
|
||||||
then
|
|
||||||
Sub :=
|
Sub :=
|
||||||
Make_Subprogram_Declaration (Loc,
|
Make_Subprogram_Declaration (Loc,
|
||||||
Specification =>
|
Specification =>
|
||||||
|
@ -732,7 +732,7 @@ begin
|
|||||||
Namet.Lock;
|
Namet.Lock;
|
||||||
Stringt.Lock;
|
Stringt.Lock;
|
||||||
|
|
||||||
Check_Library_Items; -- For debugging
|
pragma Debug (Check_Library_Items);
|
||||||
|
|
||||||
-- Here we call the back end to generate the output code
|
-- Here we call the back end to generate the output code
|
||||||
|
|
||||||
|
@ -75,4 +75,10 @@ package System.VxWorks.Ext is
|
|||||||
function Set_Time_Slice (ticks : int) return int;
|
function Set_Time_Slice (ticks : int) return int;
|
||||||
pragma Import (C, Set_Time_Slice, "kernelTimeSlice");
|
pragma Import (C, Set_Time_Slice, "kernelTimeSlice");
|
||||||
|
|
||||||
|
type UINT64 is mod 2 ** Long_Long_Integer'Size;
|
||||||
|
|
||||||
|
function tickGet return UINT64;
|
||||||
|
-- "tickGet" not available for cert vThreads:
|
||||||
|
pragma Import (C, tickGet, "tick64Get");
|
||||||
|
|
||||||
end System.VxWorks.Ext;
|
end System.VxWorks.Ext;
|
||||||
|
Loading…
Reference in New Issue
Block a user