diff options
author | Robert Dewar <dewar@adacore.com> | 2005-06-16 10:46:36 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-06-16 10:46:36 +0200 |
commit | 59e5fbe064423bf109f2e0525d45872f8c77ae05 (patch) | |
tree | 473b3727e61ab7b0c861751f6de3c8d7be1894ba /gcc/ada/snames.h | |
parent | 6eaf4095470fa44376f802f70382f4ee56b6aa9e (diff) | |
download | gcc-59e5fbe064423bf109f2e0525d45872f8c77ae05.zip gcc-59e5fbe064423bf109f2e0525d45872f8c77ae05.tar.gz gcc-59e5fbe064423bf109f2e0525d45872f8c77ae05.tar.bz2 |
re PR ada/10671 (improve error message for named notation used in pragma)
2005-06-14 Robert Dewar <dewar@adacore.com>
Ed Schonberg <schonberg@adacore.com>
PR ada/10671
* sem_prag.adb: Implement pragma Persistent_BSS
Remove obsolete pragma Persistent_Data, Persistent_Object
Set Ada_Version_Explicit, for implementation of AI-362
Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
Add processing for pragma Pure_05 and Preelaborate_05
Add processing for Assertion_Policy pragma
Add pragma identifiers for Assert
(Analyze_Pragma, case Assert): Check number of arguments
(Process_Inline): Additional guard against an illegal program, where the
argument of the pragma is undefined, and warnings on redundant
constructs are enabled.
(Analyze_Pragma, case Obsolescent): Allow an optional second argument
Ada_05 to this pragma, specifying that the pragma is only active in
Ada_05 mode.
(Check_Arg_Order): New procedure
Add appropriate calls to this procedure throughout
Also throughout, check entity name before doing any other checks
* snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
Remove obsolete pragma Persistent_Data, Persistent_Object
Add entries for pragma Pure_05 and Preelaborate_05
Add entries for Assertion_Policy pragma and associated names
Add some names for pragma argument processing
* tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
From-SVN: r101060
Diffstat (limited to 'gcc/ada/snames.h')
-rw-r--r-- | gcc/ada/snames.h | 414 |
1 files changed, 202 insertions, 212 deletions
diff --git a/gcc/ada/snames.h b/gcc/ada/snames.h index e7ecb5d..7b62805 100644 --- a/gcc/ada/snames.h +++ b/gcc/ada/snames.h @@ -25,7 +25,7 @@ ****************************************************************************/ /* This is the C file that corresponds to the Ada package specification - Snames. It was created manually from the file snames.ads. */ + Snames. It was created automatically from the file snames.ads. */ /* Name_Id values */ @@ -45,16 +45,16 @@ extern unsigned char Get_Attribute_Id (int); /* Define the numeric values for attributes. */ -#define Attr_Abort_Signal 0 -#define Attr_Access 1 -#define Attr_Address 2 -#define Attr_Address_Size 3 -#define Attr_Aft 4 -#define Attr_Alignment 5 -#define Attr_Asm_Input 6 -#define Attr_Asm_Output 7 -#define Attr_AST_Entry 8 -#define Attr_Bit 9 +#define Attr_Abort_Signal 0 +#define Attr_Access 1 +#define Attr_Address 2 +#define Attr_Address_Size 3 +#define Attr_Aft 4 +#define Attr_Alignment 5 +#define Attr_Asm_Input 6 +#define Attr_Asm_Output 7 +#define Attr_AST_Entry 8 +#define Attr_Bit 9 #define Attr_Bit_Order 10 #define Attr_Bit_Position 11 #define Attr_Body_Version 12 @@ -145,45 +145,56 @@ extern unsigned char Get_Attribute_Id (int); #define Attr_Val 97 #define Attr_Valid 98 #define Attr_Value_Size 99 -#define Attr_Version 100 -#define Attr_Wchar_T_Size 101 -#define Attr_Wide_Wide_Width 102 -#define Attr_Wide_Width 103 -#define Attr_Width 104 -#define Attr_Word_Size 105 +#define Attr_Version 100 +#define Attr_Wchar_T_Size 101 +#define Attr_Wide_Wide_Width 102 +#define Attr_Wide_Width 103 +#define Attr_Width 104 +#define Attr_Word_Size 105 +#define Attr_Adjacent 106 +#define Attr_Ceiling 107 +#define Attr_Copy_Sign 108 +#define Attr_Floor 109 +#define Attr_Fraction 110 +#define Attr_Image 111 +#define Attr_Input 112 +#define Attr_Machine 113 +#define Attr_Max 114 +#define Attr_Min 115 +#define Attr_Model 116 +#define Attr_Pred 117 +#define Attr_Remainder 118 +#define Attr_Rounding 119 +#define Attr_Succ 120 +#define Attr_Truncation 121 +#define Attr_Value 122 +#define Attr_Wide_Image 123 +#define Attr_Wide_Wide_Image 124 +#define Attr_Wide_Value 125 +#define Attr_Wide_Wide_Value 126 +#define Attr_Output 127 +#define Attr_Read 128 +#define Attr_Write 129 +#define Attr_Elab_Body 130 +#define Attr_Elab_Spec 131 +#define Attr_Storage_Pool 132 +#define Attr_Base 133 +#define Attr_Class 134 -#define Attr_Adjacent 106 -#define Attr_Ceiling 107 -#define Attr_Copy_Sign 108 -#define Attr_Floor 109 -#define Attr_Fraction 110 -#define Attr_Image 111 -#define Attr_Input 112 -#define Attr_Machine 113 -#define Attr_Max 114 -#define Attr_Min 115 -#define Attr_Model 116 -#define Attr_Pred 117 -#define Attr_Remainder 118 -#define Attr_Rounding 119 -#define Attr_Succ 120 -#define Attr_Truncation 121 -#define Attr_Value 122 -#define Attr_Wide_Image 123 -#define Attr_Wide_Wide_Image 124 -#define Attr_Wide_Value 125 -#define Attr_Wide_Wide_Value 126 - -#define Attr_Output 127 -#define Attr_Read 128 -#define Attr_Write 129 - -#define Attr_Elab_Body 130 -#define Attr_Elab_Spec 131 -#define Attr_Storage_Pool 132 +/* Define the numeric values for the conventions. */ -#define Attr_Base 133 -#define Attr_Class 134 +#define Convention_Ada 0 +#define Convention_Intrinsic 1 +#define Convention_Entry 2 +#define Convention_Protected 3 +#define Convention_Assembler 4 +#define Convention_C 5 +#define Convention_COBOL 6 +#define Convention_CPP 7 +#define Convention_Fortran 8 +#define Convention_Java 9 +#define Convention_Stdcall 10 +#define Convention_Stubbed 11 /* Define the function to check if a Name_Id value is a valid pragma */ @@ -200,172 +211,151 @@ extern unsigned char Get_Pragma_Id (int); /* Define the numeric values for the pragmas. */ -/* Configuration pragmas first */ - #define Pragma_Ada_83 0 #define Pragma_Ada_95 1 #define Pragma_Ada_05 2 -#define Pragma_C_Pass_By_Copy 3 -#define Pragma_Compile_Time_Warning 4 -#define Pragma_Component_Alignment 5 -#define Pragma_Convention_Identifier 6 -#define Pragma_Detect_Blocking 7 -#define Pragma_Discard_Names 8 -#define Pragma_Elaboration_Checking 9 -#define Pragma_Eliminate 10 -#define Pragma_Explicit_Overriding 11 -#define Pragma_Extend_System 12 -#define Pragma_Extensions_Allowed 13 -#define Pragma_External_Name_Casing 14 -#define Pragma_Float_Representation 15 -#define Pragma_Initialize_Scalars 16 -#define Pragma_Interrupt_State 17 -#define Pragma_License 18 -#define Pragma_Locking_Policy 19 -#define Pragma_Long_Float 20 -#define Pragma_No_Run_Time 21 -#define Pragma_No_Strict_Aliasing 22 -#define Pragma_Normalize_Scalars 23 -#define Pragma_Polling 24 -#define Pragma_Persistent_Data 25 -#define Pragma_Persistent_Object 26 -#define Pragma_Profile 27 -#define Pragma_Profile_Warnings 28 -#define Pragma_Propagate_Exceptions 29 -#define Pragma_Queuing_Policy 30 -#define Pragma_Ravenscar 31 -#define Pragma_Restricted_Run_Time 32 -#define Pragma_Restrictions 33 -#define Pragma_Restriction_Warnings 34 -#define Pragma_Reviewable 35 -#define Pragma_Source_File_Name 36 -#define Pragma_Source_File_Name_Project 37 -#define Pragma_Style_Checks 38 -#define Pragma_Suppress 39 -#define Pragma_Suppress_Exception_Locations 40 -#define Pragma_Task_Dispatching_Policy 41 -#define Pragma_Universal_Data 42 -#define Pragma_Unsuppress 43 -#define Pragma_Use_VADS_Size 44 -#define Pragma_Validity_Checks 45 -#define Pragma_Warnings 46 - -/* Remaining pragmas */ - -#define Pragma_Abort_Defer 47 -#define Pragma_All_Calls_Remote 48 -#define Pragma_Annotate 49 -#define Pragma_Assert 50 -#define Pragma_Asynchronous 51 -#define Pragma_Atomic 52 -#define Pragma_Atomic_Components 53 -#define Pragma_Attach_Handler 54 -#define Pragma_Comment 55 -#define Pragma_Common_Object 56 -#define Pragma_Complex_Representation 57 -#define Pragma_Controlled 58 -#define Pragma_Convention 59 -#define Pragma_CPP_Class 60 -#define Pragma_CPP_Constructor 61 -#define Pragma_CPP_Virtual 62 -#define Pragma_CPP_Vtable 63 -#define Pragma_Debug 64 -#define Pragma_Elaborate 65 -#define Pragma_Elaborate_All 66 -#define Pragma_Elaborate_Body 67 -#define Pragma_Export 68 -#define Pragma_Export_Exception 69 -#define Pragma_Export_Function 70 -#define Pragma_Export_Object 71 -#define Pragma_Export_Procedure 72 -#define Pragma_Export_Value 73 -#define Pragma_Export_Valued_Procedure 74 -#define Pragma_External 75 -#define Pragma_Finalize_Storage_Only 76 -#define Pragma_Ident 77 -#define Pragma_Import 78 -#define Pragma_Import_Exception 79 -#define Pragma_Import_Function 80 -#define Pragma_Import_Object 81 -#define Pragma_Import_Procedure 82 -#define Pragma_Import_Valued_Procedure 83 -#define Pragma_Inline 84 -#define Pragma_Inline_Always 85 -#define Pragma_Inline_Generic 86 -#define Pragma_Inspection_Point 87 -#define Pragma_Interface_Name 88 -#define Pragma_Interrupt_Handler 89 -#define Pragma_Interrupt_Priority 90 -#define Pragma_Java_Constructor 91 -#define Pragma_Java_Interface 92 -#define Pragma_Keep_Names 93 -#define Pragma_Link_With 94 -#define Pragma_Linker_Alias 95 -#define Pragma_Linker_Options 96 -#define Pragma_Linker_Section 97 -#define Pragma_List 98 -#define Pragma_Machine_Attribute 99 -#define Pragma_Main 100 -#define Pragma_Main_Storage 101 -#define Pragma_Memory_Size 102 -#define Pragma_No_Return 103 -#define Pragma_Obsolescent 104 -#define Pragma_Optimize 105 -#define Pragma_Optional_Overriding 106 -#define Pragma_Pack 107 -#define Pragma_Page 108 -#define Pragma_Passive 109 -#define Pragma_Preelaborate 110 -#define Pragma_Priority 111 -#define Pragma_Psect_Object 112 -#define Pragma_Pure 113 -#define Pragma_Pure_Function 114 -#define Pragma_Remote_Call_Interface 115 -#define Pragma_Remote_Types 116 -#define Pragma_Share_Generic 117 -#define Pragma_Shared 118 -#define Pragma_Shared_Passive 119 -#define Pragma_Source_Reference 120 -#define Pragma_Stream_Convert 121 -#define Pragma_Subtitle 122 -#define Pragma_Suppress_All 123 -#define Pragma_Suppress_Debug_Info 124 -#define Pragma_Suppress_Initialization 125 -#define Pragma_System_Name 126 -#define Pragma_Task_Info 127 -#define Pragma_Task_Name 128 -#define Pragma_Task_Storage 129 -#define Pragma_Thread_Body 130 -#define Pragma_Time_Slice 131 -#define Pragma_Title 132 -#define Pragma_Unchecked_Union 133 -#define Pragma_Unimplemented_Unit 134 -#define Pragma_Unreferenced 135 -#define Pragma_Unreserve_All_Interrupts 136 -#define Pragma_Volatile 137 -#define Pragma_Volatile_Components 138 -#define Pragma_Weak_External 139 - -/* The following are deliberately out of alphabetical order, see Snames */ - -#define Pragma_AST_Entry 140 -#define Pragma_Interface 141 -#define Pragma_Storage_Size 142 -#define Pragma_Storage_Unit 143 - -/* Define the numeric values for the conventions. */ - -#define Convention_Ada 0 -#define Convention_Intrinsic 1 -#define Convention_Entry 2 -#define Convention_Protected 3 -#define Convention_Assembler 4 -#define Convention_C 5 -#define Convention_COBOL 6 -#define Convention_CPP 7 -#define Convention_Fortran 8 -#define Convention_Java 9 -#define Convention_Stdcall 10 -#define Convention_Stubbed 11 +#define Pragma_Assertion_Policy 3 +#define Pragma_C_Pass_By_Copy 4 +#define Pragma_Compile_Time_Warning 5 +#define Pragma_Component_Alignment 6 +#define Pragma_Convention_Identifier 7 +#define Pragma_Detect_Blocking 8 +#define Pragma_Discard_Names 9 +#define Pragma_Elaboration_Checks 10 +#define Pragma_Eliminate 11 +#define Pragma_Explicit_Overriding 12 +#define Pragma_Extend_System 13 +#define Pragma_Extensions_Allowed 14 +#define Pragma_External_Name_Casing 15 +#define Pragma_Float_Representation 16 +#define Pragma_Initialize_Scalars 17 +#define Pragma_Interrupt_State 18 +#define Pragma_License 19 +#define Pragma_Locking_Policy 20 +#define Pragma_Long_Float 21 +#define Pragma_No_Run_Time 22 +#define Pragma_No_Strict_Aliasing 23 +#define Pragma_Normalize_Scalars 24 +#define Pragma_Polling 25 +#define Pragma_Persistent_BSS 26 +#define Pragma_Profile 27 +#define Pragma_Profile_Warnings 28 +#define Pragma_Propagate_Exceptions 29 +#define Pragma_Queuing_Policy 30 +#define Pragma_Ravenscar 31 +#define Pragma_Restricted_Run_Time 32 +#define Pragma_Restrictions 33 +#define Pragma_Restriction_Warnings 34 +#define Pragma_Reviewable 35 +#define Pragma_Source_File_Name 36 +#define Pragma_Source_File_Name_Project 37 +#define Pragma_Style_Checks 38 +#define Pragma_Suppress 39 +#define Pragma_Suppress_Exception_Locations 40 +#define Pragma_Task_Dispatching_Policy 41 +#define Pragma_Universal_Data 42 +#define Pragma_Unsuppress 43 +#define Pragma_Use_VADS_Size 44 +#define Pragma_Validity_Checks 45 +#define Pragma_Warnings 46 +#define Pragma_Abort_Defer 47 +#define Pragma_All_Calls_Remote 48 +#define Pragma_Annotate 49 +#define Pragma_Assert 50 +#define Pragma_Asynchronous 51 +#define Pragma_Atomic 52 +#define Pragma_Atomic_Components 53 +#define Pragma_Attach_Handler 54 +#define Pragma_Comment 55 +#define Pragma_Common_Object 56 +#define Pragma_Complex_Representation 57 +#define Pragma_Controlled 58 +#define Pragma_Convention 59 +#define Pragma_CPP_Class 60 +#define Pragma_CPP_Constructor 61 +#define Pragma_CPP_Virtual 62 +#define Pragma_CPP_Vtable 63 +#define Pragma_Debug 64 +#define Pragma_Elaborate 65 +#define Pragma_Elaborate_All 66 +#define Pragma_Elaborate_Body 67 +#define Pragma_Export 68 +#define Pragma_Export_Exception 69 +#define Pragma_Export_Function 70 +#define Pragma_Export_Object 71 +#define Pragma_Export_Procedure 72 +#define Pragma_Export_Value 73 +#define Pragma_Export_Valued_Procedure 74 +#define Pragma_External 75 +#define Pragma_Finalize_Storage_Only 76 +#define Pragma_Ident 77 +#define Pragma_Import 78 +#define Pragma_Import_Exception 79 +#define Pragma_Import_Function 80 +#define Pragma_Import_Object 81 +#define Pragma_Import_Procedure 82 +#define Pragma_Import_Valued_Procedure 83 +#define Pragma_Inline 84 +#define Pragma_Inline_Always 85 +#define Pragma_Inline_Generic 86 +#define Pragma_Inspection_Point 87 +#define Pragma_Interface_Name 88 +#define Pragma_Interrupt_Handler 89 +#define Pragma_Interrupt_Priority 90 +#define Pragma_Java_Constructor 91 +#define Pragma_Java_Interface 92 +#define Pragma_Keep_Names 93 +#define Pragma_Link_With 94 +#define Pragma_Linker_Alias 95 +#define Pragma_Linker_Options 96 +#define Pragma_Linker_Section 97 +#define Pragma_List 98 +#define Pragma_Machine_Attribute 99 +#define Pragma_Main 100 +#define Pragma_Main_Storage 101 +#define Pragma_Memory_Size 102 +#define Pragma_No_Return 103 +#define Pragma_Obsolescent 104 +#define Pragma_Optimize 105 +#define Pragma_Optional_Overriding 106 +#define Pragma_Pack 107 +#define Pragma_Page 108 +#define Pragma_Passive 109 +#define Pragma_Preelaborate 110 +#define Pragma_Preelaborate_05 111 +#define Pragma_Priority 112 +#define Pragma_Psect_Object 113 +#define Pragma_Pure 114 +#define Pragma_Pure_05 115 +#define Pragma_Pure_Function 116 +#define Pragma_Remote_Call_Interface 117 +#define Pragma_Remote_Types 118 +#define Pragma_Share_Generic 119 +#define Pragma_Shared 120 +#define Pragma_Shared_Passive 121 +#define Pragma_Source_Reference 122 +#define Pragma_Stream_Convert 123 +#define Pragma_Subtitle 124 +#define Pragma_Suppress_All 125 +#define Pragma_Suppress_Debug_Info 126 +#define Pragma_Suppress_Initialization 127 +#define Pragma_System_Name 128 +#define Pragma_Task_Info 129 +#define Pragma_Task_Name 130 +#define Pragma_Task_Storage 131 +#define Pragma_Thread_Body 132 +#define Pragma_Time_Slice 133 +#define Pragma_Title 134 +#define Pragma_Unchecked_Union 135 +#define Pragma_Unimplemented_Unit 136 +#define Pragma_Unreferenced 137 +#define Pragma_Unreserve_All_Interrupts 138 +#define Pragma_Volatile 139 +#define Pragma_Volatile_Components 140 +#define Pragma_Weak_External 141 +#define Pragma_AST_Entry 142 +#define Pragma_Interface 143 +#define Pragma_Storage_Size 144 +#define Pragma_Storage_Unit 145 /* End of snames.h (C version of Snames package spec) */ |