diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-01-03 16:38:17 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-01-03 16:38:17 +0100 |
commit | 3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293 (patch) | |
tree | c76f60b2cb9eae7df4e45dfbb276d1ddc8ae71c8 /gcc/ada/i-c.adb | |
parent | d9246d2d4ae30ab1b9f3c657b53874342e9b8ac2 (diff) | |
download | gcc-3e69e63bd19c0c21c40d6bfa38acc7dbe8a78293.tar.gz |
* i-c.adb (To_C): Raise CE if string is null and Append_Null
From-SVN: r92839
Diffstat (limited to 'gcc/ada/i-c.adb')
-rw-r--r-- | gcc/ada/i-c.adb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/ada/i-c.adb b/gcc/ada/i-c.adb index 65e40b29710..844f016441e 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 |