+2015-11-13 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch9.adb, exp_fixd.adb, exp_util.adb, g-debpoo.adb,
+ impunit.adb, scos.ads, sem_ch4.adb, sem_prag.adb,
+ s-stchop-vxworks.adb: Minor reformatting.
+
+2015-11-13 Tristan Gingold <gingold@adacore.com>
+
+ * s-rident.ads (Profile_Info): Enable Pure_Barriers for
+ GNAT_Extended_Ravenscar.
+
+2015-11-13 Bob Duff <duff@adacore.com>
+
+ * sem_ch6.adb (Check_Private_Overriding): Detect the special
+ case where the overriding subprogram is overriding a subprogram
+ that was declared in the same private part.
+
2015-11-13 Gary Dismukes <dismukes@adacore.com>
* exp_ch9.adb: Minor reformatting and typo fixes.
function Is_Simple_Barrier_Name (N : Node_Id) return Boolean is
Renamed : Node_Id;
- begin
- if not Expander_Active then
- return Scope (Entity (N)) = Current_Scope;
+ begin
-- Check for case of _object.all.field (note that the explicit
-- dereference gets inserted by analyze/expand of _object.field).
- else
+ if Expander_Active then
Renamed := Renamed_Object (Entity (N));
- return Present (Renamed)
- and then Nkind (Renamed) = N_Selected_Component
- and then Chars (Prefix (Prefix (Renamed))) = Name_uObject;
+
+ return
+ Present (Renamed)
+ and then Nkind (Renamed) = N_Selected_Component
+ and then Chars (Prefix (Prefix (Renamed))) = Name_uObject;
+ else
+ return Scope (Entity (N)) = Current_Scope;
end if;
end Is_Simple_Barrier_Name;
function Is_Pure_Barrier (N : Node_Id) return Traverse_Result is
begin
case Nkind (N) is
- when N_Identifier
- | N_Expanded_Name =>
-
+ when N_Expanded_Name |
+ N_Identifier =>
if No (Entity (N)) then
return Abandon;
end if;
case Ekind (Entity (N)) is
- when E_Constant
- | E_Discriminant
- | E_Named_Integer
- | E_Named_Real
- | E_Enumeration_Literal =>
+ when E_Constant |
+ E_Discriminant |
+ E_Named_Integer |
+ E_Named_Real |
+ E_Enumeration_Literal =>
return OK;
when E_Variable =>
null;
end case;
- when N_Integer_Literal
- | N_Real_Literal
- | N_Character_Literal =>
+ when N_Integer_Literal |
+ N_Real_Literal |
+ N_Character_Literal =>
return OK;
- when N_Op_Boolean
- | N_Op_Not =>
+ when N_Op_Boolean |
+ N_Op_Not =>
if Ekind (Entity (N)) = E_Operator then
return OK;
end if;
-- result cases, and faster.
procedure Expand_Convert_Float_To_Fixed (N : Node_Id) is
- Rng_Check : constant Boolean := Do_Range_Check (N);
Expr : constant Node_Id := Expression (N);
+ Orig_N : constant Node_Id := Original_Node (N);
Result_Type : constant Entity_Id := Etype (N);
+ Rng_Check : constant Boolean := Do_Range_Check (N);
Small : constant Ureal := Small_Value (Result_Type);
Truncate : Boolean;
if Small = Ureal_1 then
Set_Result (N, Expr, Rng_Check, Trunc => True);
- -- Normal case where multiply is required
- -- Rounding is truncating for decimal fixed point types only,
- -- see RM 4.6(29), except if the conversion comes from an attribute
- -- reference 'Round (RM 3.5.10 (14)): The attribute is implemented
- -- by means of a conversion that must round.
+ -- Normal case where multiply is required. Rounding is truncating
+ -- for decimal fixed point types only, see RM 4.6(29), except if the
+ -- conversion comes from an attribute reference 'Round (RM 3.5.10 (14)):
+ -- The attribute is implemented by means of a conversion that must
+ -- round.
else
if Is_Decimal_Fixed_Point_Type (Result_Type) then
- Truncate := Nkind (Original_Node (N)) /= N_Attribute_Reference
- or else Get_Attribute_Id (Attribute_Name (Original_Node (N)))
- /= Attribute_Round;
+ Truncate :=
+ Nkind (Orig_N) /= N_Attribute_Reference
+ or else Get_Attribute_Id
+ (Attribute_Name (Orig_N)) /= Attribute_Round;
else
Truncate := False;
end if;
- Set_Result (N,
- Build_Multiply (N,
- Fpt_Value (Expr),
- Real_Literal (N, Ureal_1 / Small)),
- Rng_Check,
- Trunc => Truncate);
+ Set_Result
+ (N => N,
+ Expr =>
+ Build_Multiply
+ (N => N,
+ L => Fpt_Value (Expr),
+ R => Real_Literal (N, Ureal_1 / Small)),
+ Rchk => Rng_Check,
+ Trunc => Truncate);
end if;
end Expand_Convert_Float_To_Fixed;
function Containing_Package_With_Ext_Axioms
(E : Entity_Id) return Entity_Id
is
+ Decl : Node_Id;
First_Ax_Parent_Scope : Entity_Id;
- Decl : Node_Id;
begin
-- E is the package or generic package which is externally axiomatized
with GNAT.IO; use GNAT.IO;
-with System.Address_Image;
with System.CRTL;
with System.Memory; use System.Memory;
with System.Soft_Links; use System.Soft_Links;
with System.Traceback_Entries;
+with GNAT.Debug_Utilities; use GNAT.Debug_Utilities;
with GNAT.HTable;
with GNAT.Traceback; use GNAT.Traceback;
-- data, and does not include the header of that block.
end record;
- function Header_Of (Address : System.Address)
- return Allocation_Header_Access;
+ function Header_Of
+ (Address : System.Address) return Allocation_Header_Access;
pragma Inline (Header_Of);
-- Return the header corresponding to a previously allocated address
-- up to the first one in the range:
-- Ignored_Frame_Start .. Ignored_Frame_End
- procedure Stdout_Put (S : String);
+ procedure Stdout_Put (S : String);
-- Wrapper for Put that ensures we always write to stdout instead of the
-- current output file defined in GNAT.IO.
(Output_File : File_Type;
Prefix : String;
Traceback : Traceback_Htable_Elem_Ptr);
- -- Output Prefix & Traceback & EOL.
- -- Print nothing if Traceback is null.
+ -- Output Prefix & Traceback & EOL. Print nothing if Traceback is null.
procedure Print_Address (File : File_Type; Addr : Address);
-- Output System.Address without using secondary stack.
-------------------
procedure Print_Address (File : File_Type; Addr : Address) is
- type My_Address is mod Memory_Size;
- function To_My_Address is new Ada.Unchecked_Conversion
- (System.Address, My_Address);
- Address_To_Print : My_Address := To_My_Address (Addr);
- type Hexadecimal_Element is range 0 .. 15;
- Hexadecimal_Characters : constant array
- (Hexadecimal_Element) of Character :=
- ('0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
- pragma Warnings
- (Off, "types for unchecked conversion have different sizes");
- function To_Hexadecimal_Element is new Ada.Unchecked_Conversion
- (My_Address, Hexadecimal_Element);
- pragma Warnings
- (On, "types for unchecked conversion have different sizes");
- Number_Of_Hexadecimal_Characters_In_Address : constant Natural :=
- Standard'Address_Size / 4;
- type Hexadecimal_Elements_Range is
- range 1 .. Number_Of_Hexadecimal_Characters_In_Address;
- Hexadecimal_Elements : array (Hexadecimal_Elements_Range) of
- Hexadecimal_Element;
begin
- for Index in Hexadecimal_Elements_Range loop
- Hexadecimal_Elements (Index) :=
- To_Hexadecimal_Element (Address_To_Print mod 16);
- Address_To_Print := Address_To_Print / 16;
- end loop;
- Put (File, "0x");
- for Index in reverse Hexadecimal_Elements_Range loop
- Put (File, Hexadecimal_Characters (Hexadecimal_Elements (Index)));
- end loop;
+ -- Warning: secondary stack cannot be used here. When System.Memory
+ -- implementation uses Debug_Pool, Print_Address can be called during
+ -- secondary stack creation for foreign threads.
+ Put (File, Image_C (Addr));
end Print_Address;
--------------
begin
if Traceback = null then
declare
- Tr : aliased Tracebacks_Array (1 .. Depth + Max_Ignored_Levels);
- Start, Len : Natural;
+ Len : Natural;
+ Start : Natural;
+ Trace : aliased Tracebacks_Array (1 .. Depth + Max_Ignored_Levels);
begin
- Call_Chain (Tr, Len);
- Skip_Levels (Depth, Tr, Start, Len,
- Ignored_Frame_Start, Ignored_Frame_End);
- Print (Tr (Start .. Len));
+ Call_Chain (Trace, Len);
+ Skip_Levels
+ (Depth => Depth,
+ Trace => Trace,
+ Start => Start,
+ Len => Len,
+ Ignored_Frame_Start => Ignored_Frame_Start,
+ Ignored_Frame_End => Ignored_Frame_End);
+ Print (Trace (Start .. Len));
end;
else
declare
Disable_Exit_Value : constant Boolean := Disable;
- Trace : aliased Tracebacks_Array
- (1 .. Integer (Pool.Stack_Trace_Depth) + Max_Ignored_Levels);
- Len, Start : Natural;
+
Elem : Traceback_Htable_Elem_Ptr;
+ Len : Natural;
+ Start : Natural;
+ Trace : aliased Tracebacks_Array
+ (1 .. Integer (Pool.Stack_Trace_Depth) +
+ Max_Ignored_Levels);
begin
Disable := True;
Call_Chain (Trace, Len);
- Skip_Levels (Pool.Stack_Trace_Depth, Trace, Start, Len,
- Ignored_Frame_Start, Ignored_Frame_End);
+ Skip_Levels
+ (Depth => Pool.Stack_Trace_Depth,
+ Trace => Trace,
+ Start => Start,
+ Len => Len,
+ Ignored_Frame_Start => Ignored_Frame_Start,
+ Ignored_Frame_End => Ignored_Frame_End);
-- Check if the traceback is already in the table
-- If not, insert it
if Elem = null then
- Elem := new Traceback_Htable_Elem'
- (Traceback => new Tracebacks_Array'(Trace (Start .. Len)),
- Count => 1,
- Kind => Kind,
- Total => Byte_Count (Size),
- Frees => 0,
- Total_Frees => 0,
- Next => null);
+ Elem :=
+ new Traceback_Htable_Elem'
+ (Traceback =>
+ new Tracebacks_Array'(Trace (Start .. Len)),
+ Count => 1,
+ Kind => Kind,
+ Total => Byte_Count (Size),
+ Frees => 0,
+ Total_Frees => 0,
+ Next => null);
Backtrace_Htable.Set (Elem);
else
Validity_Divisor : constant := Storage_Alignment * System.Storage_Unit;
Max_Validity_Byte_Index : constant :=
- Memory_Chunk_Size / Validity_Divisor;
+ Memory_Chunk_Size / Validity_Divisor;
- subtype Validity_Byte_Index is Integer_Address
- range 0 .. Max_Validity_Byte_Index - 1;
+ subtype Validity_Byte_Index is
+ Integer_Address range 0 .. Max_Validity_Byte_Index - 1;
type Byte is mod 2 ** System.Storage_Unit;
if Allow_Unhandled_Memory then
if Ptr.Handled = No_Validity_Bits_Part then
Ptr.Handled :=
- To_Pointer (Alloc (size_t (Max_Validity_Byte_Index)));
- Memset (Ptr.Handled.all'Address, 0,
- size_t (Max_Validity_Byte_Index));
+ To_Pointer (Alloc (size_t (Max_Validity_Byte_Index)));
+ Memset
+ (A => Ptr.Handled.all'Address,
+ C => 0,
+ N => size_t (Max_Validity_Byte_Index));
end if;
+
Ptr.Handled (Offset / System.Storage_Unit) :=
- Ptr.Handled (Offset / System.Storage_Unit) or Bit;
+ Ptr.Handled (Offset / System.Storage_Unit) or Bit;
end if;
end Set_Handled;
+ -- Start of processing for Set_Valid
+
begin
if Ptr = No_Validity_Bits then
if Value then
Ptr := new Validity_Bits;
Ptr.Valid :=
- To_Pointer (Alloc (size_t (Max_Validity_Byte_Index)));
+ To_Pointer (Alloc (size_t (Max_Validity_Byte_Index)));
Validy_Htable.Set (Block_Number, Ptr);
- Memset (Ptr.Valid.all'Address, 0,
- size_t (Max_Validity_Byte_Index));
+ Memset
+ (A => Ptr.Valid.all'Address,
+ C => 0,
+ N => size_t (Max_Validity_Byte_Index));
Ptr.Valid (Offset / System.Storage_Unit) := Bit;
Set_Handled;
end if;
end if;
end if;
end Set_Valid;
-
end Validity;
--------------
Size_In_Storage_Elements : Storage_Count;
Alignment : Storage_Count)
is
-
pragma Unreferenced (Alignment);
-- Ignored, we always force Storage_Alignment
-- which is expensive.
if Pool.Logically_Deallocated >
- Byte_Count (Pool.Maximum_Logically_Freed_Memory)
+ Byte_Count (Pool.Maximum_Logically_Freed_Memory)
then
Free_Physically (Pool);
end if;
-- For the purpose of computing Storage_Address, we just do as if the
-- header was located first, followed by the alignment padding:
- Storage_Address := To_Address
- (Align (To_Integer (P.all'Address) + Integer_Address (Header_Offset)));
+ Storage_Address :=
+ To_Address (Align (To_Integer (P.all'Address) +
+ Integer_Address (Header_Offset)));
-- Computation is done in Integer_Address, not Storage_Offset, because
-- the range of Storage_Offset may not be large enough.
pragma Assert (Storage_Address + Size_In_Storage_Elements
<= P.all'Address + P'Length);
- Trace := Find_Or_Create_Traceback
- (Pool, Alloc, Size_In_Storage_Elements,
- Allocate_Label'Address, Code_Address_For_Allocate_End);
+ Trace :=
+ Find_Or_Create_Traceback
+ (Pool => Pool,
+ Kind => Alloc,
+ Size => Size_In_Storage_Elements,
+ Ignored_Frame_Start => Allocate_Label'Address,
+ Ignored_Frame_End => Code_Address_For_Allocate_End);
pragma Warnings (Off);
-- Turn warning on alignment for convert call off. We know that in fact
Byte_Count'Image (Data.Total) & ") ");
for T in Data.Traceback'Range loop
- Put ("0x" & Address_Image (PC_For (Data.Traceback (T))) & ' ');
+ Put (Image_C (PC_For (Data.Traceback (T))) & ' ');
end loop;
Put_Line ("");
if Header.Alloc_Traceback /= null then
for T in Header.Alloc_Traceback.Traceback'Range loop
- Put ("0x" & Address_Image
+ Put (Image_C
(PC_For (Header.Alloc_Traceback.Traceback (T))) & ' ');
end loop;
end if;
end;
for J in Max (M).Traceback'Range loop
- Put (" 0x" & Address_Image (PC_For (Max (M).Traceback (J))));
+ Put (Image_C (PC_For (Max (M).Traceback (J))));
end loop;
New_Line;
-- Ada/System/Interfaces are all Ada 95 units
if File = "ada.ads"
- or else File = "system.ads"
or else File = "interfac.ads"
+ or else File = "system.ads"
then
return Ada_95_Unit;
end if;
-- Only remaining special possibilities are children of System.RPC and
-- System.Garlic and special files of the form System.Aux...
- if File (1 .. 5) = "s-rpc"
+ if File (1 .. 5) = "s-aux"
or else File (1 .. 5) = "s-gar"
- or else File (1 .. 5) = "s-aux"
+ or else File (1 .. 5) = "s-rpc"
then
return Ada_95_Unit;
end if;
No_Select_Statements => True,
No_Specific_Termination_Handlers => True,
No_Task_Termination => True,
- Simple_Barriers => True,
+ Pure_Barriers => True,
others => False),
-- Value settings for Ravenscar (same as Restricted)
Get_Stack_Info (Stack_Info'Access);
if Stack_Grows_Down then
- Limit := Stack_Info.Base - Storage_Offset (Stack_Info.Size)
- + Storage_Offset'(16#12_000#);
+ Limit :=
+ Stack_Info.Base - Storage_Offset (Stack_Info.Size) +
+ Storage_Offset'(16#12_000#);
else
- Limit := Stack_Info.Base + Storage_Offset (Stack_Info.Size)
- - Storage_Offset'(16#12_000#);
+ Limit :=
+ Stack_Info.Base + Storage_Offset (Stack_Info.Size) -
+ Storage_Offset'(16#12_000#);
end if;
Stack_Limit := Limit;
-
end Set_Stack_Limit_For_Current_Task;
end System.Stack_Checking.Operations;
end record;
No_Source_Location : constant Source_Location :=
- (No_Line_Number, No_Column_Number);
+ (No_Line_Number, No_Column_Number);
type SCO_Table_Entry is record
From : Source_Location := No_Source_Location;
Get_Next_Interp (I, It);
end loop;
- -- If no valid interpretation has been found, then the type of
- -- the ELSE expression does not match any interpretation of
- -- the THEN expression.
+ -- If no valid interpretation has been found, then the type of the
+ -- ELSE expression does not match any interpretation of the THEN
+ -- expression.
if Etype (N) = Any_Type then
Error_Msg_N
and then not Is_Entity_Name (Name)
and then Nkind (Name) /= N_Explicit_Dereference
then
- Error_Msg_NE ("invalid reference to internal operation "
- & "of some object of type&", N, Type_To_Use);
+ Error_Msg_NE
+ ("invalid reference to internal operation of some object of "
+ & "type &", N, Type_To_Use);
Set_Entity (Sel, Any_Id);
- Set_Etype (Sel, Any_Type);
+ Set_Etype (Sel, Any_Type);
return;
end if;
-- visible entities are plausible interpretations, check whether
-- there is some other primitive operation with that name.
- if Ada_Version >= Ada_2005
- and then Is_Tagged_Type (Prefix_Type)
- then
+ if Ada_Version >= Ada_2005 and then Is_Tagged_Type (Prefix_Type) then
if (Etype (N) = Any_Type
or else not Has_Candidate)
and then Try_Object_Operation (N)
if Has_Candidate
and then Is_Concurrent_Type (Prefix_Type)
and then Nkind (Parent (N)) = N_Procedure_Call_Statement
-
+ then
-- Duplicate the call. This is required to avoid problems with
-- the tree transformations performed by Try_Object_Operation.
-- Set properly the parent of the copied call, because it is
-- about to be reanalyzed.
- then
declare
Par : constant Node_Id := New_Copy_Tree (Parent (N));
Nam : constant Entity_Id := Current_Entity (Sel);
begin
- if Present (Nam)
- and then Is_Overloadable (Nam)
- then
- if Nkind (Parent (Parent (Par)))
- = N_Procedure_Call_Statement
+ if Present (Nam) and then Is_Overloadable (Nam) then
+ if Nkind (Parent (Parent (Par))) =
+ N_Procedure_Call_Statement
then
return False;
- else
- if Ekind (Nam) = E_Function
- and then Present (First_Formal (Nam))
- then
- return Ekind (First_Formal (Nam)) = E_In_Parameter;
- end if;
+ elsif Ekind (Nam) = E_Function
+ and then Present (First_Formal (Nam))
+ then
+ return Ekind (First_Formal (Nam)) = E_In_Parameter;
end if;
end if;
end;
-- True if S overrides a function in the visible part. The
-- overridden function could be explicitly or implicitly declared.
+ function Parent_Is_Private return Boolean;
+ -- This detects the special case where the overriding subprogram
+ -- is overriding a subprogram that was declared in the same
+ -- private part. That case is illegal by 3.9.3(10).
+
function Overrides_Visible_Function
(Partial_View : Entity_Id) return Boolean
is
return False;
end Overrides_Visible_Function;
+ function Parent_Is_Private return Boolean is
+ S_Decl : constant Node_Id := Parent (Parent (S));
+ Overridden_Decl : constant Node_Id :=
+ Parent (Parent (Overridden_Operation (S)));
+ begin
+ return In_Same_List (Overridden_Decl, S_Decl);
+ end Parent_Is_Private;
+
-- Start of processing for Check_Private_Overriding
begin
if Is_Abstract_Type (T)
and then Is_Abstract_Subprogram (S)
and then (not Is_Overriding
- or else not Is_Abstract_Subprogram (E))
+ or else not Is_Abstract_Subprogram (E)
+ or else Parent_Is_Private)
then
Error_Msg_N ("abstract subprograms must be visible "
- & "(RM 3.9.3(10))!", S);
+ & "(RM 3.9.3(10))!", S);
elsif Ekind (S) = E_Function then
declare
-- No_Dependence => System.Multiprocessors.Dispatching_Domains
procedure Set_Ravenscar_Profile (Profile : Profile_Name; N : Node_Id) is
- Prefix_Entity : Entity_Id;
- Selector_Entity : Entity_Id;
- Prefix_Node : Node_Id;
- Node : Node_Id;
-
procedure Set_Error_Msg_To_Profile_Name;
-- Set Error_Msg_String and Error_Msg_Strlen to the name of the
-- profile.
-----------------------------------
procedure Set_Error_Msg_To_Profile_Name is
- Pragma_Args : constant List_Id :=
- Pragma_Argument_Associations (N);
- Profile_Name : constant Node_Id :=
- Get_Pragma_Arg (First (Pragma_Args));
+ Prof_Nam : constant Node_Id :=
+ Get_Pragma_Arg
+ (First (Pragma_Argument_Associations (N)));
+
begin
- Get_Name_String (Chars (Profile_Name));
- Adjust_Name_Case (Sloc (Profile_Name));
+ Get_Name_String (Chars (Prof_Nam));
+ Adjust_Name_Case (Sloc (Prof_Nam));
Error_Msg_Strlen := Name_Len;
Error_Msg_String (1 .. Name_Len) := Name_Buffer (1 .. Name_Len);
end Set_Error_Msg_To_Profile_Name;
+
+ -- Local variables
+
+ Nod : Node_Id;
+ Pref : Node_Id;
+ Pref_Id : Node_Id;
+ Sel_Id : Node_Id;
+
+ -- Start of processing for Set_Ravenscar_Profile
+
begin
-- pragma Task_Dispatching_Policy (FIFO_Within_Priorities)
-- No_Dependence => Ada.Execution_Time.Group_Budget
-- No_Dependence => Ada.Execution_Time.Timers
+ -- ??? The use of Name_Buffer here is suspicious. The names should
+ -- be registered in snames.ads-tmpl and used to build the qualified
+ -- names of units.
+
if Ada_Version >= Ada_2005 then
Name_Buffer (1 .. 3) := "ada";
Name_Len := 3;
- Prefix_Entity := Make_Identifier (Loc, Name_Find);
+ Pref_Id := Make_Identifier (Loc, Name_Find);
Name_Buffer (1 .. 14) := "execution_time";
Name_Len := 14;
- Selector_Entity := Make_Identifier (Loc, Name_Find);
+ Sel_Id := Make_Identifier (Loc, Name_Find);
- Prefix_Node :=
+ Pref :=
Make_Selected_Component
(Sloc => Loc,
- Prefix => Prefix_Entity,
- Selector_Name => Selector_Entity);
+ Prefix => Pref_Id,
+ Selector_Name => Sel_Id);
Name_Buffer (1 .. 13) := "group_budgets";
Name_Len := 13;
- Selector_Entity := Make_Identifier (Loc, Name_Find);
+ Sel_Id := Make_Identifier (Loc, Name_Find);
- Node :=
+ Nod :=
Make_Selected_Component
(Sloc => Loc,
- Prefix => Prefix_Node,
- Selector_Name => Selector_Entity);
+ Prefix => Pref,
+ Selector_Name => Sel_Id);
Set_Restriction_No_Dependence
- (Unit => Node,
+ (Unit => Nod,
Warn => Treat_Restrictions_As_Warnings,
Profile => Ravenscar);
Name_Buffer (1 .. 6) := "timers";
Name_Len := 6;
- Selector_Entity := Make_Identifier (Loc, Name_Find);
+ Sel_Id := Make_Identifier (Loc, Name_Find);
- Node :=
+ Nod :=
Make_Selected_Component
(Sloc => Loc,
- Prefix => Prefix_Node,
- Selector_Name => Selector_Entity);
+ Prefix => Pref,
+ Selector_Name => Sel_Id);
Set_Restriction_No_Dependence
- (Unit => Node,
+ (Unit => Nod,
Warn => Treat_Restrictions_As_Warnings,
Profile => Ravenscar);
end if;
Name_Buffer (1 .. 6) := "system";
Name_Len := 6;
- Prefix_Entity := Make_Identifier (Loc, Name_Find);
+ Pref_Id := Make_Identifier (Loc, Name_Find);
Name_Buffer (1 .. 15) := "multiprocessors";
Name_Len := 15;
- Selector_Entity := Make_Identifier (Loc, Name_Find);
+ Sel_Id := Make_Identifier (Loc, Name_Find);
- Prefix_Node :=
+ Pref :=
Make_Selected_Component
(Sloc => Loc,
- Prefix => Prefix_Entity,
- Selector_Name => Selector_Entity);
+ Prefix => Pref_Id,
+ Selector_Name => Sel_Id);
Name_Buffer (1 .. 19) := "dispatching_domains";
Name_Len := 19;
- Selector_Entity := Make_Identifier (Loc, Name_Find);
+ Sel_Id := Make_Identifier (Loc, Name_Find);
- Node :=
+ Nod :=
Make_Selected_Component
(Sloc => Loc,
- Prefix => Prefix_Node,
- Selector_Name => Selector_Entity);
+ Prefix => Pref,
+ Selector_Name => Sel_Id);
Set_Restriction_No_Dependence
- (Unit => Node,
+ (Unit => Nod,
Warn => Treat_Restrictions_As_Warnings,
Profile => Ravenscar);
end if;