2005-03-29 Gary Dismukes <dismukes@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:15:45 +0000 (16:15 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:15:45 +0000 (16:15 +0000)
commit1843cecac270adb73f35b5420c1a1b43db1d455c
treee6b0e275d222d8952cb61f29f30b8e056a79aee2
parente33a28e8b2f9a6c11c3eb81348ad4b14dc58ae4a
2005-03-29  Gary Dismukes  <dismukes@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
expand a call to an instance of
Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
Constructor actual of the instance. A class-wide membership
check is also generated, to ensure that the tag passed to the instance
denotes a type in the class.
(Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
of Name_Generic_Dispatching_Constructor.

* Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
05 unit for AI-260-02).

* a-tgdico.ads: New file.

* impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.

* snames.ads, snames.adb (Preset_Names): Add entry for
Generic_Dispatching_Constructor.

PR ada/20300

* sem_ch8.adb (Find_Direct_Name): Go to root type for check of
character type cases.
(Analyze_Subprogram_Renaming): Add special handling for
the case of renaming of stream attributes when the renaming denotes a
generic formal subprogram association for an abstract formal subprogram.
Check that the attribute is a primitive stream attribute (and not
a class-wide stream attribute) and then rewrite the attribute name
as the name of the appropriate compiler-generated stream primitive.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97172 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/Makefile.rtl
gcc/ada/a-tgdico.ads [new file with mode: 0644]
gcc/ada/exp_intr.adb
gcc/ada/impunit.adb
gcc/ada/sem_ch8.adb
gcc/ada/snames.adb
gcc/ada/snames.ads