2014-01-31 Robert Dewar <dewar@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jan 2014 16:03:54 +0000 (16:03 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jan 2014 16:03:54 +0000 (16:03 +0000)
* exp_ch9.adb: Minor reformatting.

2014-01-31  Emmanuel Briot  <briot@adacore.com>

* g-comlin.adb (Set_Command_Line): Take the switches
configuration from the Command_Line_Config.

2014-01-31  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed
refinement clause.

2014-01-31  Vincent Celier  <celier@adacore.com>

* projects.texi: Add more documentation about others used as an
index in indexed attributes.

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

gcc/ada/ChangeLog
gcc/ada/exp_ch9.adb
gcc/ada/g-comlin.adb
gcc/ada/projects.texi
gcc/ada/sem_prag.adb

index b46a2d5..d17dbbc 100644 (file)
@@ -1,5 +1,24 @@
 2014-01-31  Robert Dewar  <dewar@adacore.com>
 
+       * exp_ch9.adb: Minor reformatting.
+
+2014-01-31  Emmanuel Briot  <briot@adacore.com>
+
+       * g-comlin.adb (Set_Command_Line): Take the switches
+       configuration from the Command_Line_Config.
+
+2014-01-31  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed
+       refinement clause.
+
+2014-01-31  Vincent Celier  <celier@adacore.com>
+
+       * projects.texi: Add more documentation about others used as an
+       index in indexed attributes.
+
+2014-01-31  Robert Dewar  <dewar@adacore.com>
+
        * gnat_ugn.texi: Minor update.
        * gnat_rm.texi: Add example to Restriction_Warnings documentation.
        * exp_util.adb: Minor reformatting.
index 9467437..88e1ea7 100644 (file)
@@ -6195,6 +6195,7 @@ package body Exp_Ch9 is
       function Is_Global_Entity (N : Node_Id) return Traverse_Result is
          E : Entity_Id;
          S : Entity_Id;
+
       begin
          if Is_Entity_Name (N) and then Present (Entity (N)) then
             E := Entity (N);
@@ -6213,16 +6214,15 @@ package body Exp_Ch9 is
                --  this safe. This is a common (if dubious) idiom.
 
                elsif S = Scope (Prot)
-                 and then (Ekind (S) = E_Package
-                   or else Ekind (S) = E_Generic_Package)
+                 and then Ekind_In (S, E_Package, E_Generic_Package)
                  and then Nkind (Parent (E)) = N_Object_Declaration
                  and then Nkind (Parent (Parent (E))) = N_Package_Body
                then
                   null;
 
                else
-                  Error_Msg_N ("potentially unsynchronized barrier ?", N);
-                  Error_Msg_N ("!& should be private component of type?", N);
+                  Error_Msg_N ("potentially unsynchronized barrier?", N);
+                  Error_Msg_N ("\& should be private component of type?", N);
                end if;
             end if;
          end if;
@@ -6231,8 +6231,9 @@ package body Exp_Ch9 is
       end Is_Global_Entity;
 
       procedure Check_Unprotected_Barrier is
-         new Traverse_Proc (Is_Global_Entity);
-      --  Start of processing for Expand_Entry_Barrier
+        new Traverse_Proc (Is_Global_Entity);
+
+   --  Start of processing for Expand_Entry_Barrier
 
    begin
       if No_Run_Time_Mode then
index f11846f..4f84bd9 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1999-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 1999-2013, 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- --
@@ -1681,7 +1681,13 @@ package body GNAT.Command_Line is
                   --  the argument. In the second case, the switch matches "*",
                   --  and is then decomposed below.
 
-                  S := Getopt (Switches    => "*",
+                  --  Note: When a Command_Line object is associated with a
+                  --  Command_Line_Config (which is mostly the case for tools
+                  --  that let users chose the command line before spawning
+                  --  other tools, for instance IDEs), the configuration of
+                  --  the switches must be taken from the Command_Line_Config.
+
+                  S := Getopt (Switches    => "* " & Get_Switches (Cmd.Config),
                                Concatenate => False,
                                Parser      => Parser);
 
index e0ef989..1040a6d 100644 (file)
@@ -3806,6 +3806,9 @@ depending on the platform.
 For an indexed attribute, if it is allowed to use @b{others} as the index,
 this is indicated by the words "others allowed".
 
+When @b{others} is used as the index of an indexed attribute, the value of
+the attribute indexed by @b{others} is used when no other index would apply.
+
 @end itemize
 
 @node Project Level Attributes
index 6e29b8b..fb4ddfc 100644 (file)
@@ -23137,6 +23137,14 @@ package body Sem_Prag is
       --  Start of processing for Analyze_Refinement_Clause
 
       begin
+         --  A refinement clause appears as a component association where the
+         --  sole choice is the state and the expressions are the constituents.
+
+         if Nkind (Clause) /= N_Component_Association then
+            Error_Msg_N ("malformed state refinement clause", Clause);
+            return;
+         end if;
+
          --  Analyze the state name of a refinement clause
 
          State := First (Choices (Clause));