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 on i686-linux, committed on trunk When compiling an instance I of a generic child unit, the parent instances are placed on the scope stack. When compiling the private part of the child unit, the private declarations of the parents are made immediately visible. A parent unit P may be a hidden open scope because it also contains an instantiation I1 (which itself contains the instance I). During the compilation of I, P is not a hidden scope. In particular, if the compilation of I is interrupted by a call to rstfind, the save/restore mechanism must recover the full visibility on the entities of P. This is another complication caused by the rtsfind mechanism, and the absence of a single abstraction to represent the visibility environment for the instantiation of a generic child unit. No simple example. 2008-03-26 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb (Install_Parent_Private_Declarations): If the private declarations of a parent unit are made visible when compiling a child instance, the parent is not a hidden open scope, even though it may contain other pending instance. * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a hidden open scope for some child instance, it does affect the visibility status of other stach entries. (Analyze_Object_Renaming): Check that a class-wide object cannot be renamed as an object of a specific type.
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] |