Commit 864f7863 by Ed Schonberg Committed by Arnaud Charlet

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
parent c1db334e
...@@ -1113,12 +1113,22 @@ package body Exp_Strm is ...@@ -1113,12 +1113,22 @@ package body Exp_Strm is
while Present (Discr) loop while Present (Discr) loop
Cn := New_External_Name ('C', J); Cn := New_External_Name ('C', J);
Append_To (Decls, Decl :=
Make_Object_Declaration (Loc, Make_Object_Declaration (Loc,
Defining_Identifier => Make_Defining_Identifier (Loc, Cn), Defining_Identifier => Make_Defining_Identifier (Loc, Cn),
Object_Definition => 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, Append_To (Decls,
Make_Attribute_Reference (Loc, Make_Attribute_Reference (Loc,
Prefix => New_Occurrence_Of (Etype (Discr), Loc), Prefix => New_Occurrence_Of (Etype (Discr), Loc),
......
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