2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>

* bindgen.adb Comment reformatting. Update the list of run-time globals.
	(Gen_Adainit_Ada): Add the declaration, import and value set for
	configuration flag Canonical_Streams.
	(Gen_Adainit_C): Add the declaration and initial value of external
	symbol __gl_canonical_streams.
	
	* init.c: Update the list of global values computed by the binder.
	
	* opt.ads: Add flag Canonical_Streams.
	
	* par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
	semantically handled pragmas.
	
	* sem_prag.adb: Add an entry into enumeration type Sig_Flags.
	(Analyze_Pragma): Add case for pragma Canonical_Streams.
	
	* snames.adb: Add character value for name Canonical_Streams.
	
	* snames.ads:
	Add Name_Canonical_Streams to the list of configuration pragmas.
	Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
	
	* snames.h: Add a definition for Pragma_Canonical_Streams.
	
	* s-ststop.adb:
	Add a flag and import to seize the value of external symbol
	__gl_canonical_streams. Update comment and initial value of constant
	Use_Block_IO.
	
	* gnat_rm.texi: Add section of pragma Canonical_Streams.
	
	* gnat_ugn.texi:
	Add pragma Canonical_Streams to the list of configuration pragmas.

From-SVN: r138407
This commit is contained in:
Hristian Kirtchev 2008-07-31 15:27:47 +02:00 committed by Arnaud Charlet
parent 8198b93da5
commit fb59381ec6
11 changed files with 947 additions and 859 deletions

View File

