prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is Unknown_Package.
authorVincent Celier <celier@adacore.com>
Thu, 28 Jan 2010 13:40:10 +0000 (13:40 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 28 Jan 2010 13:40:10 +0000 (14:40 +0100)
2010-01-28  Vincent Celier  <celier@adacore.com>

* prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is
Unknown_Package.

From-SVN: r156318

gcc/ada/ChangeLog
gcc/ada/prj-attr-pm.adb

index 848eb336ed62b6337a0e836c82f68e9988415603..15aa111932e6ef1debf485be22fc6b00a83af81e 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-28  Vincent Celier  <celier@adacore.com>
+
+       * prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is
+       Unknown_Package.
+
 2010-01-28  Robert Dewar  <dewar@adacore.com>
 
        * gnat_rm.texi: Minor correction
index ef843c05b5b6de2bfbe6aa89558ed48db3b86c4e..9b75c0526e4e6ce548315a124096ab0278bdb40a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2008, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -35,19 +35,21 @@ package body Prj.Attr.PM is
       Attribute_Node : out Attribute_Node_Id)
    is
    begin
-      --  Only add the attribute if the package is already defined
+      --  Only add attribute if package is already defined and is not unknown
+
+      if To_Package /= Empty_Package   and then
+         To_Package /= Unknown_Package
+      then
+         Attrs.Append (
+           (Name           => Attribute_Name,
+            Var_Kind       => Undefined,
+            Optional_Index => False,
+            Attr_Kind      => Unknown,
+            Read_Only      => False,
+            Others_Allowed => False,
+            Next           =>
+              Package_Attributes.Table (To_Package.Value).First_Attribute));
 
-      if To_Package /= Empty_Package then
-         Attrs.Increment_Last;
-         Attrs.Table (Attrs.Last) :=
-           (Name              => Attribute_Name,
-            Var_Kind          => Undefined,
-            Optional_Index    => False,
-            Attr_Kind         => Unknown,
-            Read_Only         => False,
-            Others_Allowed    => False,
-            Next              =>
-              Package_Attributes.Table (To_Package.Value).First_Attribute);
          Package_Attributes.Table (To_Package.Value).First_Attribute :=
            Attrs.Last;
          Attribute_Node := (Value => Attrs.Last);