+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
#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 *
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;
-- --
-- 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- --
(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;
-- --
-- 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- --
-- -- 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;
end if;
end if;
- Error_Msg_S ("missing string quote");
+ Error_Msg_S -- CODEFIX
+ ("missing string quote");
end Error_Unterminated_String;
----------------
-- 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);
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;
-- Replacement subscript is now in string buffer
- Error_Msg_FE
+ Error_Msg_FE -- CODEFIX
("\suggested replacement: `&~`", Original_Node (X), Ent);
end if;
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");
* *
* 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- *
#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