This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
committed: Ada updates
- From: Arnaud Charlet <charlet at ACT-Europe dot FR>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 1 Dec 2003 14:30:33 +0100
- Subject: committed: Ada updates
Tested on x86-linux
--
2003-12-01 Nicolas Setton <setton@act-europe.fr>
* a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
so that the debugger can reliably access the value of the parameter,
and therefore is able to display the exception name when an exception
breakpoint is reached.
2003-12-01 Thomas Quinot <quinot@act-europe.fr>
* fmap.adb: Fix typo in warning message.
* g-socket.ads, g-socket.adb: Make Free a visible instance of
Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
2003-12-01 Vincent Celier <celier@gnat.com>
* mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
ther is no Afile.
(Build_Library): Get the switches only if Default_Switches is declared
in package Binder.
2003-12-01 Ed Schonberg <schonberg@gnat.com>
* exp_ch6.adb (Expand_Actuals): When applying validity checks to
actuals that are indexed components, reanalyze actual to ensure that
packed array references are properly expanded.
* sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
attempted assignment to a discriminant.
2003-12-01 Robert Dewar <dewar@gnat.com>
* rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
reformatting.
* switch-c.adb: Minor reformatting of comments
2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
* Makefile.in: Clean ups.
2003-12-01 GNAT Script <nobody@gnat.com>
* Make-lang.in: Makefile automatically updated
--
Index: a-except.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/a-except.adb,v
retrieving revision 1.9
diff -u -p -r1.9 a-except.adb
--- a-except.adb 21 Oct 2003 13:41:53 -0000 1.9
+++ a-except.adb 1 Dec 2003 11:35:59 -0000
@@ -859,6 +859,8 @@ package body Ada.Exceptions is
-------------------------
procedure Raise_Current_Excep (E : Exception_Id) is
+ pragma Inspection_Point (E);
+ -- This is so the debugger can reliably inspect the parameter
begin
Process_Raise_Exception (E => E, From_Signal_Handler => False);
end Raise_Current_Excep;
Index: exp_ch4.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/exp_ch4.adb,v
retrieving revision 1.12
diff -u -p -r1.12 exp_ch4.adb
--- exp_ch4.adb 27 Nov 2003 11:40:45 -0000 1.12
+++ exp_ch4.adb 1 Dec 2003 11:35:59 -0000
@@ -5349,6 +5349,7 @@ package body Exp_Ch4 is
function Is_Procedure_Actual (N : Node_Id) return Boolean is
Par : Node_Id := Parent (N);
+
begin
while Present (Par)
and then Nkind (Par) not in N_Statement_Other_Than_Procedure_Call
@@ -5448,8 +5449,9 @@ package body Exp_Ch4 is
-- with generating the error message).
if not Is_Packed (Typ) then
- -- apply transformation for actuals of a function call, where
- -- Expand_Actuals is not used.
+
+ -- Apply transformation for actuals of a function call,
+ -- where Expand_Actuals is not used.
if Nkind (Parent (N)) = N_Function_Call
and then Is_Possibly_Unaligned_Slice (N)
Index: exp_ch6.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/exp_ch6.adb,v
retrieving revision 1.13
diff -u -p -r1.13 exp_ch6.adb
--- exp_ch6.adb 27 Nov 2003 11:40:45 -0000 1.13
+++ exp_ch6.adb 1 Dec 2003 11:35:59 -0000
@@ -547,8 +547,9 @@ package body Exp_Ch6 is
Var := Make_Var (Expression (Actual));
- Crep := not Same_Representation
- (Etype (Formal), Etype (Expression (Actual)));
+ Crep := not Same_Representation
+ (Etype (Formal), Etype (Expression (Actual)));
+
else
V_Typ := Etype (Actual);
Var := Make_Var (Actual);
@@ -1528,8 +1529,16 @@ package body Exp_Ch6 is
if Validity_Checks_On then
if Ekind (Formal) = E_In_Parameter
and then Validity_Check_In_Params
- and then Is_Entity_Name (Actual)
then
+ -- If the actual is an indexed component of a packed
+ -- type, it has not been expanded yet. It will be
+ -- copied in the validity code that follows, and has
+ -- to be expanded appropriately, so reanalyze it.
+
+ if Nkind (Actual) = N_Indexed_Component then
+ Set_Analyzed (Actual, False);
+ end if;
+
Ensure_Valid (Actual);
elsif Ekind (Formal) = E_In_Out_Parameter
Index: fmap.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/fmap.adb,v
retrieving revision 1.7
diff -u -p -r1.7 fmap.adb
--- fmap.adb 21 Oct 2003 13:41:59 -0000 1.7
+++ fmap.adb 1 Dec 2003 11:35:59 -0000
@@ -292,7 +292,7 @@ package body Fmap is
then
Write_Str ("warning: mapping file """);
Write_Str (File_Name);
- Write_Line (""" is incorrectly formated");
+ Write_Line (""" is incorrectly formatted");
Empty_Tables;
return;
end if;
Index: g-socket.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/g-socket.adb,v
retrieving revision 1.7
diff -u -p -r1.7 g-socket.adb
--- g-socket.adb 27 Nov 2003 11:40:45 -0000 1.7
+++ g-socket.adb 1 Dec 2003 11:35:59 -0000
@@ -34,7 +34,6 @@
with Ada.Streams; use Ada.Streams;
with Ada.Exceptions; use Ada.Exceptions;
with Ada.Unchecked_Conversion;
-with Ada.Unchecked_Deallocation;
with Interfaces.C.Strings;
@@ -777,17 +776,6 @@ package body GNAT.Sockets is
Thin.Finalize;
end if;
end Finalize;
-
- ----------
- -- Free --
- ----------
-
- procedure Free (Stream : in out Stream_Access) is
- procedure Do_Free is new Ada.Unchecked_Deallocation
- (Ada.Streams.Root_Stream_Type'Class, Stream_Access);
- begin
- Do_Free (Stream);
- end Free;
---------
-- Get --
Index: g-socket.ads
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/g-socket.ads,v
retrieving revision 1.8
diff -u -p -r1.8 g-socket.ads
--- g-socket.ads 27 Nov 2003 11:40:45 -0000 1.8
+++ g-socket.ads 1 Dec 2003 11:35:59 -0000
@@ -54,6 +54,7 @@
with Ada.Exceptions;
with Ada.Streams;
+with Ada.Unchecked_Deallocation;
with System;
@@ -902,10 +903,11 @@ package GNAT.Sockets is
-- Return the socket address from which the last message was
-- received.
- procedure Free (Stream : in out Stream_Access);
- -- Destroy a stream created by one of the Stream functions above, and
- -- release associated resources. The user is responsible for calling
- -- this subprogram when the stream is not needed anymore.
+ procedure Free is new Ada.Unchecked_Deallocation
+ (Ada.Streams.Root_Stream_Type'Class, Stream_Access);
+ -- Destroy a stream created by one of the Stream functions above,
+ -- releasing the corresponding resources. The user is responsible
+ -- for calling this subprogram when the stream is not needed anymore.
type Socket_Set_Type is limited private;
-- This type allows to manipulate sets of sockets. It allows to
Index: mlib-prj.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/mlib-prj.adb,v
retrieving revision 1.6
diff -u -p -r1.6 mlib-prj.adb
--- mlib-prj.adb 27 Nov 2003 11:40:45 -0000 1.6
+++ mlib-prj.adb 1 Dec 2003 11:35:59 -0000
@@ -576,7 +576,7 @@ package body MLib.Prj is
for W in Unit_Data.First_With .. Unit_Data.Last_With loop
Afile := Withs.Table (W).Afile;
- if Library_ALIs.Get (Afile)
+ if Afile /= No_Name and then Library_ALIs.Get (Afile)
and then not Processed_ALIs.Get (Afile)
then
if not Interface_ALIs.Get (Afile) then
@@ -811,9 +811,10 @@ package body MLib.Prj is
declare
Binder_Package : constant Package_Id :=
- Value_Of
- (Name => Name_Binder,
- In_Packages => Data.Decl.Packages);
+ Value_Of
+ (Name => Name_Binder,
+ In_Packages => Data.Decl.Packages);
+
begin
if Binder_Package /= No_Package then
declare
@@ -823,20 +824,26 @@ package body MLib.Prj is
In_Arrays =>
Packages.Table
(Binder_Package).Decl.Arrays);
- Switches : Variable_Value :=
- Value_Of
- (Index => Name_Ada, In_Array => Defaults);
+ Switches : Variable_Value := Nil_Variable_Value;
+
Switch : String_List_Id := Nil_String;
- begin
- if not Switches.Default then
- Switch := Switches.Values;
- while Switch /= Nil_String loop
- Add_Argument
- (Get_Name_String
- (String_Elements.Table (Switch).Value));
- Switch := String_Elements.Table (Switch).Next;
- end loop;
+ begin
+ if Defaults /= No_Array_Element then
+ Switches :=
+ Value_Of
+ (Index => Name_Ada, In_Array => Defaults);
+
+ if not Switches.Default then
+ Switch := Switches.Values;
+
+ while Switch /= Nil_String loop
+ Add_Argument
+ (Get_Name_String
+ (String_Elements.Table (Switch).Value));
+ Switch := String_Elements.Table (Switch).Next;
+ end loop;
+ end if;
end if;
end;
end if;
Index: rtsfind.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/rtsfind.adb,v
retrieving revision 1.9
diff -u -p -r1.9 rtsfind.adb
--- rtsfind.adb 20 Nov 2003 09:54:00 -0000 1.9
+++ rtsfind.adb 1 Dec 2003 11:35:59 -0000
@@ -550,7 +550,6 @@ package body Rtsfind is
declare
Loaded : Boolean;
pragma Warnings (Off, Loaded);
-
begin
Loaded := Is_Loaded (U.Uname);
end;
@@ -569,7 +568,6 @@ package body Rtsfind is
if U.Unum = No_Unit then
Load_Fail ("not found", U_Id, Id);
-
elsif Fatal_Error (U.Unum) then
Load_Fail ("had parser errors", U_Id, Id);
end if;
@@ -601,7 +599,6 @@ package body Rtsfind is
Set_Analyzed (Cunit (Current_Sem_Unit), True);
if not Analyzed (Cunit (U.Unum)) then
-
Save_Private_Visibility;
Semantics (Cunit (U.Unum));
Restore_Private_Visibility;
Index: sem_ch5.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/sem_ch5.adb,v
retrieving revision 1.10
diff -u -p -r1.10 sem_ch5.adb
--- sem_ch5.adb 10 Nov 2003 17:29:59 -0000 1.10
+++ sem_ch5.adb 1 Dec 2003 11:35:59 -0000
@@ -115,11 +115,9 @@ package body Sem_Ch5 is
-- Some special bad cases of entity names
elsif Is_Entity_Name (N) then
-
if Ekind (Entity (N)) = E_In_Parameter then
Error_Msg_N
("assignment to IN mode parameter not allowed", N);
- return;
-- Private declarations in a protected object are turned into
-- constants when compiling a protected function.
@@ -133,27 +131,38 @@ package body Sem_Ch5 is
then
Error_Msg_N
("protected function cannot modify protected object", N);
- return;
elsif Ekind (Entity (N)) = E_Loop_Parameter then
Error_Msg_N
("assignment to loop parameter not allowed", N);
- return;
+ else
+ Error_Msg_N
+ ("left hand side of assignment must be a variable", N);
end if;
- -- For indexed components, or selected components, test prefix
+ -- For indexed components or selected components, test prefix
- elsif Nkind (N) = N_Indexed_Component
- or else Nkind (N) = N_Selected_Component
- then
+ elsif Nkind (N) = N_Indexed_Component then
Diagnose_Non_Variable_Lhs (Prefix (N));
- return;
- end if;
- -- If we fall through, we have no special message to issue!
+ -- Another special case for assignment to discriminant.
+
+ elsif Nkind (N) = N_Selected_Component then
+ if Present (Entity (Selector_Name (N)))
+ and then Ekind (Entity (Selector_Name (N))) = E_Discriminant
+ then
+ Error_Msg_N
+ ("assignment to discriminant not allowed", N);
+ else
+ Diagnose_Non_Variable_Lhs (Prefix (N));
+ end if;
+
+ else
+ -- If we fall through, we have no special message to issue!
- Error_Msg_N ("left hand side of assignment must be a variable", N);
+ Error_Msg_N ("left hand side of assignment must be a variable", N);
+ end if;
end Diagnose_Non_Variable_Lhs;
-------------------------
@@ -396,7 +405,6 @@ package body Sem_Ch5 is
(Nkind (Rhs) /= N_Type_Conversion
or else Is_Constrained (Etype (Rhs)))
then
-
-- Assignment verifies that the length of the Lsh and Rhs are equal,
-- but of course the indices do not have to match. If the right-hand
-- side is a type conversion to an unconstrained type, a length check
@@ -597,7 +605,7 @@ package body Sem_Ch5 is
Process_Non_Static_Choice => Non_Static_Choice_Error,
Process_Associated_Node => Process_Statements);
use Case_Choices_Processing;
- -- Instantiation of the generic choice processing package.
+ -- Instantiation of the generic choice processing package
-----------------------------
-- Non_Static_Choice_Error --
@@ -668,11 +676,10 @@ package body Sem_Ch5 is
return;
end if;
- -- If the case expression is a formal object of mode in out,
- -- then treat it as having a nonstatic subtype by forcing
- -- use of the base type (which has to get passed to
- -- Check_Case_Choices below). Also use base type when
- -- the case expression is parenthesized.
+ -- If the case expression is a formal object of mode in out, then
+ -- treat it as having a nonstatic subtype by forcing use of the base
+ -- type (which has to get passed to Check_Case_Choices below). Also
+ -- use base type when the case expression is parenthesized.
if Paren_Count (Exp) > 0
or else (Is_Entity_Name (Exp)
@@ -681,7 +688,7 @@ package body Sem_Ch5 is
Exp_Type := Exp_Btype;
end if;
- -- Call the instantiated Analyze_Choices which does the rest of the work
+ -- Call instantiated Analyze_Choices which does the rest of the work
Analyze_Choices
(N, Exp_Type, Case_Table, Last_Choice, Dont_Care, Others_Present);
@@ -778,7 +785,7 @@ package body Sem_Ch5 is
end if;
end loop;
- -- Verify that if present the condition is a Boolean expression.
+ -- Verify that if present the condition is a Boolean expression
if Present (Cond) then
Analyze_And_Resolve (Cond, Any_Boolean);
@@ -991,7 +998,6 @@ package body Sem_Ch5 is
procedure Analyze_Implicit_Label_Declaration (N : Node_Id) is
Id : constant Node_Id := Defining_Identifier (N);
-
begin
Enter_Name (Id);
Set_Ekind (Id, E_Label);
@@ -1003,7 +1009,6 @@ package body Sem_Ch5 is
-- Analyze_Iteration_Scheme --
------------------------------
-
procedure Analyze_Iteration_Scheme (N : Node_Id) is
procedure Check_Controlled_Array_Attribute (DS : Node_Id);
-- If the bounds are given by a 'Range reference on a function call
@@ -1101,7 +1106,6 @@ package body Sem_Ch5 is
declare
H : constant Entity_Id := Homonym (Id);
-
begin
if Present (H)
and then Enclosing_Dynamic_Scope (H) =
@@ -1248,7 +1252,6 @@ package body Sem_Ch5 is
procedure Analyze_Label (N : Node_Id) is
pragma Warnings (Off, N);
-
begin
Kill_Current_Values;
end Analyze_Label;
@@ -1329,7 +1332,6 @@ package body Sem_Ch5 is
procedure Analyze_Null_Statement (N : Node_Id) is
pragma Warnings (Off, N);
-
begin
null;
end Analyze_Null_Statement;
Index: s-exnint.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/s-exnint.adb,v
retrieving revision 1.1
diff -u -p -r1.1 s-exnint.adb
--- s-exnint.adb 21 Oct 2003 13:42:13 -0000 1.1
+++ s-exnint.adb 1 Dec 2003 11:35:59 -0000
@@ -37,11 +37,7 @@ package body System.Exn_Int is
-- Exn_Integer --
-----------------
- function Exn_Integer
- (Left : Integer;
- Right : Natural)
- return Integer
- is
+ function Exn_Integer (Left : Integer; Right : Natural) return Integer is
pragma Suppress (Division_Check);
pragma Suppress (Overflow_Check);
Index: s-exnint.ads
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/s-exnint.ads,v
retrieving revision 1.5
diff -u -p -r1.5 s-exnint.ads
--- s-exnint.ads 21 Oct 2003 13:42:13 -0000 1.5
+++ s-exnint.ads 1 Dec 2003 11:35:59 -0000
@@ -36,9 +36,6 @@
package System.Exn_Int is
pragma Pure (Exn_Int);
- function Exn_Integer
- (Left : Integer;
- Right : Natural)
- return Integer;
+ function Exn_Integer (Left : Integer; Right : Natural) return Integer;
end System.Exn_Int;
Index: switch-c.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/switch-c.adb,v
retrieving revision 1.7
diff -u -p -r1.7 switch-c.adb
--- switch-c.adb 10 Nov 2003 17:30:00 -0000 1.7
+++ switch-c.adb 1 Dec 2003 11:35:59 -0000
@@ -296,20 +296,21 @@ package body Switch.C is
Xref_Active := False;
Set_Debug_Flag ('g');
- -- Processing for e switch
+ -- -gnate? (extended switches)
when 'e' =>
- -- Only -gnateD and -gnatep= are stored
-
Ptr := Ptr + 1;
+ -- The -gnate? switches are all double character switches
+ -- so we must always have a character after the e.
+
if Ptr > Max then
raise Bad_Switch;
end if;
case Switch_Chars (Ptr) is
- -- Configuration pragmas
+ -- -gnatec (configuration pragmas)
when 'c' =>
Store_Switch := False;
@@ -359,7 +360,7 @@ package body Switch.C is
return;
- -- Symbol definition
+ -- -gnateD switch (symbol definition)
when 'D' =>
Store_Switch := False;
@@ -381,7 +382,7 @@ package body Switch.C is
(Storing'First .. First_Stored + Max - Ptr + 2));
return;
- -- Full source path for brief error messages
+ -- -gnatef (full source path for brief error messages)
when 'f' =>
Store_Switch := False;
@@ -389,7 +390,7 @@ package body Switch.C is
Full_Path_Name_For_Brief_Errors := True;
return;
- -- Mapping file
+ -- -gnatem (mapping file)
when 'm' =>
Store_Switch := False;
@@ -410,7 +411,7 @@ package body Switch.C is
new String'(Switch_Chars (Ptr .. Max));
return;
- -- Preprocessing data file
+ -- -gnatep (preprocessing data file)
when 'p' =>
Store_Switch := False;
@@ -445,19 +446,21 @@ package body Switch.C is
Store_Compilation_Switch (To_Store);
end;
- return;
+ return;
+
+ -- All other -gnate? switches are unassigned
when others =>
raise Bad_Switch;
end case;
- -- Processing for E switch
+ -- -gnatE (dynamic elaboration checks)
when 'E' =>
Ptr := Ptr + 1;
Dynamic_Elaboration_Checks := True;
- -- Processing for f switch
+ -- -gnatf (full error messages)
when 'f' =>
Ptr := Ptr + 1;
Index: Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/Make-lang.in,v
retrieving revision 1.59
diff -u -p -r1.59 Make-lang.in
--- Make-lang.in 29 Nov 2003 23:57:40 -0000 1.59
+++ Make-lang.in 1 Dec 2003 11:36:00 -0000
@@ -1417,17 +1417,17 @@ ada/cstand.o : ada/ada.ads ada/a-except.
ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads \
ada/sem_ch8.ads ada/sem_eval.ads ada/sem_mech.ads ada/sem_res.ads \
ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sinfo.ads \
- ada/sinfo.adb ada/sinput.ads ada/snames.ads ada/stand.ads \
- ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \
- ada/styleg-c.ads ada/stylesw.ads ada/system.ads ada/s-crc32.ads \
- ada/s-exctab.ads ada/s-htable.ads ada/s-imgenu.ads ada/s-memory.ads \
- ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \
- ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-traent.ads \
- ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \
- ada/targparm.ads ada/tbuild.ads ada/tree_io.ads ada/ttypef.ads \
- ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb \
- ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \
- ada/widechar.ads
+ ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \
+ ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \
+ ada/styleg.adb ada/styleg-c.ads ada/stylesw.ads ada/system.ads \
+ ada/s-crc32.ads ada/s-crc32.adb ada/s-exctab.ads ada/s-htable.ads \
+ ada/s-imgenu.ads ada/s-memory.ads ada/s-rident.ads ada/s-secsta.ads \
+ ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+ ada/s-stoele.adb ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+ ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \
+ ada/tree_io.ads ada/ttypef.ads ada/ttypes.ads ada/types.ads \
+ ada/uintp.ads ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads \
+ ada/urealp.ads ada/urealp.adb ada/widechar.ads
ada/debug.o : ada/debug.ads ada/debug.adb ada/system.ads
@@ -2305,7 +2305,8 @@ ada/gnatbind.o : ada/ada.ads ada/a-excep
ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \
ada/unchdeal.ads
-ada/gnatvsn.o : ada/gnatvsn.ads ada/gnatvsn.adb ada/system.ads
+ada/gnatvsn.o : ada/gnatvsn.ads ada/gnatvsn.adb ada/system.ads \
+ ada/s-secsta.ads ada/s-stoele.ads ada/s-stoele.adb ada/unchconv.ads
ada/hlo.o : ada/hlo.ads ada/hlo.adb ada/output.ads ada/system.ads \
ada/s-exctab.ads ada/s-stalib.ads ada/s-unstyp.ads ada/types.ads \
@@ -2533,9 +2534,11 @@ ada/nmake.o : ada/ada.ads ada/a-except.a
ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \
ada/unchdeal.ads ada/urealp.ads
-ada/opt.o : ada/gnat.ads ada/g-os_lib.ads ada/g-string.ads ada/gnatvsn.ads \
- ada/hostparm.ads ada/opt.ads ada/opt.adb ada/system.ads \
- ada/s-exctab.ads ada/s-stalib.ads ada/s-unstyp.ads ada/s-wchcon.ads \
+ada/opt.o : ada/ada.ads ada/a-except.ads ada/gnat.ads ada/g-os_lib.ads \
+ ada/g-string.ads ada/gnatvsn.ads ada/hostparm.ads ada/opt.ads \
+ ada/opt.adb ada/system.ads ada/s-exctab.ads ada/s-secsta.ads \
+ ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \
+ ada/s-stoele.adb ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \
ada/tree_io.ads ada/types.ads ada/unchconv.ads ada/unchdeal.ads
ada/osint-b.o : ada/ada.ads ada/a-except.ads ada/alloc.ads ada/debug.ads \