ada: Futher refinements to mutably tagged types
This patch further enhances the mutably tagged type implementation by fixing several oversights relating to generic instantiations, attributes, and type conversions. gcc/ada/ * exp_put_image.adb (Append_Component_Attr): Obtain the mutably tagged type for the component type. * mutably_tagged.adb (Make_Mutably_Tagged_Conversion): Add more cases to avoid conversion generation. * sem_attr.adb (Check_Put_Image_Attribute): Add mutably tagged type conversion. * sem_ch12.adb (Analyze_One_Association): Add rewrite for formal type declarations which are mutably tagged type to their equivalent type. (Instantiate_Type): Add condition to obtain class wide equivalent types. (Validate_Private_Type_Instance): Add check for class wide equivalent types which are considered "definite". * sem_util.adb (Is_Variable): Add condition to handle selected components of view conversions. Add missing check for selected components. (Is_View_Conversion): Add condition to handle class wide equivalent types.
Showing
- gcc/ada/exp_put_image.adb 14 additions, 11 deletionsgcc/ada/exp_put_image.adb
- gcc/ada/mutably_tagged.adb 14 additions, 7 deletionsgcc/ada/mutably_tagged.adb
- gcc/ada/sem_attr.adb 7 additions, 0 deletionsgcc/ada/sem_attr.adb
- gcc/ada/sem_ch12.adb 23 additions, 2 deletionsgcc/ada/sem_ch12.adb
- gcc/ada/sem_util.adb 13 additions, 1 deletiongcc/ada/sem_util.adb
Loading
Please register or sign in to comment