+2010-06-16 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Complete_Private_Subtype): Inherit class_wide type from
+ base type only if it was not previously created for the partial view.
+
+2010-06-16 Thomas Quinot <quinot@adacore.com>
+
+ * tbuild.ads: Minor comment fix
+
2010-06-15 Nathan Froyd <froydnj@codesourcery.com>
* gcc-interface/trans.c (gnu_stack_free_list): Delete.
if Is_Tagged_Type (Full_Base) then
Set_Is_Tagged_Type (Full);
Set_Primitive_Operations (Full, Primitive_Operations (Full_Base));
- Set_Class_Wide_Type (Full, Class_Wide_Type (Full_Base));
+
+ -- Inherit class_wide type of full_base in case the partial view was
+ -- not tagged. Otherwise it has already been created when the private
+ -- subtype was analyzed.
+
+ if No (Class_Wide_Type (Full)) then
+ Set_Class_Wide_Type (Full, Class_Wide_Type (Full_Base));
+ end if;
-- If this is a subtype of a protected or task type, constrain its
-- corresponding record, unless this is a subtype without constraints,
-- Create a defining identifier to capture the value of an expression
-- or aggregate, and link it to the expression that it replaces, in
-- order to provide better CodePeer reports. The defining identifier
- -- name is obtained by Make_Internal_Name (Id).
+ -- name is obtained by New_Internal_Name (Id).
function Make_Unsuppress_Block
(Loc : Source_Ptr;