aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2008-08-04 14:34:16 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-04 14:34:16 +0200
commita0ac393230b56069de1b28b7fea89ac0dfc708e2 (patch)
tree2c98d4773a34e951cf28404399417a3a5a4297d5 /gcc
parent5b2314f66005b217e7311c4c91643a3db48b9a05 (diff)
downloadgcc-a0ac393230b56069de1b28b7fea89ac0dfc708e2.zip
gcc-a0ac393230b56069de1b28b7fea89ac0dfc708e2.tar.gz
gcc-a0ac393230b56069de1b28b7fea89ac0dfc708e2.tar.bz2
sem_ch13.ads: Minor comment update
2008-08-04 Robert Dewar <dewar@adacore.com> * sem_ch13.ads: Minor comment update * sem_res.adb: (Large_Storage_Type): Improve previous change. From-SVN: r138612
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_res.adb16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 6c632fd..d59c30b 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -446,16 +446,18 @@ package body Sem_Res is
return;
end if;
- -- Detect a common beginner error:
+ -- Detect a common error:
-- type R (D : Positive := 100) is record
-- Name : String (1 .. D);
-- end record;
- -- The default value causes an object of type R to be
- -- allocated with room for Positive'Last characters.
+ -- The default value causes an object of type R to be allocated
+ -- with room for Positive'Last characters. The RM does not mandate
+ -- the allocation of the maximum size, but that is what GNAT does
+ -- so we should warn the programmer that there is a problem.
- declare
+ Check_Large : declare
SI : Node_Id;
T : Entity_Id;
TB : Node_Id;
@@ -480,9 +482,11 @@ package body Sem_Res is
and then Compile_Time_Known_Value (Type_High_Bound (T))
and then
Minimum_Size (T, Biased => True) >=
- Esize (Standard_Integer) - 1;
+ RM_Size (Standard_Positive);
end Large_Storage_Type;
+ -- Start of processing for Check_Large
+
begin
-- Check that the Disc has a large range
@@ -553,7 +557,7 @@ package body Sem_Res is
<<No_Danger>>
null;
- end;
+ end Check_Large;
end if;
-- Legal case is in index or discriminant constraint