aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/s-objrea.adb
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2021-03-11 17:20:41 -0500
committerPierre-Marie de Rodat <derodat@adacore.com>2021-06-17 10:32:16 -0400
commit4892e31daceb8ab230768a15eb0a01b814e8bbfd (patch)
tree7e62b0dc7b8c8573f11816736330ce562553c3bc /gcc/ada/libgnat/s-objrea.adb
parente1dfbb03f98d5a039c996adaf60c076979d61d18 (diff)
downloadgcc-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.adb4
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";