diff options
Diffstat (limited to 'gcc-4.2.1/gcc/ada/types.h')
-rw-r--r-- | gcc-4.2.1/gcc/ada/types.h | 369 |
1 files changed, 0 insertions, 369 deletions
diff --git a/gcc-4.2.1/gcc/ada/types.h b/gcc-4.2.1/gcc/ada/types.h deleted file mode 100644 index 94f9b2480..000000000 --- a/gcc-4.2.1/gcc/ada/types.h +++ /dev/null @@ -1,369 +0,0 @@ -/**************************************************************************** - * * - * GNAT COMPILER COMPONENTS * - * * - * T Y P E S * - * * - * C Header File * - * * - * Copyright (C) 1992-2005, Free Software Foundation, Inc. * - * * - * GNAT is free software; you can redistribute it and/or modify it under * - * terms of the GNU General Public License as published by the Free Soft- * - * ware Foundation; either version 2, or (at your option) any later ver- * - * sion. GNAT is distributed in the hope that it will be useful, but WITH- * - * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * - * for more details. You should have received a copy of the GNU General * - * Public License distributed with GNAT; see file COPYING. If not, write * - * to the Free Software Foundation, 51 Franklin Street, Fifth Floor, * - * Boston, MA 02110-1301, USA. * - * * - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * - ****************************************************************************/ - -/* This is the C file that corresponds to the Ada package spec Types. It was - created manually from the files types.ads and types.adb. - - This package contains host independent type definitions which are used - throughout the compiler modules. The comments in the C version are brief - reminders of the purpose of each declaration. For complete documentation, - see the Ada version of these definitions. */ - -/* Boolean Types: */ - -/* Boolean type (cannot use enum, because of bit field restriction on some - compilers). */ -typedef unsigned char Boolean; -#define False 0 -#define True 1 - -/* General Use Integer Types */ - -/* Signed 32/bit integer */ -typedef int Int; - -/* Signed 16 bit integer */ -typedef short Short; - -/* Non/negative Int values */ -typedef Int Nat; - -/* Positive Int values */ -typedef Int Pos; - -/* 8/bit unsigned integer */ -typedef char Byte; - -/* 8/Bit Character and String Types: */ - -/* 8/bit character type */ -typedef char Char; - -/* Graphic characters, as defined in ARM */ -typedef Char Graphic_Character; - -/* Line terminator characters (LF, VT, FF, CR) */ -typedef Char Line_Terminator; - -/* Characters with the upper bit set */ -typedef Char Upper_Half_Character; - -/* String type built on Char (note that zero is an OK index) */ -typedef Char *Str; - -/* Pointer to string of Chars */ -typedef Char *Str_Ptr; - -/* Types for the fat pointer used for strings and the template it - points to. */ -typedef struct {int Low_Bound, High_Bound; } String_Template; -typedef struct {const char *Array; String_Template *Bounds; } - __attribute ((aligned (sizeof (char *) * 2))) Fat_Pointer; - -/* Types for Node/Entity Kinds: */ - -/* The reason that these are defined here in the C version, rather than in the - corresponding packages is that the requirement for putting bodies of - inlined stuff IN the C header changes the dependencies. Both sinfo.h - and einfo.h now reference routines defined in tree.h. - - Note: these types would more naturally be defined as unsigned char, but - once again, the annoying restriction on bit fields for some compilers - bites us! */ - -typedef unsigned int Node_Kind; -typedef unsigned int Entity_Kind; - -/* Types used for Text Buffer Handling: */ - -/* Type used for subscripts in text buffer. */ -typedef Int Text_Ptr; - -/* Text buffer used to hold source file or library information file. */ -typedef Char *Text_Buffer; - -/* Pointer to text buffer. */ -typedef Char *Text_Buffer_Ptr; - -/* Types used for Source Input Handling: */ - -/* Line number type, used for storing all line numbers. */ -typedef Int Line_Number_Type; - -/* Column number type, used for storing all column numbers. */ -typedef Int Column_Number_Type; - -/* Type used to store text of a source file. */ -typedef Text_Buffer Source_Buffer; - -/* Pointer to source buffer. */ -typedef Text_Buffer_Ptr Source_Buffer_Ptr; - -/* Type used for source location. */ -typedef Text_Ptr Source_Ptr; - -/* Value used to indicate no source position set. */ -#define No_Location -1 - -/* Used for Sloc in all nodes in the representation of package Standard. */ -#define Standard_Location -2 - -/* Type used for union of all possible ID values covering all ranges */ -typedef int Union_Id; - -/* Range definitions for Tree Data: */ - -#define List_Low_Bound -100000000 -#define List_High_Bound 0 - -#define Node_Low_Bound 0 -#define Node_High_Bound 99999999 - -#define Elist_Low_Bound 100000000 -#define Elist_High_Bound 199999999 - -#define Elmt_Low_Bound 200000000 -#define Elmt_High_Bound 299999999 - -#define Names_Low_Bound 300000000 -#define Names_High_Bound 399999999 - -#define Strings_Low_Bound 400000000 -#define Strings_High_Bound 499999999 - -#define Ureal_Low_Bound 500000000 -#define Ureal_High_Bound 599999999 - -#define Uint_Low_Bound 600000000 -#define Uint_Table_Start 2000000000 -#define Uint_High_Bound 2099999999 - -SUBTYPE (List_Range, Int, List_Low_Bound, List_High_Bound) -SUBTYPE (Node_Range, Int, Node_Low_Bound, Node_High_Bound) -SUBTYPE (Elist_Range, Int, Elist_Low_Bound, Elist_High_Bound) -SUBTYPE (Elmt_Range, Int, Elmt_Low_Bound, Elmt_High_Bound) -SUBTYPE (Names_Range, Int, Names_Low_Bound, Names_High_Bound) -SUBTYPE (Strings_Range, Int, Strings_Low_Bound, Strings_High_Bound) -SUBTYPE (Uint_Range, Int, Uint_Low_Bound, Uint_High_Bound) -SUBTYPE (Ureal_Range, Int, Ureal_Low_Bound, Ureal_High_Bound) - -/* Types for Names_Table Package: */ - -typedef Int Name_Id; - -/* Name_Id value for no name present. */ -#define No_Name Names_Low_Bound - -/* Name_Id value for bad name. */ -#define Error_Name (Names_Low_Bound + 1) - -/* First subscript of names table. */ -#define First_Name_Id (Names_Low_Bound + 2) - -/* Types for Tree Package: */ - -/* Subscript of nodes table entry. */ -typedef Int Node_Id; - -/* Used in semantics for Node_Id value referencing an entity. */ -typedef Node_Id Entity_Id; - -/* Null node. */ -#define Empty 0 - -/* Error node. */ -#define Error 1 - -/* Subscript of first allocated node. */ -#define First_Node_Id Empty - -/* Subscript of entry in lists table. */ -typedef Int List_Id; - -/* Indicates absence of a list. */ -#define No_List 0 - -/* Error list. */ -#define Error_List List_Low_Bound - -/* Subscript of first allocated list header. */ -#define First_List_Id Error_List - -/* Element list Id, subscript value of entry in lists table. */ -typedef Int Elist_Id; - -/* Used to indicate absence of an element list. */ -#define No_Elist Elist_Low_Bound - -/* Subscript of first allocated elist header */ -#define First_Elist_Id (No_Elist + 1) - -/* Element Id, subscript value of entry in elements table. */ -typedef Int Elmt_Id; - -/* Used to indicate absence of a list element. */ -#define No_Elmt Elmt_Low_Bound - -/* Subscript of first allocated element */ -#define First_Elmt_Id (No_Elmt + 1) - -/* Types for String_Table Package: */ - -/* Subscript of strings table entry. */ -typedef Int String_Id; - -/* Used to indicate missing string Id. */ -#define No_String Strings_Low_Bound - -/* Subscript of first entry in strings table. */ -#define First_String_Id (No_String + 1) - -/* Types for Uint_Support Package: */ - -/* Type used for representation of universal integers. */ -typedef Int Uint; - -/* Used to indicate missing Uint value. */ -#define No_Uint Uint_Low_Bound - -/* Base value used to represent Uint values. */ -#define Base 32768 - -/* Minimum and maximum integers directly representable as Uint values */ -#define Min_Direct (-(Base - 1)) -#define Max_Direct ((Base - 1) * (Base - 1)) - -#define Uint_Direct_Bias (Uint_Low_Bound + Base) -#define Uint_Direct_First (Uint_Direct_Bias + Min_Direct) -#define Uint_Direct_Last (Uint_Direct_Bias + Max_Direct) - -/* Define range of direct biased values */ -SUBTYPE (Uint_Direct, Uint, Uint_Direct_First, Uint_Direct_Last) - -/* Constants in Uint format. */ -#define Uint_0 (Uint_Direct_Bias + 0) -#define Uint_1 (Uint_Direct_Bias + 1) -#define Uint_2 (Uint_Direct_Bias + 2) -#define Uint_10 (Uint_Direct_Bias + 10) -#define Uint_16 (Uint_Direct_Bias + 16) - -/* Types for Ureal_Support Package: */ - -/* Type used for representation of universal reals. */ -typedef Int Ureal; - -/* Used to indicate missing Uint value. */ -#define No_Ureal Ureal_Low_Bound - -/* Subscript of first entry in Ureal table. */ -#define Ureal_First_Entry (No_Ureal + 1) - -/* Character Code Type: */ - -/* Character code value, intended to be 32 bits. */ -typedef unsigned Char_Code; - -/* Types Used for Library Management: */ - -/* Unit number. */ -typedef Int Unit_Number_Type; - -/* Unit number value for main unit. */ -#define Main_Unit 0 - -/* Type used for lines table. */ -typedef Source_Ptr *Lines_Table_Type; - -/* Type used for pointer to lines table. */ -typedef Source_Ptr *Lines_Table_Ptr; - -/* Length of time stamp value. */ -#define Time_Stamp_Length 22 - -/* Type used to represent time stamp. */ -typedef Char *Time_Stamp_Type; - -/* Name_Id synonym used for file names. */ -typedef Name_Id File_Name_Type; - -/* Constant used to indicate no file found. */ -#define No_File No_Name - -/* Name_Id synonym used for unit names. */ -typedef Name_Id Unit_Name_Type; - -/* Definitions for mechanism type and values */ -typedef Int Mechanism_Type; -#define Default 0 -#define By_Copy (-1) -#define By_Reference (-2) -#define By_Descriptor (-3) -#define By_Descriptor_UBS (-4) -#define By_Descriptor_UBSB (-5) -#define By_Descriptor_UBA (-6) -#define By_Descriptor_S (-7) -#define By_Descriptor_SB (-8) -#define By_Descriptor_A (-9) -#define By_Descriptor_NCA (-10) - -/* Definitions of Reason codes for Raise_xxx_Error nodes */ -#define CE_Access_Check_Failed 0 -#define CE_Access_Parameter_Is_Null 1 -#define CE_Discriminant_Check_Failed 2 -#define CE_Divide_By_Zero 3 -#define CE_Explicit_Raise 4 -#define CE_Index_Check_Failed 5 -#define CE_Invalid_Data 6 -#define CE_Length_Check_Failed 7 -#define CE_Null_Exception_Id 9 -#define CE_Null_Not_Allowed 9 -#define CE_Overflow_Check_Failed 10 -#define CE_Partition_Check_Failed 11 -#define CE_Range_Check_Failed 12 -#define CE_Tag_Check_Failed 13 - -#define PE_Access_Before_Elaboration 14 -#define PE_Accessibility_Check_Failed 15 -#define PE_All_Guards_Closed 16 -#define PE_Duplicated_Entry_Address 17 -#define PE_Explicit_Raise 18 -#define PE_Finalize_Raised_Exception 19 -#define PE_Implicit_Return 20 -#define PE_Misaligned_Address_Value 21 -#define PE_Missing_Return 22 -#define PE_Overlaid_Controlled_Object 23 -#define PE_Potentially_Blocking_Operation 24 -#define PE_Stubbed_Subprogram_Called 25 -#define PE_Unchecked_Union_Restriction 26 -#define PE_Illegal_RACW_E_4_18 27 - -#define SE_Empty_Storage_Pool 28 -#define SE_Explicit_Raise 29 -#define SE_Infinite_Recursion 30 -#define SE_Object_Too_Large 31 -#define SE_Restriction_Violation 32 - -#define LAST_REASON_CODE 31 |