mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 11:59:36 +08:00
[Ada] Fix preconditions of Interfaces.C.Strings
Preconditions of Update procedures were always true when Offset was 0. The changes enable to protect from Update_Error when Offset is 0. gcc/ada/ * libgnat/i-cstrin.ads (Update): Update precondition.
This commit is contained in:
parent
5987f43412
commit
cfd2262668
@ -120,7 +120,10 @@ is
|
||||
with
|
||||
Pre =>
|
||||
Item /= Null_Ptr
|
||||
and then (if Check then Offset <= Strlen (Item) - Chars'Length),
|
||||
and then
|
||||
(if Check then
|
||||
Strlen (Item) <= size_t'Last - Offset
|
||||
and then Strlen (Item) + Offset <= Chars'Length),
|
||||
Global => (In_Out => C_Memory);
|
||||
|
||||
procedure Update
|
||||
@ -131,7 +134,10 @@ is
|
||||
with
|
||||
Pre =>
|
||||
Item /= Null_Ptr
|
||||
and then (if Check then Offset <= Strlen (Item) - Str'Length),
|
||||
and then
|
||||
(if Check then
|
||||
Strlen (Item) <= size_t'Last - Offset
|
||||
and then Strlen (Item) + Offset <= Str'Length),
|
||||
Global => (In_Out => C_Memory);
|
||||
|
||||
Update_Error : exception;
|
||||
|
Loading…
Reference in New Issue
Block a user