[multiple changes]
2011-12-12 Robert Dewar <dewar@adacore.com> * sem_ch6.adb, gnatls.adb: Minor reformatting. 2011-12-12 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Entity): If a type declared in a generic context has predicates, generate a freeze node for it. * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression has not been analyzed yet, entity has not been frozen, so analyze it now. 2011-12-12 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Make_VM_TSD): Generate code to store the value 'alignment in the TSD. 2011-12-12 Bob Duff <duff@adacore.com> * s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D mode. From-SVN: r182240
This commit is contained in:
parent
ad5a445d3e
commit
e876c43ae1
@ -1,3 +1,25 @@
|
||||
2011-12-12 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* sem_ch6.adb, gnatls.adb: Minor reformatting.
|
||||
|
||||
2011-12-12 Ed Schonberg <schonberg@adacore.com>
|
||||
|
||||
* freeze.adb (Freeze_Entity): If a type declared in a generic
|
||||
context has predicates, generate a freeze node for it.
|
||||
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
|
||||
has not been analyzed yet, entity has not been frozen, so analyze
|
||||
it now.
|
||||
|
||||
2011-12-12 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* exp_disp.adb (Make_VM_TSD): Generate code
|
||||
to store the value 'alignment in the TSD.
|
||||
|
||||
2011-12-12 Bob Duff <duff@adacore.com>
|
||||
|
||||
* s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
|
||||
mode.
|
||||
|
||||
2011-12-12 Hristian Kirtchev <kirtchev@adacore.com>
|
||||
|
||||
* exp_ch4.adb (Expand_N_Allocator): Update the master of an
|
||||
|
@ -6458,6 +6458,7 @@ package body Exp_Disp is
|
||||
-- (Idepth => I_Depth,
|
||||
-- Tag_Kind => <tag_kind-value>,
|
||||
-- Access_Level => Type_Access_Level (Typ),
|
||||
-- Alignment => Typ'Alignment,
|
||||
-- HT_Link => null,
|
||||
-- Type_Is_Abstract => <<boolean-value>>,
|
||||
-- Type_Is_Library_Level => <<boolean-value>>,
|
||||
@ -6508,6 +6509,13 @@ package body Exp_Disp is
|
||||
Append_To (TSD_Aggr_List,
|
||||
Make_Integer_Literal (Loc, Type_Access_Level (Typ)));
|
||||
|
||||
-- Alignment
|
||||
|
||||
Append_To (TSD_Aggr_List,
|
||||
Make_Attribute_Reference (Loc,
|
||||
Prefix => New_Reference_To (Typ, Loc),
|
||||
Attribute_Name => Name_Alignment));
|
||||
|
||||
-- HT_Link
|
||||
|
||||
Append_To (TSD_Aggr_List,
|
||||
|
@ -3040,8 +3040,13 @@ package body Freeze is
|
||||
-- nable and used in subsequent checks, so might as well try to
|
||||
-- compute it.
|
||||
|
||||
-- In Ada2012, freeze entities is also used in the front-end to
|
||||
-- trigger the analysis of aspect expressions, so in this case we
|
||||
-- want to continue the freezing process.
|
||||
|
||||
if Present (Scope (E))
|
||||
and then Is_Generic_Unit (Scope (E))
|
||||
and then not Has_Predicates (E)
|
||||
then
|
||||
Check_Compile_Time_Size (E);
|
||||
return No_List;
|
||||
|
@ -1232,6 +1232,7 @@ procedure Gnatls is
|
||||
-- Add the lib subdirectory if it exists
|
||||
|
||||
Lib_Path := Get_RTS_Search_Dir (Name, Objects);
|
||||
|
||||
if Lib_Path /= null then
|
||||
Add_Search_Dirs (Lib_Path, Objects);
|
||||
end if;
|
||||
|
@ -126,9 +126,6 @@ package body System.Task_Primitives.Operations is
|
||||
Foreign_Task_Elaborated : aliased Boolean := True;
|
||||
-- Used to identified fake tasks (i.e., non-Ada Threads)
|
||||
|
||||
Annex_D : Boolean := False;
|
||||
-- Set to True if running with Annex-D semantics
|
||||
|
||||
Null_Thread_Id : constant Thread_Id := 0;
|
||||
-- Constant to indicate that the thread identifier has not yet been
|
||||
-- initialized.
|
||||
@ -700,20 +697,9 @@ package body System.Task_Primitives.Operations is
|
||||
-----------
|
||||
|
||||
procedure Yield (Do_Yield : Boolean := True) is
|
||||
pragma Unreferenced (Do_Yield);
|
||||
begin
|
||||
if Do_Yield then
|
||||
SwitchToThread;
|
||||
|
||||
elsif Annex_D then
|
||||
-- If running with Annex-D semantics we need a delay
|
||||
-- above 0 milliseconds here otherwise processes give
|
||||
-- enough time to the other tasks to have a chance to
|
||||
-- run.
|
||||
--
|
||||
-- This makes cxd8002 ACATS pass on Windows.
|
||||
|
||||
Sleep (1);
|
||||
end if;
|
||||
SwitchToThread;
|
||||
end Yield;
|
||||
|
||||
------------------
|
||||
@ -1076,8 +1062,6 @@ package body System.Task_Primitives.Operations is
|
||||
|
||||
Discard := OS_Interface.SetPriorityClass
|
||||
(GetCurrentProcess, Realtime_Priority_Class);
|
||||
|
||||
Annex_D := True;
|
||||
end if;
|
||||
|
||||
TlsIndex := TlsAlloc;
|
||||
|
@ -5880,11 +5880,11 @@ package body Sem_Ch13 is
|
||||
-- All other cases
|
||||
|
||||
else
|
||||
-- In a generic context freeze nodes are not generated, and the
|
||||
-- aspect expressions have not been preanalyzed, so do it now.
|
||||
-- In a generic context the aspect expressions have not been
|
||||
-- preanalyzed, so do it now.
|
||||
-- There are no conformance checks to perform in this case.
|
||||
|
||||
if No (T) and then Inside_A_Generic then
|
||||
if No (T) then
|
||||
Check_Aspect_At_Freeze_Point (ASN);
|
||||
return;
|
||||
else
|
||||
|
@ -367,8 +367,8 @@ package body Sem_Ch6 is
|
||||
-- on later entities.
|
||||
|
||||
declare
|
||||
Decls : List_Id := List_Containing (N);
|
||||
Par : constant Node_Id := Parent (Decls);
|
||||
Decls : List_Id := List_Containing (N);
|
||||
Par : constant Node_Id := Parent (Decls);
|
||||
Id : constant Entity_Id := Defining_Entity (New_Decl);
|
||||
|
||||
begin
|
||||
@ -385,7 +385,6 @@ package body Sem_Ch6 is
|
||||
Install_Formals (Id);
|
||||
Preanalyze_Spec_Expression (Expression (Ret), Etype (Id));
|
||||
End_Scope;
|
||||
|
||||
end;
|
||||
end if;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user