OSDN Git Service

* decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
[pf3gnuchains/gcc-fork.git] / gcc / ada / stand.ads
index b0e306a..f2fadcc 100644 (file)
@@ -6,29 +6,26 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                                                                          --
---          Copyright (C) 1992-2001 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2009, 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- --
+-- ware  Foundation;  either version 3,  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,  59 Temple Place - Suite 330,  Boston, --
--- MA 02111-1307, USA.                                                      --
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
+--                                                                          --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception,   --
+-- version 3.1, as published by the Free Software Foundation.               --
 --                                                                          --
--- As a special exception,  if other files  instantiate  generics from this --
--- unit, or you link  this unit with other files  to produce an executable, --
--- this  unit  does not  by itself cause  the resulting  executable  to  be --
--- covered  by the  GNU  General  Public  License.  This exception does not --
--- however invalidate  any other reasons why  the executable file  might be --
--- covered by the  GNU Public License.                                      --
+-- You should have received a copy of the GNU General Public License and    --
+-- a copy of the GCC Runtime Library Exception along with this program;     --
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
+-- <http://www.gnu.org/licenses/>.                                          --
 --                                                                          --
 -- GNAT was originally developed  by the GNAT team at  New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
 
 with Types; use Types;
 
---  Do we really need the with of Namet?
-
-pragma Warnings (Off);
-with Namet; use Namet;
-pragma Elaborate_All (Namet);
-pragma Warnings (On);
-
 package Stand is
 
    type Standard_Entity_Type is (
@@ -55,14 +45,11 @@ package Stand is
       S_Standard,
       S_ASCII,
 
-      --  Types defined in package Standard
+      --  Types and subtypes defined in package Standard (in the order in which
+      --  they appear in the RM, so that the declarations are in the right
+      --  order for the purposes of ASIS traversals
 
       S_Boolean,
-      S_Character,
-      S_Wide_Character,
-      S_String,
-      S_Wide_String,
-      S_Duration,
 
       S_Short_Short_Integer,
       S_Short_Integer,
@@ -70,21 +57,29 @@ package Stand is
       S_Long_Integer,
       S_Long_Long_Integer,
 
+      S_Natural,
+      S_Positive,
+
       S_Short_Float,
       S_Float,
       S_Long_Float,
       S_Long_Long_Float,
 
+      S_Character,
+      S_Wide_Character,
+      S_Wide_Wide_Character,
+
+      S_String,
+      S_Wide_String,
+      S_Wide_Wide_String,
+
+      S_Duration,
+
       --  Enumeration literals for type Boolean
 
       S_False,
       S_True,
 
-      --  Subtypes declared in package Standard
-
-      S_Natural,
-      S_Positive,
-
       --  Exceptions declared in package Standard
 
       S_Constraint_Error,
@@ -93,12 +88,13 @@ package Stand is
       S_Storage_Error,
       S_Tasking_Error,
 
-      --  Binary Operators declared in package Standard.
+      --  Binary Operators declared in package Standard
 
       S_Op_Add,
       S_Op_And,
       S_Op_Concat,
       S_Op_Concatw,
+      S_Op_Concatww,
       S_Op_Divide,
       S_Op_Eq,
       S_Op_Expon,
@@ -216,7 +212,7 @@ package Stand is
       S_DEL);           -- 16#7F#
 
    subtype S_Types is
-     Standard_Entity_Type range S_Boolean .. S_Long_Long_Float;
+     Standard_Entity_Type range S_Boolean .. S_Duration;
 
    subtype S_Exceptions is
      Standard_Entity_Type range S_Constraint_Error .. S_Tasking_Error;
@@ -251,8 +247,10 @@ package Stand is
    Standard_ASCII               : Entity_Id renames SE (S_ASCII);
    Standard_Character           : Entity_Id renames SE (S_Character);
    Standard_Wide_Character      : Entity_Id renames SE (S_Wide_Character);
+   Standard_Wide_Wide_Character : Entity_Id renames SE (S_Wide_Wide_Character);
    Standard_String              : Entity_Id renames SE (S_String);
    Standard_Wide_String         : Entity_Id renames SE (S_Wide_String);
+   Standard_Wide_Wide_String    : Entity_Id renames SE (S_Wide_Wide_String);
 
    Standard_Boolean             : Entity_Id renames SE (S_Boolean);
    Standard_False               : Entity_Id renames SE (S_False);
@@ -284,6 +282,7 @@ package Stand is
    Standard_Op_And              : Entity_Id renames SE (S_Op_And);
    Standard_Op_Concat           : Entity_Id renames SE (S_Op_Concat);
    Standard_Op_Concatw          : Entity_Id renames SE (S_Op_Concatw);
+   Standard_Op_Concatww         : Entity_Id renames SE (S_Op_Concatww);
    Standard_Op_Divide           : Entity_Id renames SE (S_Op_Divide);
    Standard_Op_Eq               : Entity_Id renames SE (S_Op_Eq);
    Standard_Op_Expon            : Entity_Id renames SE (S_Op_Expon);
@@ -311,6 +310,9 @@ package Stand is
    --  Highest List_Id value used by Standard (including those used by
    --  normal list headers, element list headers, and list elements)
 
+   Boolean_Literals : array (Boolean) of Entity_Id;
+   --  Entities for the two boolean literals, used by the expander
+
    -------------------------------------
    -- Semantic Phase Special Entities --
    -------------------------------------
@@ -327,7 +329,7 @@ package Stand is
    --  This is a type used to represent the return type of procedures
 
    Standard_Exception_Type  : Entity_Id;
-   --  This is a type used to represent the Etype of exceptions.
+   --  This is a type used to represent the Etype of exceptions
 
    Standard_A_String   : Entity_Id;
    --  An access to String type used for building elements of tables
@@ -337,6 +339,10 @@ package Stand is
    --  Access to character, used as a component of the exception type to
    --  denote a thin pointer component.
 
+   Standard_Debug_Renaming_Type : Entity_Id;
+   --  A zero-size subtype of Integer, used as the type of variables used
+   --  to provide the debugger with name encodings for renaming declarations.
+
    --  The entities labeled Any_xxx are used in situations where the full
    --  characteristics of an entity are not yet known, e.g. Any_Character
    --  is used to label a character literal before resolution is complete.
@@ -344,23 +350,23 @@ package Stand is
    --  error messages ("expecting an integer type").
 
    Any_Id : Entity_Id;
-   --  Used to represent some unknown identifier. Used to lable undefined
+   --  Used to represent some unknown identifier. Used to label undefined
    --  identifier references to prevent cascaded errors.
 
    Any_Type : Entity_Id;
    --  Used to represent some unknown type. Plays an important role in
-   --  avoiding cascaded errors, since any node that remains labaled with
+   --  avoiding cascaded errors, since any node that remains labeled with
    --  this type corresponds to an already issued error message. Any_Type
    --  is propagated to avoid cascaded errors from a single type error.
 
    Any_Access : Entity_Id;
-   --  Used to resolve the overloaded literal NULL.
+   --  Used to resolve the overloaded literal NULL
 
    Any_Array : Entity_Id;
    --  Used to represent some unknown array type
 
    Any_Boolean : Entity_Id;
-   --  The context type of conditions in IF and WHILE statements.
+   --  The context type of conditions in IF and WHILE statements
 
    Any_Character : Entity_Id;
    --  Any_Character is used to label character literals, which in general
@@ -378,7 +384,7 @@ package Stand is
    --  Used to represent some unknown fixed-point type
 
    Any_Integer : Entity_Id;
-   --  Used to represent some unknown integer type.
+   --  Used to represent some unknown integer type
 
    Any_Modular : Entity_Id;
    --  Used to represent the result type of a boolean operation on an
@@ -386,10 +392,10 @@ package Stand is
    --  only legal in a modular context.
 
    Any_Numeric : Entity_Id;
-   --  Used to represent some unknown numeric type.
+   --  Used to represent some unknown numeric type
 
    Any_Real : Entity_Id;
-   --  Used to represent some unknown real type.
+   --  Used to represent some unknown real type
 
    Any_Scalar : Entity_Id;
    --  Used to represent some unknown scalar type
@@ -408,7 +414,9 @@ package Stand is
    Universal_Real : Entity_Id;
    --  Entity for universal real type. The bounds of this type correspond to
    --  to the largest supported real type (i.e. Long_Long_Real). It is the
-   --  type used for runtime calculations in type universal real.
+   --  type used for runtime calculations in type universal real. Note that
+   --  this type is always IEEE format, even if Long_Long_Real is Vax_Float
+   --  (and in that case the bounds don't correspond exactly).
 
    Universal_Fixed : Entity_Id;
    --  Entity for universal fixed type. This is a type with  arbitrary