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