[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Oct 2014 13:57:55 +0000 (15:57 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Oct 2014 13:57:55 +0000 (15:57 +0200)
2014-10-10  Gary Dismukes  <dismukes@adacore.com>

* a-coinho-shared.adb: Minor typo fix.
* prj-env.ads: Minor reformatting.

2014-10-10  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Resolve_String_Literal): Do not
generate a string literal subtype for the default expression of
a formal parameter in GNATprove mode.

2014-10-10  Yannick Moy  <moy@adacore.com>

* errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off.

2014-10-10  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze
declaration for loop parameter before rest of loop, and set
entity kind to prevent assignments to it in the user code.
* sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the
loop parameter in an element iteration over o formal container.

2014-10-10  Robert Dewar  <dewar@adacore.com>

* gnat_ugn.texi: Document use of user-level routines to handle
e.g. col major arrays.

2014-10-10  Doug Rupp  <rupp@adacore.com>

* s-osinte-android.adb: Fix misspelling.
* gsocket.h: Tweak the Android quirks.

2014-10-10  Robert Dewar  <dewar@adacore.com>

* errout.ads (SPARK_Msg_N): Fix spec to match change in body.

From-SVN: r216083

gcc/ada/ChangeLog
gcc/ada/a-coinho-shared.adb
gcc/ada/errout.adb
gcc/ada/errout.ads
gcc/ada/exp_ch5.adb
gcc/ada/gnat_ugn.texi
gcc/ada/gsocket.h
gcc/ada/prj-env.ads
gcc/ada/s-osinte-android.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_res.adb

index c7df2c19c7d78c0f981e26ed1538452d2fdb9f6f..b62069f464b1a10d9ae34ebdd91faab60b728a16 100644 (file)
@@ -1,3 +1,40 @@
+2014-10-10  Gary Dismukes  <dismukes@adacore.com>
+
+       * a-coinho-shared.adb: Minor typo fix.
+       * prj-env.ads: Minor reformatting.
+
+2014-10-10  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_res.adb (Resolve_String_Literal): Do not
+       generate a string literal subtype for the default expression of
+       a formal parameter in GNATprove mode.
+
+2014-10-10  Yannick Moy  <moy@adacore.com>
+
+       * errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off.
+
+2014-10-10  Ed Schonberg  <schonberg@adacore.com>
+
+       * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze
+       declaration for loop parameter before rest of loop, and set
+       entity kind to prevent assignments to it in the user code.
+       * sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the
+       loop parameter in an element iteration over o formal container.
+
+2014-10-10  Robert Dewar  <dewar@adacore.com>
+
+       * gnat_ugn.texi: Document use of user-level routines to handle
+       e.g. col major arrays.
+
+2014-10-10  Doug Rupp  <rupp@adacore.com>
+
+       * s-osinte-android.adb: Fix misspelling.
+       * gsocket.h: Tweak the Android quirks.
+
+2014-10-10  Robert Dewar  <dewar@adacore.com>
+
+       * errout.ads (SPARK_Msg_N): Fix spec to match change in body.
+
 2014-10-10  Robert Dewar  <dewar@adacore.com>
 
        * sem_ch13.adb: Minor code reorganization.
index 94d4fe4249fd88a3b94b6343cca5af03d3f08024..cf9d1ccaa2364df9d19a86457a8373e19d4552c1 100644 (file)
@@ -26,7 +26,7 @@
 ------------------------------------------------------------------------------
 
 --  Note: special attention must be paid to the case of simultaneous access
---  to internal shared objects and elements by difference tasks. The Reference
+--  to internal shared objects and elements by different tasks. The Reference
 --  counter of internal shared object is the only component protected using
 --  atomic operations; other components and elements can be modified only when
 --  reference counter is equal to one (so there are no other references to this
index 55b02eeaab9b25061f25b35c6300e1223c26a660..78ca1fe2fc47a6e797c40566d99c1a4b288d92e1 100644 (file)
@@ -3138,7 +3138,7 @@ package body Errout is
 
    procedure SPARK_Msg_N (Msg : String; N : Node_Or_Entity_Id) is
    begin
-      if SPARK_Mode = On then
+      if SPARK_Mode /= Off then
          Error_Msg_N (Msg, N);
       end if;
    end SPARK_Msg_N;
index eaed2aa4cbaeaf6b68caab26a28f1fad9a9f65b1..92642daacd4616f2041623c66c4b8a300d712f0d 100644 (file)
@@ -868,8 +868,8 @@ package Errout is
 
    procedure SPARK_Msg_N (Msg : String; N : Node_Or_Entity_Id);
    pragma Inline (SPARK_Msg_N);
-   --  Same as Error_Msg_N, but the error is reported only when SPARK_Mode is
-   --  "on". The routine is inlined because it acts as a simple wrapper.
+   --  Same as Error_Msg_N, but the error is suppressed if SPARK_Mode is Off.
+   --  The routine is inlined because it acts as a simple wrapper.
 
    procedure SPARK_Msg_NE
      (Msg : String;
@@ -878,6 +878,7 @@ package Errout is
    pragma Inline (SPARK_Msg_NE);
    --  Same as Error_Msg_NE, but the error is reported only when SPARK_Mode is
    --  "on". The routine is inlined because it acts as a simple wrapper.
+   --  Is it right that this is so different from SPARK_Msg_N???
 
    ------------------------------------
    -- Utility Interface for Back End --
index b39145c7daae935d4f16480e7277f0ebde54a1c5..b414d54ae762be79323d478f128c0407f9b907e0 100644 (file)
@@ -2889,7 +2889,17 @@ package body Exp_Ch5 is
               Statements =>  New_List (New_Loop)));
 
       Rewrite (N, New_Loop);
-      Analyze (New_Loop);
+
+      --  The loop parameter is declared by an object declaration, but within
+      --  the loop we must prevent user assignments to it, so we analyze the
+      --  declaration and reset the entity kind, before analyzing the rest of
+      --  the loop;
+
+      Analyze (Elmt_Decl);
+      Set_Ekind (Defining_Identifier (Elmt_Decl), E_Loop_Parameter);
+      Set_Assignment_OK (Name (Elmt_Ref));
+
+      Analyze (N);
    end Expand_Formal_Container_Element_Loop;
 
    -----------------------------
index 913330d7370b1af10949a4fb3ee8f65d93d24d6d..e58a2a90a61955b06e71376eaf14bf9592d0f1ac 100644 (file)
@@ -20865,6 +20865,14 @@ that denote descendant nodes and parent node, as well as varied
 semantic information. To study this example in more detail, you might want to
 look at the body of the PN procedure in the stated file.
 
+Another useful application of this capability is to deal with situations of
+complex data which are not handled suitably by GDB. For example, if you specify
+Convention Fortran for a multi-dimensional array, GDB does not know that
+the ordering of array elements has been switched and will not properly
+address the array elements. In such a case, instead of trying to print the
+elements directly from GDB, you can write a callable procedure that prints
+the elements in the desired format.
+
 @node Using the Next Command in a Function
 @section Using the Next Command in a Function
 
index 2034137b2b6496af0ccbc6b9b8fa55029f3deabf..4f9448b37b33923758058fefcb91650d34942943 100644 (file)
@@ -29,8 +29,7 @@
  *                                                                          *
  ****************************************************************************/
 
-#if defined(__nucleus__) || defined(VTHREADS) || defined(__ANDROID__) \
-  || defined(__PikeOS__)
+#if defined(__nucleus__) || defined(VTHREADS) || defined(__PikeOS__)
 
 /* Sockets not supported on these platforms.  */
 #undef HAVE_SOCKETS
 #include <netdb.h>
 #endif
 
+#ifdef __ANDROID__
+#include <unistd.h>
+#include <sys/select.h>
+#endif
+
 #if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || \
-    defined (_WIN32) || defined (__APPLE__)
+    defined (_WIN32) || defined (__APPLE__) || defined (__ANDROID__)
 # define HAVE_THREAD_SAFE_GETxxxBYyyy 1
 
 #elif defined (linux) || defined (__GLIBC__) || \
index 21239b43ee827a1eb9c57f8786e9281b3cf9bf77..043723b6b6b0ef6510da99f9384a358c9cea3357 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2001-2013, Free Software Foundation, Inc.         --
+--          Copyright (C) 2001-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- --
@@ -243,10 +243,10 @@ package Prj.Env is
    function Get_Runtime_Path
      (Self : Project_Search_Path;
       Name : String) return String_Access;
-   --  Compute the full path for the project-based runtime name.  It first
-   --  checks that name is not a simple name (must has a path separator in it),
-   --  and returns null in case of failure.  This check might be removed in the
-   --  future.  The name is simply searched on the project path.
+   --  Compute the full path for the project-based runtime name. It first
+   --  checks that Name is not a simple file name (must have a path separator
+   --  in it), and returns null in case of failure. This check might be removed
+   --  in the future. Name is simply searched on the project path.
 
 private
    package Projects_Paths is new GNAT.Dynamic_HTables.Simple_HTable
index df5e19125ec4a4677ae2ad0fb1a3aa9d38f450f6..3b89e777a1710072d9a9714962096fbc6c0c45e1 100644 (file)
@@ -39,7 +39,7 @@ pragma Polling (Off);
 --  that are needed by children of System.
 
 with Interfaces.C;            use Interfaces.C;
-with Interfaces.C.Extentions; use Interfaces.C.Extentions;
+with Interfaces.C.Extensions; use Interfaces.C.Extensions;
 
 package body System.OS_Interface is
 
index dd71672d39b0988d16dafe5b8c2b9ef7ab75ad83..3448e515189e8586f30545488cbbb91635a65814 100644 (file)
@@ -3062,6 +3062,12 @@ package body Sem_Ch3 is
             Error_Msg_N ("constant cannot be volatile", Obj_Id);
          end if;
 
+      --  The loop parameter in an element iterator over a formal container
+      --  is declared with an object declaration but no contracts apply.
+
+      elsif Ekind (Obj_Id) = E_Loop_Parameter then
+         null;
+
       else pragma Assert (Ekind (Obj_Id) = E_Variable);
 
          --  The following checks are only relevant when SPARK_Mode is on as
index b35ffbd862619de329eec4376b572d622c97d8f4..eacb977344f433ea98477776f4575cc59f0ae86c 100644 (file)
@@ -9947,6 +9947,17 @@ package body Sem_Res is
       then
          Subtype_Id := Typ;
 
+      --  Do not generate a string literal subtype for the default expression
+      --  of a formal parameter in GNATprove mode. This is because the string
+      --  subtype is associated with the freezing actions of the subprogram,
+      --  however freezing is disabled in GNATprove mode and as a result the
+      --  subtype is unavailable.
+
+      elsif GNATprove_Mode
+        and then Nkind (Parent (N)) = N_Parameter_Specification
+      then
+         Subtype_Id := Typ;
+
       --  Otherwise we must create a string literal subtype. Note that the
       --  whole idea of string literal subtypes is simply to avoid the need
       --  for building a full fledged array subtype for each literal.