[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 20 Nov 2014 14:17:04 +0000 (15:17 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 20 Nov 2014 14:17:04 +0000 (15:17 +0100)
2014-11-20  Robert Dewar  <dewar@adacore.com>

* sem_ch13.adb: Minor reformatting.
* exp_util.adb (Following_Address_Clause): Handle case of
package private part.

2014-11-20  Arnaud Charlet  <charlet@adacore.com>

* a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb,
a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb,
a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb,
a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb,
a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb,
a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb,
a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer
from analyzing these bodies.

From-SVN: r217854

34 files changed:
gcc/ada/ChangeLog
gcc/ada/a-cbdlli.adb
gcc/ada/a-cbhama.adb
gcc/ada/a-cbhase.adb
gcc/ada/a-cbmutr.adb
gcc/ada/a-cborma.adb
gcc/ada/a-cborse.adb
gcc/ada/a-cbprqu.adb
gcc/ada/a-cbsyqu.adb
gcc/ada/a-cdlili.adb
gcc/ada/a-cidlli.adb
gcc/ada/a-cihama.adb
gcc/ada/a-cihase.adb
gcc/ada/a-cimutr.adb
gcc/ada/a-ciorma.adb
gcc/ada/a-ciormu.adb
gcc/ada/a-ciorse.adb
gcc/ada/a-coboho.adb
gcc/ada/a-cobove.adb
gcc/ada/a-cohama.adb
gcc/ada/a-cohase.adb
gcc/ada/a-coinho-shared.adb
gcc/ada/a-coinho.adb
gcc/ada/a-coinve.adb
gcc/ada/a-comutr.adb
gcc/ada/a-convec.adb
gcc/ada/a-coorma.adb
gcc/ada/a-coormu.adb
gcc/ada/a-coorse.adb
gcc/ada/a-cuprqu.adb
gcc/ada/a-cusyqu.adb
gcc/ada/a-rbtgbo.adb
gcc/ada/exp_util.adb
gcc/ada/sem_ch13.adb

index f24e4fd26b9880bc738ccbaf9cebb6f4bf98273c..f93275bfd3f7c303b31d2761ab0c23f9112d30fd 100644 (file)
@@ -1,3 +1,20 @@
+2014-11-20  Robert Dewar  <dewar@adacore.com>
+
+       * sem_ch13.adb: Minor reformatting.
+       * exp_util.adb (Following_Address_Clause): Handle case of
+       package private part.
+
+2014-11-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb,
+       a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb,
+       a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb,
+       a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb,
+       a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb,
+       a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb,
+       a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer
+       from analyzing these bodies.
+
 2014-11-20  Ed Schonberg  <schonberg@adacore.com>
 
        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply
index 796d87b7e1b6e2c50ece82812aa40278ae9856da..c4e4945d702ab74626628a2bbfe983171dceb5a3 100644 (file)
@@ -31,6 +31,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Doubly_Linked_Lists is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index eb53e757b45d334c313a8e6c7fca460edf08c0c5..3772c779305100a97e7b727532d2ef41f7cce506 100644 (file)
@@ -39,6 +39,8 @@ with System;  use type System.Address;
 
 package body Ada.Containers.Bounded_Hashed_Maps is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 331087b9eeba5338a03418dda1694f3238b382fe..5f87c2955783deeadcf8e25a85c6fd3cbf41cd6e 100644 (file)
@@ -39,6 +39,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Hashed_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 26b0085b648625ae3e956d6bacc2c5933528d45d..2a075428071dfafe934b0641bac5328105fff6a6 100644 (file)
@@ -31,6 +31,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Multiway_Trees is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    --------------------
    --  Root_Iterator --
    --------------------
index 68b6befaad8d5db0262e49c27e0de201c84efb8e..c45bf9a3b76ac9dfad0a6c0b9e3599debcecd9af 100644 (file)
@@ -39,6 +39,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Ordered_Maps is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------------
    -- Node Access Subprograms --
    -----------------------------
index 979357ddc759ef22afa3b55a80687084cfcb3996..af894ee11fb430a00c6511f5116de7d9d053bb55 100644 (file)
@@ -42,6 +42,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Ordered_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    ------------------------------
    -- Access to Fields of Node --
    ------------------------------
index ce2fd69fae7c39a62ce2fec239e26fa4c4333e52..61b9e72a3db49f916bf8164a0c9bdb6f5c6a4c5b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---            Copyright (C) 2011, Free Software Foundation, Inc.            --
+--            Copyright (C) 2011-2014, 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- --
@@ -29,6 +29,8 @@
 
 package body Ada.Containers.Bounded_Priority_Queues is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    package body Implementation is
 
       -------------
index 462d6f4c95c4bf7e3988742e51ab3e6ec5a884ed..e918a9aebfeff63263ef83a39b74837763c70464 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---            Copyright (C) 2011, Free Software Foundation, Inc.            --
+--            Copyright (C) 2011-2014, 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- --
@@ -29,6 +29,8 @@
 
 package body Ada.Containers.Bounded_Synchronized_Queues is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    package body Implementation is
 
       -------------
index eae608c05b22ed9652841ac5ea4b92135ee0731f..02a4c3903ea9ebbfce93754498675104a2cdb702 100644 (file)
@@ -33,6 +33,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Doubly_Linked_Lists is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index c41be78fcf3c77f678f8cacbbcb46ff20142ca86..6e296e80c2d169360005215057fe2e2dd26d5088 100644 (file)
@@ -33,6 +33,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free is
      new Ada.Unchecked_Deallocation (Element_Type, Element_Access);
 
index 7f9978935d965e6496a64ac344c0833a3591e286..98798a247a7d084cf45421721bfe602e0e6be629 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -39,6 +39,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Hashed_Maps is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free_Key is
       new Ada.Unchecked_Deallocation (Key_Type, Key_Access);
 
index 7d503668702ce28a7d416974deb4bbf72c043e1a..4cc0f461b4099231dfac9ec0d30552a27f0842c0 100644 (file)
@@ -41,6 +41,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Hashed_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 0d3f16455ee715cb7068ce22c31d4a338d85b6b9..e0b4b9682573cf0c6e74281d1de4bd6f4ae7a015 100644 (file)
@@ -33,6 +33,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Multiway_Trees is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    --------------------
    --  Root_Iterator --
    --------------------
index d62f6076ca012ba8baee41f9c4fab0f0a5e0bde3..3dde307d1607ee45e713bebb064ef9670a3b2439 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -40,6 +40,8 @@ with System; use type System.Address;
 package body Ada.Containers.Indefinite_Ordered_Maps is
    pragma Suppress (All_Checks);
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------------
    -- Node Access Subprograms --
    -----------------------------
index 2bc1200014bfbb3a8c786a07b4ce183fe5872963..1b562d7febf80d8bc938b951fc12065b569c65db 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -42,6 +42,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Ordered_Multisets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------------
    -- Node Access Subprograms --
    -----------------------------
index 7c14cac72cb90e663f65077c9443840722653646..218ab8a325eed9ef0caedfdf92d7ee9d8c2dbe1a 100644 (file)
@@ -42,6 +42,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Ordered_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 23beaea9b3796774b3d6ef5790cd8ef2b9fbaef1..4ea0fa047aa4c8b3f7365a4d2dc7458c97b88868 100644 (file)
@@ -30,6 +30,8 @@ with Ada.Assertions; use Ada.Assertions;
 
 package body Ada.Containers.Bounded_Holders is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    function Size_In_Storage_Elements (Element : Element_Type) return Natural is
      (Element'Size / System.Storage_Unit)
        with Pre =>
index a7e7a76a30e27e619570856365c6c1419676b76c..80437de5e0add70f0376c1767fbaf06cd3ff8ebb 100644 (file)
@@ -33,6 +33,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Bounded_Vectors is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 70e7758c9d83d3b3d31e05e016b692fd0a46b826..ba6b998ba120d655ae4e614854702b4b95505f3c 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -39,6 +39,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Hashed_Maps is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index f7f49aab96cee3bb227d93ba1fa5ace5a4c4e078..56376e18092872fef5b3ee4bec695e0a51a4d51d 100644 (file)
@@ -41,6 +41,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Hashed_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index cf9d1ccaa2364df9d19a86457a8373e19d4552c1..783121c6b9d6be0e54e4ec1cef7ca8abff092038 100644 (file)
@@ -36,6 +36,8 @@ with Ada.Unchecked_Deallocation;
 
 package body Ada.Containers.Indefinite_Holders is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free is
      new Ada.Unchecked_Deallocation (Element_Type, Element_Access);
 
index 2cdba9957c105864d8c89293d98674c03431aaa1..0135ea55db463d79411408fb7137f7ebafe65e2e 100644 (file)
@@ -29,6 +29,8 @@ with Ada.Unchecked_Deallocation;
 
 package body Ada.Containers.Indefinite_Holders is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free is
      new Ada.Unchecked_Deallocation (Element_Type, Element_Access);
 
index 3234f5ec87a034e763342c3d18bd1cfc59e5bcb3..bb7b2837c501cf6b2a28621896b1b287f20bc1ae 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -34,6 +34,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Indefinite_Vectors is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free is
      new Ada.Unchecked_Deallocation (Elements_Type, Elements_Access);
 
index f45a27a1e0d9db592f1526e610f7be5950fc4310..14d879e00aba3a9cc1627f68696912374ed989b9 100644 (file)
@@ -34,6 +34,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Multiway_Trees is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    --------------------
    --  Root_Iterator --
    --------------------
index ef4d75494df2d5b149bf62df88bab2d4eddf82fc..8731060fbe3b7c4f0b4c3ec848c8787d91fcd100 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -34,6 +34,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Vectors is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    procedure Free is
      new Ada.Unchecked_Deallocation (Elements_Type, Elements_Access);
 
index e451ec628ffac7e670d692093f6350fe3cedab74..0794ba3f62bdc8ba57410a303a0d4d6150e100f2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -39,6 +39,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Ordered_Maps is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------------
    -- Node Access Subprograms --
    -----------------------------
index a3c5ab5c97e9f03f68e8ec71197cc939b7cad4e3..06dfe94918ca65226d0dd3635456c1cc32dfa502 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2014, 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- --
@@ -42,6 +42,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Ordered_Multisets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------------
    -- Node Access Subprograms --
    -----------------------------
index 0f45308d6696f9d2880d9532a9498b5450e2c426..34e562ec73323cd6c1dd4e2ab5c70068a8cabc3e 100644 (file)
@@ -42,6 +42,8 @@ with System; use type System.Address;
 
 package body Ada.Containers.Ordered_Sets is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    ------------------------------
    -- Access to Fields of Node --
    ------------------------------
index 4f6966dc13619e7d1616f7ff9b182cc12872894a..dfb78687b4b8a9fe7908303d7d09925b33822608 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---            Copyright (C) 2011, Free Software Foundation, Inc.            --
+--            Copyright (C) 2011-2014, 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- --
@@ -31,6 +31,8 @@ with Ada.Unchecked_Deallocation;
 
 package body Ada.Containers.Unbounded_Priority_Queues is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    package body Implementation is
 
       -----------------------
index 7fc01cc5fc93897eb1c486361c41ed532877b082..3a87306af150fbd364295cd13e1507412e38efb3 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---            Copyright (C) 2011, Free Software Foundation, Inc.            --
+--            Copyright (C) 2011-2014, 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- --
@@ -31,6 +31,8 @@ with Ada.Unchecked_Deallocation;
 
 package body Ada.Containers.Unbounded_Synchronized_Queues is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    package body Implementation is
 
       -----------------------
index 99a2edc2e36ce70eaba6882d0931d0f06edf0f38..100881bf013c0a08f1faab706f5e519c04033aa0 100644 (file)
@@ -39,6 +39,8 @@ with System;  use type System.Address;
 
 package body Ada.Containers.Red_Black_Trees.Generic_Bounded_Operations is
 
+   pragma Annotate (CodePeer, Skip_Analysis);
+
    -----------------------
    -- Local Subprograms --
    -----------------------
index 388807100dd5b63b2083a50681679d7793cbfd1c..c85593647d0804045ed854fe2c97f75e6d5aa61f 100644 (file)
@@ -2916,31 +2916,73 @@ package body Exp_Util is
    -- Following_Address_Clause --
    ------------------------------
 
-   --  Should this function check the private part in a package ???
-
    function Following_Address_Clause (D : Node_Id) return Node_Id is
-      Id   : constant Entity_Id := Defining_Identifier (D);
-      Decl : Node_Id;
+      Id     : constant Entity_Id := Defining_Identifier (D);
+      Result : Node_Id;
+      Par    : Node_Id;
+
+      function Check_Decls (D : Node_Id) return Node_Id;
+      --  This internal function differs from the main function in that it
+      --  gets called to deal with a following package private part, and
+      --  it checks declarations starting with D (the main function checks
+      --  declarations following D). If D is Empty, then Empty is returned.
+
+      -----------------
+      -- Check_Decls --
+      -----------------
+
+      function Check_Decls (D : Node_Id) return Node_Id is
+         Decl : Node_Id;
+
+      begin
+         Decl := D;
+         while Present (Decl) loop
+            if Nkind (Decl) = N_At_Clause
+              and then Chars (Identifier (Decl)) = Chars (Id)
+            then
+               return Decl;
+
+            elsif Nkind (Decl) = N_Attribute_Definition_Clause
+              and then Chars (Decl) = Name_Address
+              and then Chars (Name (Decl)) = Chars (Id)
+            then
+               return Decl;
+            end if;
+
+            Next (Decl);
+         end loop;
+
+         --  Otherwise not found, return Empty
+
+         return Empty;
+      end Check_Decls;
+
+      --  Start of processing for Following_Address_Clause
 
    begin
-      Decl := Next (D);
-      while Present (Decl) loop
-         if Nkind (Decl) = N_At_Clause
-           and then Chars (Identifier (Decl)) = Chars (Id)
-         then
-            return Decl;
+      Result := Check_Decls (Next (D));
 
-         elsif Nkind (Decl) = N_Attribute_Definition_Clause
-           and then Chars (Decl) = Name_Address
-           and then Chars (Name (Decl)) = Chars (Id)
-         then
-            return Decl;
-         end if;
+      if Present (Result) then
+         return Result;
+      end if;
 
-         Next (Decl);
-      end loop;
+      --  Check for possible package private part following
 
-      return Empty;
+      Par := Parent (D);
+
+      if Nkind (Par) = N_Package_Specification
+        and then Visible_Declarations (Par) = List_Containing (D)
+        and then Present (Private_Declarations (Par))
+      then
+         --  Private part present, check declarations there
+
+         return Check_Decls (First (Private_Declarations (Par)));
+
+      else
+         --  No private part, clause not found, return Empty
+
+         return Empty;
+      end if;
    end Following_Address_Clause;
 
    ----------------------
index fe358b30b78814e3cd9211c81093040e9ddb51f9..8a0ac8cc0b8bb9156269583ca598c7bf3b463593 100644 (file)
@@ -2853,7 +2853,6 @@ package body Sem_Ch13 is
                begin
                   if A_Id = Aspect_Pre or else A_Id = Aspect_Precondition then
                      Pname := Name_Precondition;
-
                   else
                      Pname := Name_Postcondition;
                   end if;