OSDN Git Service

2009-06-11 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jun 2009 15:48:14 +0000 (15:48 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jun 2009 15:48:14 +0000 (15:48 +0000)
* sem_attr.adb (Resolve_Attribute, case 'access): Add missing
accessibiliy check on access_to_subprogram in the context of an
anonymous access that is not an access parameter.

2009-06-11  Eric Botcazou  <ebotcazou@adacore.com>

* tracebak.c (i386 section): Define IS_BAD_PTR on Solaris.

2009-06-11  Quentin Ochem  <ochem@adacore.com>

* sem_warn.adb, scng.adb, sfn_scan.adb, freeze.adb: Add CODEFIX
comments for message handled by GPS.

2009-06-11  Matthew Gingell  <gingell@adacore.com>

* adaint.c: Use fopen64 instead of fopen on platforms where we know
it's supported.

2009-06-11  Pascal Obry  <obry@adacore.com>

* g-cgi.ads: Fix comment typo.

* g-cgi.adb: Properly decode "+" in CGI parameters as spaces.

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

gcc/ada/ChangeLog
gcc/ada/adaint.c
gcc/ada/freeze.adb
gcc/ada/g-cgi.adb
gcc/ada/g-cgi.ads
gcc/ada/scng.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_warn.adb
gcc/ada/sfn_scan.adb
gcc/ada/tracebak.c

index deb5f07..8f29f5b 100644 (file)
@@ -1,3 +1,29 @@
+2009-06-11  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_attr.adb (Resolve_Attribute, case 'access): Add missing
+       accessibiliy check on access_to_subprogram in the context of an
+       anonymous access that is not an access parameter.
+
+2009-06-11  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tracebak.c (i386 section): Define IS_BAD_PTR on Solaris.
+       
+2009-06-11  Quentin Ochem  <ochem@adacore.com>
+
+       * sem_warn.adb, scng.adb, sfn_scan.adb, freeze.adb: Add CODEFIX
+       comments for message handled by GPS.
+
+2009-06-11  Matthew Gingell  <gingell@adacore.com>
+
+       * adaint.c: Use fopen64 instead of fopen on platforms where we know
+       it's supported.
+
+2009-06-11  Pascal Obry  <obry@adacore.com>
+
+       * g-cgi.ads: Fix comment typo.
+
+       * g-cgi.adb: Properly decode "+" in CGI parameters as spaces.
+
 2009-06-10  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Use
index 1f5e154..dd36bac 100644 (file)
@@ -775,8 +775,16 @@ __gnat_fopen (char *path, char *mode, int encoding ATTRIBUTE_UNUSED)
 #elif defined (VMS)
   return decc$fopen (path, mode);
 #else
+
+#if defined (__GLIBC__) || defined (sun)
+  /* GLIBC and Solaris provides fopen64, which allows IO on files
+     larger than 2GB on systems that support it. */
+  return fopen64 (path, mode);
+#else
   return fopen (path, mode);
 #endif
+
+#endif
 }
 
 FILE *
index 1f91db9..079b39c 100644 (file)
@@ -2205,9 +2205,9 @@ package body Freeze is
                declare
                   Sz : constant Node_Id := Size_Clause (Rec);
                begin
-                  Error_Msg_NE
+                  Error_Msg_NE --  CODEFIX
                     ("size given for& too small", Sz, Rec);
-                  Error_Msg_N
+                  Error_Msg_N --  CODEFIX
                     ("\use explicit pragma Pack "
                      & "or use pragma Implicit_Packing", Sz);
                end;
index 34f3e4f..b1b6789 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                      Copyright (C) 2001-2006, AdaCore                    --
+--                      Copyright (C) 2001-2009, AdaCore                    --
 --                                                                          --
 -- 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- --
@@ -123,6 +123,11 @@ package body GNAT.CGI is
               (Natural'Value ("16#" & S (K + 1 .. K + 2) & '#'));
             K := K + 3;
 
+         elsif S (K) = '+' then
+            --  + sign is decoded as a space
+            Result (J) := ' ';
+            K := K + 1;
+
          else
             Result (J) := S (K);
             K := K + 1;
index eb7d70c..b444b58 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 2000-2006, AdaCore                     --
+--                     Copyright (C) 2000-2009, AdaCore                     --
 --                                                                          --
 -- 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- --
@@ -78,7 +78,7 @@
 --           --  the HTML form) and that one of them is called "client_name".
 
 --           if CGI.Argument_Count = 2
---             and the CGI.Key_Exists ("client_name")
+--             and then CGI.Key_Exists ("client_name")
 --           then
 --              Add_Client_To_Database (CGI.Value ("client_name"));
 --           end if;
index 56b1e4c..e7d9edc 100644 (file)
@@ -875,7 +875,8 @@ package body Scng is
                end if;
             end if;
 
-            Error_Msg_S ("missing string quote");
+            Error_Msg_S --  CODEFIX
+              ("missing string quote");
          end Error_Unterminated_String;
 
          ----------------
index 028d8b5..51536ae 100644 (file)
@@ -7834,16 +7834,16 @@ package body Sem_Attr is
                   --  Check the static accessibility rule of 3.10.2(32).
                   --  This rule also applies within the private part of an
                   --  instantiation. This rule does not apply to anonymous
-                  --  access-to-subprogram types (Ada 2005).
+                  --  access-to-subprogram types in access parameters.
 
                   elsif Attr_Id = Attribute_Access
                     and then not In_Instance_Body
+                    and then
+                      (Ekind (Btyp) = E_Access_Subprogram_Type
+                        or else Is_Local_Anonymous_Access (Btyp))
+
                     and then Subprogram_Access_Level (Entity (P)) >
                                Type_Access_Level (Btyp)
-                    and then Ekind (Btyp) /=
-                               E_Anonymous_Access_Subprogram_Type
-                    and then Ekind (Btyp) /=
-                               E_Anonymous_Access_Protected_Subprogram_Type
                   then
                      Error_Msg_F
                        ("subprogram must not be deeper than access type", P);
index 8132531..0ba87cc 100644 (file)
@@ -3523,11 +3523,11 @@ package body Sem_Warn is
 
             if Nkind (Original_Node (X)) = N_Integer_Literal then
                if Intval (X) = Low_Bound then
-                  Error_Msg_FE
+                  Error_Msg_FE --  CODEFIX
                     ("\suggested replacement: `&''First`", X, Ent);
                else
                   Error_Msg_Uint_1 := Intval (X) - Low_Bound;
-                  Error_Msg_FE
+                  Error_Msg_FE --  CODEFIX
                     ("\suggested replacement: `&''First + ^`", X, Ent);
 
                end if;
@@ -3633,7 +3633,7 @@ package body Sem_Warn is
 
                --  Replacement subscript is now in string buffer
 
-               Error_Msg_FE
+               Error_Msg_FE --  CODEFIX
                  ("\suggested replacement: `&~`", Original_Node (X), Ent);
             end if;
 
index 226ef8b..dc6ab38 100644 (file)
@@ -637,7 +637,8 @@ package body SFN_Scan is
 
       loop
          if At_EOF or else S (P) = LF or else S (P) = CR then
-            Error ("missing string quote");
+            Error --  CODEFIX
+              ("missing string quote");
 
          elsif S (P) = HT then
             Error ("tab character in string");
index 8f3c4cc..63f93b3 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                          *
  *                          C Implementation File                           *
  *                                                                          *
- *                     Copyright (C) 2000-2008, AdaCore                     *
+ *                     Copyright (C) 2000-2009, AdaCore                     *
  *                                                                          *
  * 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- *
@@ -294,9 +294,11 @@ struct layout
 
 #elif defined (i386)
 
-#ifdef __WIN32
+#if defined (__WIN32)
 #include <windows.h>
 #define IS_BAD_PTR(ptr) (IsBadCodePtr((void *)ptr))
+#elif defined (sun)
+#define IS_BAD_PTR(ptr) ((unsigned long)ptr == -1)
 #else
 #define IS_BAD_PTR(ptr) 0
 #endif