Commit 100a5d66 by Arnaud Charlet

Replace heavy address clause by 'Unrestricted_Access...

Replace heavy address clause by 'Unrestricted_Access, cleaner and more portable
across GNAT targets, since this kind of address clause is not supported by
VM back-ends (.NET/JGNAT).

From-SVN: r136020
parent ea9fba99
......@@ -147,11 +147,8 @@ package body Ada.Text_IO is
-----------
procedure Close (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Close (AFCB'Access);
FIO.Close (AP (File)'Unrestricted_Access);
end Close;
---------
......@@ -249,11 +246,8 @@ package body Ada.Text_IO is
------------
procedure Delete (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Delete (AFCB'Access);
FIO.Delete (AP (File)'Unrestricted_Access);
end Delete;
-----------------
......@@ -1579,9 +1573,6 @@ package body Ada.Text_IO is
(File : in out File_Type;
Mode : File_Mode)
is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
-- Don't allow change of mode for current file (RM A.10.2(5))
......@@ -1594,7 +1585,7 @@ package body Ada.Text_IO is
end if;
Terminate_Line (File);
FIO.Reset (AFCB'Access, To_FCB (Mode));
FIO.Reset (AP (File)'Unrestricted_Access, To_FCB (Mode));
File.Page := 1;
File.Line := 1;
File.Col := 1;
......@@ -1605,12 +1596,9 @@ package body Ada.Text_IO is
end Reset;
procedure Reset (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
Terminate_Line (File);
FIO.Reset (AFCB'Access);
FIO.Reset (AP (File)'Unrestricted_Access);
File.Page := 1;
File.Line := 1;
File.Col := 1;
......
......@@ -133,11 +133,8 @@ package body Ada.Wide_Text_IO is
-----------
procedure Close (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Close (AFCB'Access);
FIO.Close (AP (File)'Unrestricted_Access);
end Close;
---------
......@@ -235,11 +232,8 @@ package body Ada.Wide_Text_IO is
------------
procedure Delete (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Delete (AFCB'Access);
FIO.Delete (AP (File)'Unrestricted_Access);
end Delete;
-----------------
......@@ -1314,9 +1308,6 @@ package body Ada.Wide_Text_IO is
(File : in out File_Type;
Mode : File_Mode)
is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
-- Don't allow change of mode for current file (RM A.10.2(5))
......@@ -1329,7 +1320,7 @@ package body Ada.Wide_Text_IO is
end if;
Terminate_Line (File);
FIO.Reset (AFCB'Access, To_FCB (Mode));
FIO.Reset (AP (File)'Unrestricted_Access, To_FCB (Mode));
File.Page := 1;
File.Line := 1;
File.Col := 1;
......@@ -1340,12 +1331,9 @@ package body Ada.Wide_Text_IO is
end Reset;
procedure Reset (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
Terminate_Line (File);
FIO.Reset (AFCB'Access);
FIO.Reset (AP (File)'Unrestricted_Access);
File.Page := 1;
File.Line := 1;
File.Col := 1;
......
......@@ -133,11 +133,8 @@ package body Ada.Wide_Wide_Text_IO is
-----------
procedure Close (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Close (AFCB'Access);
FIO.Close (AP (File)'Unrestricted_Access);
end Close;
---------
......@@ -235,11 +232,8 @@ package body Ada.Wide_Wide_Text_IO is
------------
procedure Delete (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
FIO.Delete (AFCB'Access);
FIO.Delete (AP (File)'Unrestricted_Access);
end Delete;
-----------------
......@@ -1314,9 +1308,6 @@ package body Ada.Wide_Wide_Text_IO is
(File : in out File_Type;
Mode : File_Mode)
is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
-- Don't allow change of mode for current file (RM A.10.2(5))
......@@ -1329,7 +1320,7 @@ package body Ada.Wide_Wide_Text_IO is
end if;
Terminate_Line (File);
FIO.Reset (AFCB'Access, To_FCB (Mode));
FIO.Reset (AP (File)'Unrestricted_Access, To_FCB (Mode));
File.Page := 1;
File.Line := 1;
File.Col := 1;
......@@ -1340,12 +1331,9 @@ package body Ada.Wide_Wide_Text_IO is
end Reset;
procedure Reset (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
begin
Terminate_Line (File);
FIO.Reset (AFCB'Access);
FIO.Reset (AP (File)'Unrestricted_Access);
File.Page := 1;
File.Line := 1;
File.Col := 1;
......
......@@ -251,21 +251,17 @@ package body System.Direct_IO is
-----------
procedure Reset (File : in out File_Type; Mode : FCB.File_Mode) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
pragma Unmodified (File);
begin
FIO.Reset (AFCB'Access, Mode);
FIO.Reset (AP (File)'Unrestricted_Access, Mode);
File.Index := 1;
File.Last_Op := Op_Read;
end Reset;
procedure Reset (File : in out File_Type) is
AFCB : aliased AP;
for AFCB'Address use File'Address;
pragma Import (Ada, AFCB);
pragma Unmodified (File);
begin
FIO.Reset (AFCB'Access);
FIO.Reset (AP (File)'Unrestricted_Access);
File.Index := 1;
File.Last_Op := Op_Read;
end Reset;
......
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