OSDN Git Service

2006-10-31 Robert Dewar <dewar@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Oct 2006 17:49:05 +0000 (17:49 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Oct 2006 17:49:05 +0000 (17:49 +0000)
* lib.adb, lib.ads: (In_Predefined_Unit): New functions

* a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
a-except-2005.ads: Add pragma Preelaborable_Warning

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118242 138bc75d-0d04-0410-961f-82ee72b054a4

28 files changed:
gcc/ada/a-cihama.ads
gcc/ada/a-cihase.ads
gcc/ada/a-ciorma.ads
gcc/ada/a-ciormu.ads
gcc/ada/a-ciorse.ads
gcc/ada/a-cohama.ads
gcc/ada/a-cohase.ads
gcc/ada/a-coinve.ads
gcc/ada/a-convec.ads
gcc/ada/a-coorma.ads
gcc/ada/a-coormu.ads
gcc/ada/a-coorse.ads
gcc/ada/a-except-2005.ads
gcc/ada/a-finali.ads
gcc/ada/a-ngcoty.ads
gcc/ada/a-strbou.ads
gcc/ada/a-stream.ads
gcc/ada/a-strmap.ads
gcc/ada/a-strunb.ads
gcc/ada/a-stwibo.ads
gcc/ada/a-stwima.ads
gcc/ada/a-stwiun.ads
gcc/ada/a-stzbou.ads
gcc/ada/a-stzmap.ads
gcc/ada/a-stzunb.ads
gcc/ada/a-taside.ads
gcc/ada/lib.adb
gcc/ada/lib.ads

index 18963d5..b1b4630 100644 (file)
@@ -7,7 +7,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,7 +50,10 @@ package Ada.Containers.Indefinite_Hashed_Maps is
    pragma Preelaborate;
 
    type Map is tagged private;
+   pragma Preelaborable_Initialization (Map);
+
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Map  : constant Map;
    No_Element : constant Cursor;
index 7163634..0d36adf 100644 (file)
@@ -7,7 +7,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -52,8 +52,10 @@ package Ada.Containers.Indefinite_Hashed_Sets is
    pragma Preelaborate;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index 7d16b2b..0d733a1 100644 (file)
@@ -7,7 +7,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -51,8 +51,10 @@ package Ada.Containers.Indefinite_Ordered_Maps is
    function Equivalent_Keys (Left, Right : Key_Type) return Boolean;
 
    type Map is tagged private;
+   pragma Preelaborable_Initialization (Map);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Map : constant Map;
 
index 358c891..0bcf19c 100644 (file)
@@ -50,8 +50,10 @@ package Ada.Containers.Indefinite_Ordered_Multisets is
    function Equivalent_Elements (Left, Right : Element_Type) return Boolean;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index 1c1c786..3fc5f45 100644 (file)
@@ -7,7 +7,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,8 +50,10 @@ package Ada.Containers.Indefinite_Ordered_Sets is
    function Equivalent_Elements (Left, Right : Element_Type) return Boolean;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index d65401f..f090c82 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -49,8 +49,10 @@ package Ada.Containers.Hashed_Maps is
    pragma Preelaborate;
 
    type Map is tagged private;
+   pragma Preelaborable_Initialization (Map);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Map : constant Map;
 
index dccb56c..b0eb14c 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -51,8 +51,10 @@ package Ada.Containers.Hashed_Sets is
    pragma Preelaborate;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index e5587f1..317dc75 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -52,8 +52,10 @@ package Ada.Containers.Indefinite_Vectors is
    No_Index : constant Extended_Index := Extended_Index'First;
 
    type Vector is tagged private;
+   pragma Preelaborable_Initialization (Vector);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Vector : constant Vector;
 
index 4fa0281..bceea17 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -51,8 +51,10 @@ package Ada.Containers.Vectors is
    No_Index : constant Extended_Index := Extended_Index'First;
 
    type Vector is tagged private;
+   pragma Preelaborable_Initialization (Vector);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Vector : constant Vector;
 
index f07b073..18de34d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,8 +50,10 @@ package Ada.Containers.Ordered_Maps is
    function Equivalent_Keys (Left, Right : Key_Type) return Boolean;
 
    type Map is tagged private;
+   pragma Preelaborable_Initialization (Map);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Map : constant Map;
 
index 7e53d1c..ff32f8c 100644 (file)
@@ -49,8 +49,10 @@ package Ada.Containers.Ordered_Multisets is
    function Equivalent_Elements (Left, Right : Element_Type) return Boolean;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index 8afbd01..2cc8acc 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -49,8 +49,10 @@ package Ada.Containers.Ordered_Sets is
    function Equivalent_Elements (Left, Right : Element_Type) return Boolean;
 
    type Set is tagged private;
+   pragma Preelaborable_Initialization (Set);
 
    type Cursor is private;
+   pragma Preelaborable_Initialization (Cursor);
 
    Empty_Set : constant Set;
 
index ff06e98..fd42ab7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -65,9 +65,13 @@ package Ada.Exceptions is
    --  pragma, which is fine for the bootstrap.
 
    type Exception_Id is private;
+   pragma Preelaborable_Initialization (Exception_Id);
+
    Null_Id : constant Exception_Id;
 
    type Exception_Occurrence is limited private;
+   pragma Preelaborable_Initialization (Exception_Occurrence);
+
    type Exception_Occurrence_Access is access all Exception_Occurrence;
 
    Null_Occurrence : constant Exception_Occurrence;
index 598c292..a663a06 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -41,12 +41,14 @@ package Ada.Finalization is
    pragma Preelaborate;
 
    type Controlled is abstract tagged private;
+   pragma Preelaborable_Initialization (Controlled);
 
    procedure Initialize (Object : in out Controlled);
    procedure Adjust     (Object : in out Controlled);
    procedure Finalize   (Object : in out Controlled);
 
    type Limited_Controlled is abstract tagged limited private;
+   pragma Preelaborable_Initialization (Controlled);
 
    procedure Initialize (Object : in out Limited_Controlled);
    procedure Finalize   (Object : in out Limited_Controlled);
index 33e818a..a5c9de9 100644 (file)
@@ -48,6 +48,7 @@ package Ada.Numerics.Generic_Complex_Types is
    pragma Complex_Representation (Complex);
 
    type Imaginary is private;
+   pragma Preelaborable_Initialization (Imaginary);
 
    i : constant Imaginary;
    j : constant Imaginary;
index d0dbe8c..089bb28 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,6 +50,7 @@ package Ada.Strings.Bounded is
       Max_Length : constant Positive := Max;
 
       type Bounded_String is private;
+      pragma Preelaborable_Initialization (Bounded_String);
 
       Null_Bounded_String : constant Bounded_String;
 
index ce3c335..793cb01 100644 (file)
@@ -39,6 +39,7 @@ package Ada.Streams is
    pragma Pure;
 
    type Root_Stream_Type is abstract tagged limited private;
+   pragma Preelaborable_Initialization (Root_Stream_Type);
 
    type Stream_Element is mod 2 ** Standard'Storage_Unit;
 
index bd1b98f..e2a9c1d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -47,6 +47,7 @@ package Ada.Strings.Maps is
    --------------------------------
 
    type Character_Set is private;
+   pragma Preelaborable_Initialization (Character_Set);
    --  Representation for a set of character values:
 
    Null_Set : constant Character_Set;
@@ -107,6 +108,7 @@ package Ada.Strings.Maps is
    ------------------------------------
 
    type Character_Mapping is private;
+   pragma Preelaborable_Initialization (Character_Mapping);
    --  Representation for a character to character mapping:
 
    function Value
index 5755ed2..a213f0b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,6 +42,7 @@ package Ada.Strings.Unbounded is
    pragma Preelaborate;
 
    type Unbounded_String is private;
+   pragma Preelaborable_Initialization (Unbounded_String);
 
    Null_Unbounded_String : constant Unbounded_String;
 
@@ -426,10 +427,4 @@ private
                              (AF.Controlled with
                                 Reference => Null_String'Access,
                                 Last => 0);
-   --  Note: this declaration is illegal since library level controlled
-   --  objects are not allowed in preelaborated units. See AI-161 for a
-   --  discussion of this issue and an attempt to address it. Meanwhile,
-   --  what happens in GNAT is that this check is omitted for internal
-   --  implementation units (see check in sem_cat.adb).
-
 end Ada.Strings.Unbounded;
index 4033543..7717272 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,6 +50,7 @@ package Ada.Strings.Wide_Bounded is
       Max_Length : constant Positive := Max;
 
       type Bounded_Wide_String is private;
+      pragma Preelaborable_Initialization (Bounded_Wide_String);
 
       Null_Bounded_Wide_String : constant Bounded_Wide_String;
 
index 812de22..a745574 100644 (file)
@@ -45,6 +45,7 @@ package Ada.Strings.Wide_Maps is
    -------------------------------------
 
    type Wide_Character_Set is private;
+   pragma Preelaborable_Initialization (Wide_Character_Set);
    --  Representation for a set of Wide_Character values:
 
    Null_Set : constant Wide_Character_Set;
@@ -122,6 +123,7 @@ package Ada.Strings.Wide_Maps is
    -----------------------------------------
 
    type Wide_Character_Mapping is private;
+   pragma Preelaborable_Initialization (Wide_Character_Mapping);
    --  Representation for a wide character to wide character mapping:
 
    function Value
index 4ac93ac..a7a967f 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,6 +42,7 @@ package Ada.Strings.Wide_Unbounded is
    pragma Preelaborate;
 
    type Unbounded_Wide_String is private;
+   pragma Preelaborable_Initialization (Unbounded_Wide_String);
 
    Null_Unbounded_Wide_String : constant Unbounded_Wide_String;
 
@@ -432,10 +433,4 @@ private
                                   (AF.Controlled with
                                      Reference => Null_Wide_String'Access,
                                      Last => 0);
-   --  Note: this declaration is illegal since library level controlled
-   --  objects are not allowed in preelaborated units. See AI-161 for a
-   --  discussion of this issue and an attempt to address it. Meanwhile,
-   --  what happens in GNAT is that this check is omitted for internal
-   --  implementation units (see check in sem_cat.adb).
-
 end Ada.Strings.Wide_Unbounded;
index 7650ef5..0490147 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -50,6 +50,7 @@ package Ada.Strings.Wide_Wide_Bounded is
       Max_Length : constant Positive := Max;
 
       type Bounded_Wide_Wide_String is private;
+      pragma Preelaborable_Initialization (Bounded_Wide_Wide_String);
 
       Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
 
index d79b0f9..9083113 100644 (file)
@@ -45,6 +45,7 @@ package Ada.Strings.Wide_Wide_Maps is
    ------------------------------------------
 
    type Wide_Wide_Character_Set is private;
+   pragma Preelaborable_Initialization (Wide_Wide_Character_Set);
    --  Representation for a set of Wide_Wide_Character values:
 
    Null_Set : constant Wide_Wide_Character_Set;
@@ -122,6 +123,7 @@ package Ada.Strings.Wide_Wide_Maps is
    ----------------------------------------------
 
    type Wide_Wide_Character_Mapping is private;
+   pragma Preelaborable_Initialization (Wide_Wide_Character_Mapping);
    --  Representation for a wide character to wide character mapping:
 
    function Value
index 95b8eb1..361e2f6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,6 +42,7 @@ package Ada.Strings.Wide_Wide_Unbounded is
    pragma Preelaborate;
 
    type Unbounded_Wide_Wide_String is private;
+   pragma Preelaborable_Initialization (Unbounded_Wide_Wide_String);
 
    Null_Unbounded_Wide_Wide_String : constant Unbounded_Wide_Wide_String;
 
@@ -441,10 +442,4 @@ private
                                           Reference =>
                                             Null_Wide_Wide_String'Access,
                                           Last => 0);
