diff options
author | Gary Dismukes <dismukes@adacore.com> | 2005-03-29 18:15:45 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-03-29 18:15:45 +0200 |
commit | d239991ff65181a5e81cd9e103f5543f1904c042 (patch) | |
tree | e6b0e275d222d8952cb61f29f30b8e056a79aee2 /gcc/ada/snames.ads | |
parent | c857f5ed55dd4f8f02892da3c79a595b39e376e5 (diff) | |
download | gcc-d239991ff65181a5e81cd9e103f5543f1904c042.tar.gz |
re PR ada/20300 (ICE on undefined value of type derived from Character)
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.
From-SVN: r97172
Diffstat (limited to 'gcc/ada/snames.ads')
-rw-r--r-- | gcc/ada/snames.ads | 193 |
1 files changed, 97 insertions, 96 deletions
diff --git a/gcc/ada/snames.ads b/gcc/ada/snames.ads index 9b79ae448dc..4c8d2547ef0 100644 --- a/gcc/ada/snames.ads +++ b/gcc/ada/snames.ads @@ -880,126 +880,127 @@ package Snames is -- Note: Asm is missing from this list, since Asm is a legitimate -- convention name. So is To_Adress, which is a GNAT attribute. - First_Intrinsic_Name : constant Name_Id := N + 544; - Name_Divide : constant Name_Id := N + 544; - Name_Enclosing_Entity : constant Name_Id := N + 545; - Name_Exception_Information : constant Name_Id := N + 546; - Name_Exception_Message : constant Name_Id := N + 547; - Name_Exception_Name : constant Name_Id := N + 548; - Name_File : constant Name_Id := N + 549; - Name_Import_Address : constant Name_Id := N + 550; - Name_Import_Largest_Value : constant Name_Id := N + 551; - Name_Import_Value : constant Name_Id := N + 552; - Name_Is_Negative : constant Name_Id := N + 553; - Name_Line : constant Name_Id := N + 554; - Name_Rotate_Left : constant Name_Id := N + 555; - Name_Rotate_Right : constant Name_Id := N + 556; - Name_Shift_Left : constant Name_Id := N + 557; - Name_Shift_Right : constant Name_Id := N + 558; - Name_Shift_Right_Arithmetic : constant Name_Id := N + 559; - Name_Source_Location : constant Name_Id := N + 560; - Name_Unchecked_Conversion : constant Name_Id := N + 561; - Name_Unchecked_Deallocation : constant Name_Id := N + 562; - Name_To_Pointer : constant Name_Id := N + 563; - Last_Intrinsic_Name : constant Name_Id := N + 563; + First_Intrinsic_Name : constant Name_Id := N + 544; + Name_Divide : constant Name_Id := N + 544; + Name_Enclosing_Entity : constant Name_Id := N + 545; + Name_Exception_Information : constant Name_Id := N + 546; + Name_Exception_Message : constant Name_Id := N + 547; + Name_Exception_Name : constant Name_Id := N + 548; + Name_File : constant Name_Id := N + 549; + Name_Generic_Dispatching_Constructor : constant Name_Id := N + 550; + Name_Import_Address : constant Name_Id := N + 551; + Name_Import_Largest_Value : constant Name_Id := N + 552; + Name_Import_Value : constant Name_Id := N + 553; + Name_Is_Negative : constant Name_Id := N + 554; + Name_Line : constant Name_Id := N + 555; + Name_Rotate_Left : constant Name_Id := N + 556; + Name_Rotate_Right : constant Name_Id := N + 557; + Name_Shift_Left : constant Name_Id := N + 558; + Name_Shift_Right : constant Name_Id := N + 559; + Name_Shift_Right_Arithmetic : constant Name_Id := N + 560; + Name_Source_Location : constant Name_Id := N + 561; + Name_Unchecked_Conversion : constant Name_Id := N + 562; + Name_Unchecked_Deallocation : constant Name_Id := N + 563; + Name_To_Pointer : constant Name_Id := N + 564; + Last_Intrinsic_Name : constant Name_Id := N + 564; -- Reserved words used only in Ada 95 - First_95_Reserved_Word : constant Name_Id := N + 564; - Name_Abstract : constant Name_Id := N + 564; - Name_Aliased : constant Name_Id := N + 565; - Name_Protected : constant Name_Id := N + 566; - Name_Until : constant Name_Id := N + 567; - Name_Requeue : constant Name_Id := N + 568; - Name_Tagged : constant Name_Id := N + 569; - Last_95_Reserved_Word : constant Name_Id := N + 569; + First_95_Reserved_Word : constant Name_Id := N + 565; + Name_Abstract : constant Name_Id := N + 565; + Name_Aliased : constant Name_Id := N + 566; + Name_Protected : constant Name_Id := N + 567; + Name_Until : constant Name_Id := N + 568; + Name_Requeue : constant Name_Id := N + 569; + Name_Tagged : constant Name_Id := N + 570; + Last_95_Reserved_Word : constant Name_Id := N + 570; subtype Ada_95_Reserved_Words is Name_Id range First_95_Reserved_Word .. Last_95_Reserved_Word; -- Miscellaneous names used in semantic checking - Name_Raise_Exception : constant Name_Id := N + 570; + Name_Raise_Exception : constant Name_Id := N + 571; -- Additional reserved words and identifiers used in GNAT Project Files -- Note that Name_External is already previously declared - Name_Ada_Roots : constant Name_Id := N + 571; - Name_Binder : constant Name_Id := N + 572; - Name_Binder_Driver : constant Name_Id := N + 573; - Name_Body_Suffix : constant Name_Id := N + 574; - Name_Builder : constant Name_Id := N + 575; - Name_Compiler : constant Name_Id := N + 576; - Name_Compiler_Driver : constant Name_Id := N + 577; - Name_Compiler_Kind : constant Name_Id := N + 578; - Name_Compute_Dependency : constant Name_Id := N + 579; - Name_Cross_Reference : constant Name_Id := N + 580; - Name_Default_Linker : constant Name_Id := N + 581; - Name_Default_Switches : constant Name_Id := N + 582; - Name_Dependency_Option : constant Name_Id := N + 583; - Name_Exec_Dir : constant Name_Id := N + 584; - Name_Executable : constant Name_Id := N + 585; - Name_Executable_Suffix : constant Name_Id := N + 586; - Name_Extends : constant Name_Id := N + 587; - Name_Externally_Built : constant Name_Id := N + 588; - Name_Finder : constant Name_Id := N + 589; - Name_Global_Configuration_Pragmas : constant Name_Id := N + 590; - Name_Gnatls : constant Name_Id := N + 591; - Name_Gnatstub : constant Name_Id := N + 592; - Name_Implementation : constant Name_Id := N + 593; - Name_Implementation_Exceptions : constant Name_Id := N + 594; - Name_Implementation_Suffix : constant Name_Id := N + 595; - Name_Include_Option : constant Name_Id := N + 596; - Name_Language_Processing : constant Name_Id := N + 597; - Name_Languages : constant Name_Id := N + 598; - Name_Library_Dir : constant Name_Id := N + 599; - Name_Library_Auto_Init : constant Name_Id := N + 600; - Name_Library_GCC : constant Name_Id := N + 601; - Name_Library_Interface : constant Name_Id := N + 602; - Name_Library_Kind : constant Name_Id := N + 603; - Name_Library_Name : constant Name_Id := N + 604; - Name_Library_Options : constant Name_Id := N + 605; - Name_Library_Reference_Symbol_File : constant Name_Id := N + 606; - Name_Library_Src_Dir : constant Name_Id := N + 607; - Name_Library_Symbol_File : constant Name_Id := N + 608; - Name_Library_Symbol_Policy : constant Name_Id := N + 609; - Name_Library_Version : constant Name_Id := N + 610; - Name_Linker : constant Name_Id := N + 611; - Name_Local_Configuration_Pragmas : constant Name_Id := N + 612; - Name_Locally_Removed_Files : constant Name_Id := N + 613; - Name_Metrics : constant Name_Id := N + 614; - Name_Naming : constant Name_Id := N + 615; - Name_Object_Dir : constant Name_Id := N + 616; - Name_Pretty_Printer : constant Name_Id := N + 617; - Name_Project : constant Name_Id := N + 618; - Name_Separate_Suffix : constant Name_Id := N + 619; - Name_Source_Dirs : constant Name_Id := N + 620; - Name_Source_Files : constant Name_Id := N + 621; - Name_Source_List_File : constant Name_Id := N + 622; - Name_Spec : constant Name_Id := N + 623; - Name_Spec_Suffix : constant Name_Id := N + 624; - Name_Specification : constant Name_Id := N + 625; - Name_Specification_Exceptions : constant Name_Id := N + 626; - Name_Specification_Suffix : constant Name_Id := N + 627; - Name_Switches : constant Name_Id := N + 628; + Name_Ada_Roots : constant Name_Id := N + 572; + Name_Binder : constant Name_Id := N + 573; + Name_Binder_Driver : constant Name_Id := N + 574; + Name_Body_Suffix : constant Name_Id := N + 575; + Name_Builder : constant Name_Id := N + 576; + Name_Compiler : constant Name_Id := N + 577; + Name_Compiler_Driver : constant Name_Id := N + 578; + Name_Compiler_Kind : constant Name_Id := N + 579; + Name_Compute_Dependency : constant Name_Id := N + 580; + Name_Cross_Reference : constant Name_Id := N + 581; + Name_Default_Linker : constant Name_Id := N + 582; + Name_Default_Switches : constant Name_Id := N + 583; + Name_Dependency_Option : constant Name_Id := N + 584; + Name_Exec_Dir : constant Name_Id := N + 585; + Name_Executable : constant Name_Id := N + 586; + Name_Executable_Suffix : constant Name_Id := N + 587; + Name_Extends : constant Name_Id := N + 588; + Name_Externally_Built : constant Name_Id := N + 589; + Name_Finder : constant Name_Id := N + 590; + Name_Global_Configuration_Pragmas : constant Name_Id := N + 591; + Name_Gnatls : constant Name_Id := N + 592; + Name_Gnatstub : constant Name_Id := N + 593; + Name_Implementation : constant Name_Id := N + 594; + Name_Implementation_Exceptions : constant Name_Id := N + 595; + Name_Implementation_Suffix : constant Name_Id := N + 596; + Name_Include_Option : constant Name_Id := N + 597; + Name_Language_Processing : constant Name_Id := N + 598; + Name_Languages : constant Name_Id := N + 599; + Name_Library_Dir : constant Name_Id := N + 600; + Name_Library_Auto_Init : constant Name_Id := N + 601; + Name_Library_GCC : constant Name_Id := N + 602; + Name_Library_Interface : constant Name_Id := N + 603; + Name_Library_Kind : constant Name_Id := N + 604; + Name_Library_Name : constant Name_Id := N + 605; + Name_Library_Options : constant Name_Id := N + 606; + Name_Library_Reference_Symbol_File : constant Name_Id := N + 607; + Name_Library_Src_Dir : constant Name_Id := N + 608; + Name_Library_Symbol_File : constant Name_Id := N + 609; + Name_Library_Symbol_Policy : constant Name_Id := N + 610; + Name_Library_Version : constant Name_Id := N + 611; + Name_Linker : constant Name_Id := N + 612; + Name_Local_Configuration_Pragmas : constant Name_Id := N + 613; + Name_Locally_Removed_Files : constant Name_Id := N + 614; + Name_Metrics : constant Name_Id := N + 615; + Name_Naming : constant Name_Id := N + 616; + Name_Object_Dir : constant Name_Id := N + 617; + Name_Pretty_Printer : constant Name_Id := N + 618; + Name_Project : constant Name_Id := N + 619; + Name_Separate_Suffix : constant Name_Id := N + 620; + Name_Source_Dirs : constant Name_Id := N + 621; + Name_Source_Files : constant Name_Id := N + 622; + Name_Source_List_File : constant Name_Id := N + 623; + Name_Spec : constant Name_Id := N + 624; + Name_Spec_Suffix : constant Name_Id := N + 625; + Name_Specification : constant Name_Id := N + 626; + Name_Specification_Exceptions : constant Name_Id := N + 627; + Name_Specification_Suffix : constant Name_Id := N + 628; + Name_Switches : constant Name_Id := N + 629; -- Other miscellaneous names used in front end - Name_Unaligned_Valid : constant Name_Id := N + 629; + Name_Unaligned_Valid : constant Name_Id := N + 630; -- ---------------------------------------------------------------- - First_2005_Reserved_Word : constant Name_Id := N + 630; - Name_Interface : constant Name_Id := N + 630; - Name_Overriding : constant Name_Id := N + 631; - Name_Synchronized : constant Name_Id := N + 632; - Last_2005_Reserved_Word : constant Name_Id := N + 632; + First_2005_Reserved_Word : constant Name_Id := N + 631; + Name_Interface : constant Name_Id := N + 631; + Name_Overriding : constant Name_Id := N + 632; + Name_Synchronized : constant Name_Id := N + 633; + Last_2005_Reserved_Word : constant Name_Id := N + 633; subtype Ada_2005_Reserved_Words is Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word; -- Mark last defined name for consistency check in Snames body - Last_Predefined_Name : constant Name_Id := N + 632; + Last_Predefined_Name : constant Name_Id := N + 633; subtype Any_Operator_Name is Name_Id range First_Operator_Name .. Last_Operator_Name; |