aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2005-01-03 16:38:17 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-01-03 16:38:17 +0100
commit3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293 (patch)
treec76f60b2cb9eae7df4e45dfbb276d1ddc8ae71c8 /gcc/ada
parentd9246d2d4ae30ab1b9f3c657b53874342e9b8ac2 (diff)
downloadgcc-3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293.zip
gcc-3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293.tar.gz
gcc-3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293.tar.bz2
* i-c.adb (To_C): Raise CE if string is null and Append_Null
From-SVN: r92839
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/i-c.adb17
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/ada/i-c.adb b/gcc/ada/i-c.adb
index 65e40b2..844f016 100644
--- a/gcc/ada/i-c.adb
+++ b/gcc/ada/i-c.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2004 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- --
@@ -289,21 +289,20 @@ package body Interfaces.C is
return R;
end;
- else -- Append_Nul is False
+ -- Append_Nul False
+
+ else
-- A nasty case, if the string is null, we must return
-- a null char_array. The lower bound of this array is
-- required to be zero (RM B.3(50)) but that is of course
- -- impossible given that size_t is unsigned. This needs
- -- ARG resolution, but for now GNAT returns bounds 1 .. 0
+ -- impossible given that size_t is unsigned. According to
+ -- Ada 2005 AI-258, the result is to raise Constraint_Error.
if Item'Length = 0 then
- declare
- R : char_array (1 .. 0);
+ raise Constraint_Error;
- begin
- return R;
- end;
+ -- Normal case
else
declare