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] |
This patch handles derived protected types that have fewer discriminants than the parent type. In this case the corresponding record of the derived type must be a similar derivation of the corresponding record of the parent The following must compile quietly: package Der_Prot is protected type Object( A, B: Positive ) is entry Wait; procedure Send; private Name1 : String (1 .. A) := (others => '+'); Name2 : String (1 .. B) := (others => '?'); end Object; type Object2 (A, B : Positive) is new Object (B, A); type Object3( A : Positive ) is new Object ( A => A, B => 2); end Der_Prot ; package body Der_Prot is protected body Object is entry Wait when true is begin null; end Wait; procedure Send is begin null; end Send; end Object; end Der_Prot; Tested on x86_64-pc-linux-gnu, committed on trunk 2009-07-28 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Derived_Concurrent_Type): Handle properly a derivation that renames some discriminants and constrain others. * exp_ch9.adb (Build_Protected_Subprogram_Call): If the type of the prefix is a derived untagged type, convert to the root type to conform to the signature of the protected operations.
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] |