-   --  Note: this declaration is illegal since library level controlled
-   --  objects are not allowed in preelaborated units. See AI-161 for a
-   --  discussion of this issue and an attempt to address it. Meanwhile,
-   --  what happens in GNAT is that this check is omitted for internal
-   --  implementation units (see check in sem_cat.adb).
-
 end Ada.Strings.Wide_Wide_Unbounded;
index acef0f1..7bd560a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -43,6 +43,7 @@ package Ada.Task_Identification is
    --  In accordance with Ada 2005 AI-362
 
    type Task_Id is private;
+   pragma Preelaborable_Initialization (Task_Id);
 
    Null_Task_Id : constant Task_Id;
 
index 420f969..069474f 100644 (file)
@@ -748,6 +748,22 @@ package body Lib is
       end if;
    end In_Extended_Main_Source_Unit;
 
+   ------------------------
+   -- In_Predefined_Unit --
+   ------------------------
+
+   function In_Predefined_Unit (N : Node_Or_Entity_Id) return Boolean is
+   begin
+      return In_Predefined_Unit (Sloc (N));
+   end In_Predefined_Unit;
+
+   function In_Predefined_Unit (S : Source_Ptr) return Boolean is
+      Unit : constant Unit_Number_Type := Get_Source_Unit (S);
+      File : constant File_Name_Type   := Unit_File_Name (Unit);
+   begin
+      return Is_Predefined_File_Name (File);
+   end In_Predefined_Unit;
+
    -----------------------
    -- In_Same_Code_Unit --
    -----------------------
index e02555a..67978da 100644 (file)
@@ -491,8 +491,15 @@ package Lib is
    --  and the parent unit spec if it is separate.
 
    function In_Extended_Main_Source_Unit (Loc : Source_Ptr) return Boolean;
-   --  Same function as above, but argument is a source pointer rather
-   --  than a node.
+   --  Same function as above, but argument is a source pointer
+
+   function In_Predefined_Unit (N : Node_Or_Entity_Id) return Boolean;
+   --  Returns True if the given node or entity appears within the source text
+   --  of a predefined unit (i.e. within Ada, Interfaces, System or within one
+   --  of the descendent packages of one of these three packages).
+
+   function In_Predefined_Unit (S : Source_Ptr) return Boolean;
+   --  Same function as above but argument is a source pointer
 
    function Earlier_In_Extended_Unit (S1, S2 : Source_Ptr) return Boolean;
    --  Given two Sloc values  for which In_Same_Extended_Unit is true,