@ -126,39 +126,39 @@ package body Bindgen is
-- Detect_Blocking : Integer;
-- Default_Stack_Size : Integer;
-- Leap_Seconds_Support : Integer;
-- Canonical_Streams : Integer;
-- Main_Priority is the priority value set by pragma Priority in the
-- main program. If no such pragma is present, the value is -1.
-- Main_Priority is the priority value set by pragma Priority in the main
-- program. If no such pragma is present, the value is -1.
-- Time_Slice_Value is the time slice value set by pragma Time_Slice
-- in the main program, or by the use of a -Tnnn parameter for the
-- binder (if both are present, the binder value overrides). The
-- value is in milliseconds. A value of zero indicates that time
-- slicing should be suppressed. If no pragma is present, and no
-- -T switch was used, the value is -1.
-- Time_Slice_Value is the time slice value set by pragma Time_Slice in the
-- main program, or by the use of a -Tnnn parameter for the binder (if both
-- are present, the binder value overrides). The value is in milliseconds.
-- A value of zero indicates that time slicing should be suppressed. If no
-- pragma is present, and no -T switch was used, the value is -1.
-- WC_Encoding shows the wide character encoding method used for
-- the main program. This is one of the encoding letters defined
-- in System.WCh_Con.WC_Encoding_Letters.
-- WC_Encoding shows the wide character encoding method used for the main
-- program. This is one of the encoding letters defined in
-- System.WCh_Con.WC_Encoding_Letters.
-- Locking_Policy is a space if no locking policy was specified
-- for the partition. If a locking policy was specified, the value
-- is the upper case first character of the locking policy name,
-- for example, 'C' for Ceiling_Locking.
-- Locking_Policy is a space if no locking policy was specified for the
-- partition. If a locking policy was specified, the value is the upper
-- case first character of the locking policy name, for example, 'C' for
-- Ceiling_Locking.
-- Queuing_Policy is a space if no queuing policy was specified
-- for the partition. If a queuing policy was specified, the value
-- is the upper case first character of the queuing policy name
-- for example, 'F' for FIFO_Queuing.
-- Queuing_Policy is a space if no queuing policy was specified for the
-- partition. If a queuing policy was specified, the value is the upper
-- case first character of the queuing policy name for example, 'F' for
-- FIFO_Queuing.
-- Task_Dispatching_Policy is a space if no task dispatching policy
-- was specified for the partition. If a task dispatching policy
-- was specified, the value is the upper case first character of
-- the policy name, e.g. 'F' for FIFO_Within_Priorities.
-- Task_Dispatching_Policy is a space if no task dispatching policy was
-- specified for the partition. If a task dispatching policy was specified,
-- the value is the upper case first character of the policy name, e.g. 'F'
-- for FIFO_Within_Priorities.
-- Priority_Specific_Dispatching is the address of a string used to
-- store the task dispatching policy specified for the different priorities
-- in the partition. The length of this string is determined by the last
-- Priority_Specific_Dispatching is the address of a string used to store
-- the task dispatching policy specified for the different priorities in
-- the partition. The length of this string is determined by the last
-- priority for which such a pragma applies (the string will be a null
-- string if no specific dispatching policies were used). If pragma were
-- present, the entries apply to the priorities in sequence from the first
@ -182,12 +182,12 @@ package body Bindgen is
-- such a pragma is given (the string will be a null string if no pragmas
-- were used). If pragma were present the entries apply to the interrupts
-- in sequence from the first interrupt, and are set to one of four
-- possible settings: 'n' for not specified, 'u' for user, 'r' for
-- run time, 's' for system, see description of Interrupt_State pragma
-- for further details.
-- possible settings: 'n' for not specified, 'u' for user, 'r' for run
-- time, 's' for system, see description of Interrupt_State pragma for
-- further details.
-- Num_Interrupt_States is the length of the Interrupt_States string.
-- It will be set to zero if no Interrupt_State pragmas are present.
-- Num_Interrupt_States is the length of the Interrupt_States string. It
-- will be set to zero if no Interrupt_State pragmas are present.
-- Unreserve_All_Interrupts is set to one if at least one unit in the
-- partition had a pragma Unreserve_All_Interrupts, and zero otherwise.
@ -201,18 +201,21 @@ package body Bindgen is
-- this partition, and to zero if longjmp/setjmp exceptions are used.
-- the use of zero
-- Detect_Blocking indicates whether pragma Detect_Blocking is
-- active or not. A value of zero indicates that the pragma is not
-- present, while a value of 1 signals its presence in the
-- partition.
-- Detect_Blocking indicates whether pragma Detect_Blocking is active or
-- not. A value of zero indicates that the pragma is not present, while a
-- value of 1 signals its presence in the partition.
-- Default_Stack_Size is the default stack size used when creating an
-- Ada task with no explicit Storize_Size clause.
-- Default_Stack_Size is the default stack size used when creating an Ada
-- task with no explicit Storize_Size clause.
-- Leap_Seconds_Support denotes whether leap seconds have been enabled or
-- disabled. A value of zero indicates that leap seconds are turned "off",
-- while a value of one signifies "on" status.
-- Canonical_Streams indicates whether stream-related optimizations are
-- active. A value of zero indicates that all optimizations are active,
-- while a value of one signifies that they have been disabled.
-----------------------
-- Local Subprograms --
-----------------------
@ -593,6 +596,9 @@ package body Bindgen is
WBI (" Leap_Seconds_Support : Integer;");
WBI (" pragma Import (C, Leap_Seconds_Support, " &
"""__gl_leap_seconds_support"");");
WBI (" Canonical_Streams : Integer;");
WBI (" pragma Import (C, Canonical_Streams, " &
"""__gl_canonical_streams"");");
-- Import entry point for elaboration time signal handler
-- installation, and indication of if it's been called previously.
@ -761,6 +767,17 @@ package body Bindgen is
Set_String (";");
Write_Statement_Buffer;
Set_String (" Canonical_Streams := ");
if Canonical_Streams then
Set_Int (1);
else
Set_Int (0);
end if;
Set_String (";");
Write_Statement_Buffer;
-- Generate call to Install_Handler
WBI ("");
@ -1042,6 +1059,18 @@ package body Bindgen is
Set_String (";");
Write_Statement_Buffer;
WBI (" extern int __gl_canonical_streams;");
Set_String (" __gl_canonical_streams = ");
if Canonical_Streams then
Set_Int (1);
else
Set_Int (0);
end if;
Set_String (";");
Write_Statement_Buffer;
WBI ("");
-- Install elaboration time signal handler

View File

