diff options
author | Bob Duff <duff@adacore.com> | 2021-03-11 17:20:41 -0500 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-06-17 10:32:16 -0400 |
commit | 4892e31daceb8ab230768a15eb0a01b814e8bbfd (patch) | |
tree | 7e62b0dc7b8c8573f11816736330ce562553c3bc /gcc/ada/libgnat/s-objrea.adb | |
parent | e1dfbb03f98d5a039c996adaf60c076979d61d18 (diff) | |
download | gcc-4892e31daceb8ab230768a15eb0a01b814e8bbfd.zip gcc-4892e31daceb8ab230768a15eb0a01b814e8bbfd.tar.gz gcc-4892e31daceb8ab230768a15eb0a01b814e8bbfd.tar.bz2 |
[Ada] Warn on 'in out' param containing access in predefined private type
gcc/ada/
* sem_util.adb, sem_util.ads (Has_Access_Values): New formal
Include_Internal to indicate whether internal types should be
included.
* sem_warn.adb (Check_References): Change E_Out_Parameter to
Formal_Kind, to match the comment about Spec_Entity. Pass
Include_Internal => False to Has_Access_Values, so that we warn
on types with access values that happen to be in internal types,
such as Unbounded_String.
* sem_attr.adb (Attribute_Has_Access_Values): Pass
Include_Internal => True to Has_Access_Values, to preserve
existing behavior.
* libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to
'in', to avoid warning enabled by the change to sem_warn.adb.
* libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in
out' to 'in', to avoid warning enabled by the change to
sem_warn.adb.
Diffstat (limited to 'gcc/ada/libgnat/s-objrea.adb')
-rw-r--r-- | gcc/ada/libgnat/s-objrea.adb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ada/libgnat/s-objrea.adb b/gcc/ada/libgnat/s-objrea.adb index 50be05a..b5ca32f 100644 --- a/gcc/ada/libgnat/s-objrea.adb +++ b/gcc/ada/libgnat/s-objrea.adb @@ -47,7 +47,7 @@ package body System.Object_Reader is function Trim_Trailing_Nuls (Str : String) return String; -- Return a copy of a string with any trailing NUL characters truncated - procedure Check_Read_Offset (S : in out Mapped_Stream; Size : uint32); + procedure Check_Read_Offset (S : Mapped_Stream; Size : uint32); -- Check that the SIZE bytes at the current offset are still in the stream ------------------------------------- @@ -1931,7 +1931,7 @@ package body System.Object_Reader is return To_String_Ptr_Len (Read (S)); end Read; - procedure Check_Read_Offset (S : in out Mapped_Stream; Size : uint32) is + procedure Check_Read_Offset (S : Mapped_Stream; Size : uint32) is begin if S.Off + Offset (Size) > Offset (Last (S.Region)) then raise IO_Error with "could not read from object file"; |