sem_ch12.ads, [...] (Instantiate_Type): If the formal is a derived type with interfac...
authorEd Schonberg <schonberg@adacore.com>
Tue, 14 Aug 2007 08:46:18 +0000 (10:46 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 14 Aug 2007 08:46:18 +0000 (10:46 +0200)
commit1c0ce9d83b5935bdba514340ef498c4bb73cfb78
tree9b937a5c8f93ec82861ab5daedf9a3635ca174ab
parent1d6f10a19473c4c174bcb8295163be080ae6f64e
sem_ch12.ads, [...] (Instantiate_Type): If the formal is a derived type with interface progenitors use the analyzed...

2007-08-14  Ed Schonberg  <schonberg@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>
    Thomas Quinot  <quinot@adacore.com>

* sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
derived type with interface progenitors use the analyzed formal as the
parent of the actual, to create renamings for all the inherited
operations in Derive_Subprograms.
(Collect_Previous_Instances): new procedure within of
Load_Parent_Of_Generic, to instantiate all bodies in the compilation
unit being loaded, to ensure that the generation of global symbols is
consistent in different compilation modes.
(Is_Tagged_Ancestor): New function testing the ancestor relation that
takes progenitor types into account.
(Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
traversing over the primitives of the formal and actual types to locate
any abstract subprograms of the actual type that correspond to a
nonabstract subprogram of the formal type's ancestor type(s), and issue
an error if such is found.
(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
Instantiate_Package_Body, Instantiate_Subprogram_Body):
Remove bogus guard around calls to Inherit_Context.
(Reset_Entity): If the entity is the selector of a selected component
that denotes a named number, propagate constant-folding to the generic
template only if the named number is global to the generic unit.
(Set_Instance_Env): Only reset the compilation switches when compiling
a predefined or internal unit.

From-SVN: r127443
gcc/ada/sem_ch12.adb
gcc/ada/sem_ch12.ads