@ -104,6 +104,7 @@ Implementation Defined Pragmas
* Pragma Assert::
* Pragma Ast_Entry::
* Pragma C_Pass_By_Copy::
* Pragma Canonical_Streams::
* Pragma Check::
* Pragma Check_Name::
* Pragma Check_Policy::
@ -705,6 +706,7 @@ consideration, the use of these pragmas should be minimized.
* Pragma Assert::
* Pragma Ast_Entry::
* Pragma C_Pass_By_Copy::
* Pragma Canonical_Streams::
* Pragma Check::
* Pragma Check_Name::
* Pragma Check_Policy::
@ -1057,6 +1059,27 @@ You can also pass records by copy by specifying the convention
@code{Import} and @code{Export} pragmas, which allow specification of
passing mechanisms on a parameter by parameter basis.
@node Pragma Canonical_Streams
@unnumberedsec Canonical Streams
@cindex Canonical streams
@findex Canonical_Streams
@noindent
Syntax:
@smallexample @c ada
pragma Canonical_Streams;
@end smallexample
@noindent
This configuration pragma affects the behavior of stream attributes of any
@code{String}, @code{Wide_String} or @code{Wide_Wide_String} based type. When
this pragma is present, @code{'Input}, @code{'Output}, @code{'Read} and
@code{'Write} exibit Ada 95 canonical behavior, in other words, streaming of
values is done character by character.
@noindent
The use of this pragma is intended to bypass any implementation-related
optimizations allowed by Ada 2005 RM 13.13.2 (56/2) Implementation Permission.
@node Pragma Check
@unnumberedsec Pragma Check
@cindex Assertions

View File

@ -10925,6 +10925,7 @@ recognized by GNAT:
Ada_2005
Assertion_Policy
C_Pass_By_Copy
Canonical_Streams
Check_Name
Check_Policy
Compile_Time_Error

View File

@ -102,6 +102,7 @@ int __gl_zero_cost_exceptions = 0;
int __gl_detect_blocking = 0;
int __gl_default_stack_size = -1;
int __gl_leap_seconds_support = 0;
int __gl_canonical_streams = 0;
/* Indication of whether synchronous signal handler has already been
installed by a previous call to adainit. */

View File

@ -283,6 +283,11 @@ package Opt is
-- is set True, or if pragma No_Run_Time is used. See the spec of Rtsfind
-- for details on the handling of the latter pragma.
Canonical_Streams : Boolean := False;
-- GNATBIND
-- Set to True if configuration pragma Canonical_Streams is present. It
-- controls the canonical behaviour of stream operations for String types.
Constant_Condition_Warnings : Boolean := False;
-- GNAT
-- Set to True to activate warnings on constant conditions

View File

@ -1054,6 +1054,7 @@ begin
Pragma_Atomic |
Pragma_Atomic_Components |
Pragma_Attach_Handler |
Pragma_Canonical_Streams |
Pragma_Check |
Pragma_Check_Name |
Pragma_Check_Policy |

View File

@ -92,12 +92,23 @@ package body System.Strings.Stream_Ops is
subtype String_Block is String_Type (1 .. C_In_Default_Block);
-- Block IO is used when the low level can support block IO and the size
-- of the character type is a multiple of the stream element type.
Flag : Integer;
pragma Import (C, Flag, "__gl_canonical_streams");
-- This imported value is used to determine whether configuration pragma
-- Canonical_Streams is present. A value of zero indicates whether any
-- stream-related optimizations are enabled, while a value of one
-- indicates a disabled status.
Canonical_Streams : constant Boolean := Flag = 1;
-- Block IO is used when the low level can support block IO, the size
-- of the character type is a multiple of the stream element type and
-- the compilation can use stream optimizations.
Use_Block_IO : constant Boolean :=
Stream_Attributes.Block_IO_OK
and then C_Size mod SE_Size = 0;
and then C_Size mod SE_Size = 0
and then not Canonical_Streams;
-- Conversions to and from Default_Block

View File

@ -5540,6 +5540,18 @@ package body Sem_Prag is
end if;
end C_Pass_By_Copy;
-----------------------
-- Canonical_Streams --
-----------------------
-- pragma Canonical_Streams;
when Pragma_Canonical_Streams =>
GNAT_Pragma;
Check_Arg_Count (0);
Check_Valid_Configuration_Pragma;
Canonical_Streams := True;
-----------
-- Check --
-----------
@ -12081,6 +12093,7 @@ package body Sem_Prag is
Pragma_Atomic => 0,
Pragma_Atomic_Components => 0,
Pragma_Attach_Handler => -1,
Pragma_Canonical_Streams => -1,
Pragma_Check => 99,
Pragma_Check_Name => 0,
Pragma_Check_Policy => 0,

View File

@ -183,6 +183,7 @@ package body Snames is
"ada_2005#" &
"assertion_policy#" &
"c_pass_by_copy#" &
"canonical_streams#" &
"check_name#" &
"check_policy#" &
"compile_time_error#" &

File diff suppressed because it is too large Load Diff

View File

@ -227,169 +227,170 @@ extern unsigned char Get_Pragma_Id (int);
#define Pragma_Ada_2005 3
#define Pragma_Assertion_Policy 4
#define Pragma_C_Pass_By_Copy 5
#define Pragma_Check_Name 6
#define Pragma_Check_Policy 7
#define Pragma_Compile_Time_Error 8
#define Pragma_Compile_Time_Warning 9
#define Pragma_Compiler_Unit 10
#define Pragma_Component_Alignment 11
#define Pragma_Convention_Identifier 12
#define Pragma_Debug_Policy 13
#define Pragma_Detect_Blocking 14
#define Pragma_Discard_Names 15
#define Pragma_Elaboration_Checks 16
#define Pragma_Eliminate 17
#define Pragma_Extend_System 18
#define Pragma_Extensions_Allowed 19
#define Pragma_External_Name_Casing 20
#define Pragma_Favor_Top_Level 21
#define Pragma_Float_Representation 22
#define Pragma_Implicit_Packing 23
#define Pragma_Initialize_Scalars 24
#define Pragma_Interrupt_State 25
#define Pragma_License 26
#define Pragma_Locking_Policy 27
#define Pragma_Long_Float 28
#define Pragma_No_Run_Time 29
#define Pragma_No_Strict_Aliasing 30
#define Pragma_Normalize_Scalars 31
#define Pragma_Optimize_Alignment 32
#define Pragma_Polling 33
#define Pragma_Canonical_Streams 6
#define Pragma_Check_Name 7
#define Pragma_Check_Policy 8
#define Pragma_Compile_Time_Error 9
#define Pragma_Compile_Time_Warning 10
#define Pragma_Compiler_Unit 11
#define Pragma_Component_Alignment 12
#define Pragma_Convention_Identifier 13
#define Pragma_Debug_Policy 14
#define Pragma_Detect_Blocking 15
#define Pragma_Discard_Names 16
#define Pragma_Elaboration_Checks 17
#define Pragma_Eliminate 18
#define Pragma_Extend_System 19
#define Pragma_Extensions_Allowed 20
#define Pragma_External_Name_Casing 21
#define Pragma_Favor_Top_Level 22
#define Pragma_Float_Representation 23
#define Pragma_Implicit_Packing 24
#define Pragma_Initialize_Scalars 25
#define Pragma_Interrupt_State 26
#define Pragma_License 27
#define Pragma_Locking_Policy 28
#define Pragma_Long_Float 29
#define Pragma_No_Run_Time 30
#define Pragma_No_Strict_Aliasing 31
#define Pragma_Normalize_Scalars 32
#define Pragma_Optimize_Alignment 33
#define Pragma_Persistent_BSS 34
#define Pragma_Priority_Specific_Dispatching 35
#define Pragma_Profile 36
#define Pragma_Profile_Warnings 37
#define Pragma_Propagate_Exceptions 38
#define Pragma_Queuing_Policy 39
#define Pragma_Ravenscar 40
#define Pragma_Restricted_Run_Time 41
#define Pragma_Restrictions 42
#define Pragma_Restriction_Warnings 43
#define Pragma_Reviewable 44
#define Pragma_Source_File_Name 45
#define Pragma_Source_File_Name_Project 46
#define Pragma_Style_Checks 47
#define Pragma_Suppress 48
#define Pragma_Suppress_Exception_Locations 49
#define Pragma_Task_Dispatching_Policy 50
#define Pragma_Universal_Data 51
#define Pragma_Unsuppress 52
#define Pragma_Use_VADS_Size 53
#define Pragma_Validity_Checks 54
#define Pragma_Warnings 55
#define Pragma_Wide_Character_Encoding 56
#define Pragma_Abort_Defer 57
#define Pragma_All_Calls_Remote 58
#define Pragma_Annotate 59
#define Pragma_Assert 60
#define Pragma_Asynchronous 61
#define Pragma_Atomic 62
#define Pragma_Atomic_Components 63
#define Pragma_Attach_Handler 64
#define Pragma_Check 65
#define Pragma_CIL_Constructor 66
#define Pragma_Comment 67
#define Pragma_Common_Object 68
#define Pragma_Complete_Representation 69
#define Pragma_Complex_Representation 70
#define Pragma_Controlled 71
#define Pragma_Convention 72
#define Pragma_CPP_Class 73
#define Pragma_CPP_Constructor 74
#define Pragma_CPP_Virtual 75
#define Pragma_CPP_Vtable 76
#define Pragma_Debug 77
#define Pragma_Elaborate 78
#define Pragma_Elaborate_All 79
#define Pragma_Elaborate_Body 80
#define Pragma_Export 81
#define Pragma_Export_Exception 82
#define Pragma_Export_Function 83
#define Pragma_Export_Object 84
#define Pragma_Export_Procedure 85
#define Pragma_Export_Value 86
#define Pragma_Export_Valued_Procedure 87
#define Pragma_External 88
#define Pragma_Finalize_Storage_Only 89
#define Pragma_Ident 90
#define Pragma_Implemented_By_Entry 91
#define Pragma_Import 92
#define Pragma_Import_Exception 93
#define Pragma_Import_Function 94
#define Pragma_Import_Object 95
#define Pragma_Import_Procedure 96
#define Pragma_Import_Valued_Procedure 97
#define Pragma_Inline 98
#define Pragma_Inline_Always 99
#define Pragma_Inline_Generic 100
#define Pragma_Inspection_Point 101
#define Pragma_Interface_Name 102
#define Pragma_Interrupt_Handler 103
#define Pragma_Interrupt_Priority 104
#define Pragma_Java_Constructor 105
#define Pragma_Java_Interface 106
#define Pragma_Keep_Names 107
#define Pragma_Link_With 108
#define Pragma_Linker_Alias 109
#define Pragma_Linker_Constructor 110
#define Pragma_Linker_Destructor 111
#define Pragma_Linker_Options 112
#define Pragma_Linker_Section 113
#define Pragma_List 114
#define Pragma_Machine_Attribute 115
#define Pragma_Main 116
#define Pragma_Main_Storage 117
#define Pragma_Memory_Size 118
#define Pragma_No_Body 119
#define Pragma_No_Return 120
#define Pragma_Obsolescent 121
#define Pragma_Optimize 122
#define Pragma_Pack 123
#define Pragma_Page 124
#define Pragma_Passive 125
#define Pragma_Postcondition 126
#define Pragma_Precondition 127
#define Pragma_Preelaborable_Initialization 128
#define Pragma_Preelaborate 129
#define Pragma_Preelaborate_05 130
#define Pragma_Psect_Object 131
#define Pragma_Pure 132
#define Pragma_Pure_05 133
#define Pragma_Pure_Function 134
#define Pragma_Relative_Deadline 135
#define Pragma_Remote_Call_Interface 136
#define Pragma_Remote_Types 137
#define Pragma_Share_Generic 138
#define Pragma_Shared 139
#define Pragma_Shared_Passive 140
#define Pragma_Source_Reference 141
#define Pragma_Static_Elaboration_Desired 142
#define Pragma_Stream_Convert 143
#define Pragma_Subtitle 144
#define Pragma_Suppress_All 145
#define Pragma_Suppress_Debug_Info 146
#define Pragma_Suppress_Initialization 147
#define Pragma_System_Name 148
#define Pragma_Task_Info 149
#define Pragma_Task_Name 150
#define Pragma_Task_Storage 151
#define Pragma_Time_Slice 152
#define Pragma_Title 153
#define Pragma_Unchecked_Union 154
#define Pragma_Unimplemented_Unit 155
#define Pragma_Universal_Aliasing 156
#define Pragma_Unmodified 157
#define Pragma_Unreferenced 158
#define Pragma_Unreferenced_Objects 159
#define Pragma_Unreserve_All_Interrupts 160
#define Pragma_Volatile 161
#define Pragma_Volatile_Components 162
#define Pragma_Weak_External 163
#define Pragma_AST_Entry 164
#define Pragma_Fast_Math 165
#define Pragma_Interface 166
#define Pragma_Priority 167
#define Pragma_Storage_Size 168
#define Pragma_Storage_Unit 169
#define Pragma_Polling 35
#define Pragma_Priority_Specific_Dispatching 36
#define Pragma_Profile 37
#define Pragma_Profile_Warnings 38
#define Pragma_Propagate_Exceptions 39
#define Pragma_Queuing_Policy 40
#define Pragma_Ravenscar 41
#define Pragma_Restricted_Run_Time 42
#define Pragma_Restrictions 43
#define Pragma_Restriction_Warnings 44
#define Pragma_Reviewable 45
#define Pragma_Source_File_Name 46
#define Pragma_Source_File_Name_Project 47
#define Pragma_Style_Checks 48
#define Pragma_Suppress 49
#define Pragma_Suppress_Exception_Locations 50
#define Pragma_Task_Dispatching_Policy 51
#define Pragma_Universal_Data 52
#define Pragma_Unsuppress 53
#define Pragma_Use_VADS_Size 54
#define Pragma_Validity_Checks 55
#define Pragma_Warnings 56
#define Pragma_Wide_Character_Encoding 57
#define Pragma_Abort_Defer 58
#define Pragma_All_Calls_Remote 59
#define Pragma_Annotate 60
#define Pragma_Assert 61
#define Pragma_Asynchronous 62
#define Pragma_Atomic 63
#define Pragma_Atomic_Components 64
#define Pragma_Attach_Handler 65
#define Pragma_Check 66
#define Pragma_CIL_Constructor 67
#define Pragma_Comment 68
#define Pragma_Common_Object 69
#define Pragma_Complete_Representation 70
#define Pragma_Complex_Representation 71
#define Pragma_Controlled 72
#define Pragma_Convention 73
#define Pragma_CPP_Class 74
#define Pragma_CPP_Constructor 75
#define Pragma_CPP_Virtual 76
#define Pragma_CPP_Vtable 77
#define Pragma_Debug 78
#define Pragma_Elaborate 79
#define Pragma_Elaborate_All 80
#define Pragma_Elaborate_Body 81
#define Pragma_Export 82
#define Pragma_Export_Exception 83
#define Pragma_Export_Function 84
#define Pragma_Export_Object 85
#define Pragma_Export_Procedure 86
#define Pragma_Export_Value 87
#define Pragma_Export_Valued_Procedure 88
#define Pragma_External 89
#define Pragma_Finalize_Storage_Only 90
#define Pragma_Ident 91
#define Pragma_Implemented_By_Entry 92
#define Pragma_Import 93
#define Pragma_Import_Exception 94
#define Pragma_Import_Function 95
#define Pragma_Import_Object 96
#define Pragma_Import_Procedure 97
#define Pragma_Import_Valued_Procedure 98
#define Pragma_Inline 99
#define Pragma_Inline_Always 100
#define Pragma_Inline_Generic 101
#define Pragma_Inspection_Point 102
#define Pragma_Interface_Name 103
#define Pragma_Interrupt_Handler 104
#define Pragma_Interrupt_Priority 105
#define Pragma_Java_Constructor 106
#define Pragma_Java_Interface 107
#define Pragma_Keep_Names 108
#define Pragma_Link_With 109
#define Pragma_Linker_Alias 110
#define Pragma_Linker_Constructor 111
#define Pragma_Linker_Destructor 112
#define Pragma_Linker_Options 113
#define Pragma_Linker_Section 114
#define Pragma_List 115
#define Pragma_Machine_Attribute 116
#define Pragma_Main 117
#define Pragma_Main_Storage 118
#define Pragma_Memory_Size 119
#define Pragma_No_Body 120
#define Pragma_No_Return 121
#define Pragma_Obsolescent 122
#define Pragma_Optimize 123
#define Pragma_Pack 124
#define Pragma_Page 125
#define Pragma_Passive 126
#define Pragma_Postcondition 127
#define Pragma_Precondition 128
#define Pragma_Preelaborable_Initialization 129
#define Pragma_Preelaborate 130
#define Pragma_Preelaborate_05 131
#define Pragma_Psect_Object 132
#define Pragma_Pure 133
#define Pragma_Pure_05 134
#define Pragma_Pure_Function 135
#define Pragma_Relative_Deadline 136
#define Pragma_Remote_Call_Interface 137
#define Pragma_Remote_Types 138
#define Pragma_Share_Generic 139
#define Pragma_Shared 140
#define Pragma_Shared_Passive 141
#define Pragma_Source_Reference 142
#define Pragma_Static_Elaboration_Desired 143
#define Pragma_Stream_Convert 144
#define Pragma_Subtitle 145
#define Pragma_Suppress_All 146
#define Pragma_Suppress_Debug_Info 147
#define Pragma_Suppress_Initialization 148
#define Pragma_System_Name 149
#define Pragma_Task_Info 150
#define Pragma_Task_Name 151
#define Pragma_Task_Storage 152
#define Pragma_Time_Slice 153
#define Pragma_Title 154
#define Pragma_Unchecked_Union 155
#define Pragma_Unimplemented_Unit 156
#define Pragma_Universal_Aliasing 157
#define Pragma_Unmodified 158
#define Pragma_Unreferenced 159
#define Pragma_Unreferenced_Objects 160
#define Pragma_Unreserve_All_Interrupts 161
#define Pragma_Volatile 162
#define Pragma_Volatile_Components 163
#define Pragma_Weak_External 164
#define Pragma_AST_Entry 165
#define Pragma_Fast_Math 166
#define Pragma_Interface 167
#define Pragma_Priority 168
#define Pragma_Storage_Size 169
#define Pragma_Storage_Unit 170
/* End of snames.h (C version of Snames package spec) */