exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access discriminants...

2008-08-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
	discriminants, indicate that the corresponding object declaration has
	no initialization, to prevent spurious warnings when the access type is
	null-excluding.

From-SVN: r138671
This commit is contained in:
Ed Schonberg 2008-08-05 10:17:02 +02:00 committed by Arnaud Charlet
parent c1db334ed5
commit 864f786316

View File

@ -1113,12 +1113,22 @@ package body Exp_Strm is
while Present (Discr) loop
Cn := New_External_Name ('C', J);
Append_To (Decls,
Decl :=
Make_Object_Declaration (Loc,
Defining_Identifier => Make_Defining_Identifier (Loc, Cn),
Object_Definition =>
New_Occurrence_Of (Etype (Discr), Loc)));
New_Occurrence_Of (Etype (Discr), Loc));
-- If the this is an access discriminant, do not perform default
-- initialization. The discriminant is about to get its value
-- from Read, and if the type is null excluding we do not want
-- spurious warnings on an initial null.
if Is_Access_Type (Etype (Discr)) then
Set_No_Initialization (Decl);
end if;
Append_To (Decls, Decl);
Append_To (Decls,
Make_Attribute_Reference (Loc,
Prefix => New_Occurrence_Of (Etype (Discr), Loc),