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] |
A class-wide type has anonymous discriminants, because type extensions can add discriminants at will. A constraint on a class-wide type is thus a partial constraint that applies only to the known discriminants of the root type. Such a partial constraint is a language pathology that the ARG has decided not to test. This patch simply discards such a constraint on an access type, so that the designated type includes all (unconstrained) extensions of the root type. The following must compile with the warning: volumes.ads:9:24: warning: constraint on class-wide type ignored --- package Volumes is type VolumeWidgetType (Stereo : boolean) is tagged record IsStereo : boolean := Stereo; end record; type VolumeWidget is access all VolumeWidgetType'Class; Mic1 : VolumeWidget (Stereo => False); end Volumes; Tested on x86_64-pc-linux-gnu, committed on trunk 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Subtype): Discard constraint on access to class-wide type. Such constraints are not supported and are considered a language pathology.
Attachment:
difs
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |