[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 5 Aug 2011 15:34:38 +0000 (17:34 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 5 Aug 2011 15:34:38 +0000 (17:34 +0200)
2011-08-05  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
that appears in a generic formal part and applies to a formal
subprogram.

2011-08-05  Robert Dewar  <dewar@adacore.com>

* a-cbmutr.ads: Minor reformatting.

From-SVN: r177458

gcc/ada/ChangeLog
gcc/ada/a-cbmutr.ads
gcc/ada/sem_prag.adb

index 061010c533fead3b1ba941adb1db0cf6f316d179..c37c1de30d0b238a170deb0f84014d2c2d06ba3b 100644 (file)
@@ -1,3 +1,13 @@
+2011-08-05  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
+       that appears in a generic formal part and applies to a formal
+       subprogram.
+
+2011-08-05  Robert Dewar  <dewar@adacore.com>
+
+       * a-cbmutr.ads: Minor reformatting.
+
 2011-08-05  Matthew Heaney  <heaney@adacore.com>
 
        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
index bc6de38b0aeadf3e0bbf7d53bcc781326c7f8d3d..b62e67fe308c76fcc470ca4721a85cdc75128318 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2011, Free Software Foundation, Inc.         --
+--             Copyright (C) 2011, 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 --
@@ -113,10 +113,12 @@ package Ada.Containers.Bounded_Multiway_Trees is
       Item      : Element_Type) return Cursor;
 
    --  This version of the AI:
-   --   10-06-02  AI05-0136-1/07
-   --  declares Find_In_Subtree with a Container parameter,
-   --  but this seems incorrect. We need a ruling from the
-   --  ARG about whether this really was intended.  ???
+
+   --    10-06-02  AI05-0136-1/07
+
+   --  declares Find_In_Subtree with a Container parameter, but this seems
+   --  incorrect. We need a ruling from the ARG about whether this really was
+   --  intended. ???
 
    function Find_In_Subtree
      (Container : Tree;
@@ -204,11 +206,11 @@ package Ada.Containers.Bounded_Multiway_Trees is
       Position  : Cursor);
 
    procedure Splice_Children
-     (Target          : in out Tree;
-      Target_Parent   : Cursor;
-      Before          : Cursor;
-      Source          : in out Tree;
-      Source_Parent   : Cursor);
+     (Target        : in out Tree;
+      Target_Parent : Cursor;
+      Before        : Cursor;
+      Source        : in out Tree;
+      Source_Parent : Cursor);
 
    procedure Splice_Children
      (Container       : in out Tree;
@@ -235,16 +237,18 @@ package Ada.Containers.Bounded_Multiway_Trees is
    procedure Previous_Sibling (Position : in out Cursor);
 
    --  This version of the AI:
+
    --   10-06-02  AI05-0136-1/07
+
    --  declares Iterate_Children this way:
-   --
+
    --  procedure Iterate_Children
    --    (Container : Tree;
    --     Parent    : Cursor;
    --     Process   : not null access procedure (Position : Cursor));
-   --
-   --  It seems that the Container parameter is there by mistake, but
-   --  we need an official ruling from the ARG.  ???
+
+   --  It seems that the Container parameter is there by mistake, but we need
+   --  an official ruling from the ARG. ???
 
    procedure Iterate_Children
      (Parent  : Cursor;
index d699fd4eb9ada9fcdd7569ae5a2a7243cedde6d9..1e4bbe4b26cd83be571ef471a6c31359383b1a17 100644 (file)
@@ -4672,6 +4672,15 @@ package body Sem_Prag is
                      then
                         null;
                      end if;
+
+                  --  Inline is a program unit pragma (RM 10.1.5) and cannot
+                  --  appear in a formal part to apply to a formal subprogram.
+
+                  elsif Nkind (Decl) in N_Formal_Subprogram_Declaration
+                    and then List_Containing (Decl) = List_Containing (N)
+                  then
+                     Error_Msg_N
+                       ("Inline cannot apply to a formal subprogram", N);
                   end if;
                end if;