This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Tested under i686-linux, committed on mainline. For a reference to a stream attribute whose prefix denotes a limited type, the attribute reference is legal if the attribute has been specified by an attribute definition clause for the type. Per AI-108 (LRM 13.13.2(9/1)), the reference is also legal if the attribute has been specified for any ancestor of the type. This change implements this new case, and allows the corresponding new ACATS test (CDD2A03) to be compiled and executed properly. 2005-03-17 Thomas Quinot <quinot@adacore.com> * exp_ch3.adb (Check_Attr): New subprogram. (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement into a new Check_Attr subprogram, in order to provide a more explanatory error message (including the name of the missing attribute). (Stream_Operation_OK): Renamed from Stream_Operations_OK. This subprogram determines whether a default implementation exists for a given stream attribute. (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Determine whether to generate a default implementation for each stream attribute separately, as this depends on the specific attribute. * exp_strm.adb (Make_Field_Attribute): For the case of an illegal limited extension where a stream attribute is missing for a limited component (which will have been flagged in Exp_Ch3.Sem_Attr), do not generate a bogus reference to the missing attribute to prevent cascaded errors. Instead, generate a null statement. * sem_attr.adb (Check_Stream_Attribute): A stream attribute is available for a limited type if it has been specified for an ancestor of the type.
Attachment:
difs.7
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |