aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-08-12 09:00:04 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-08-12 09:00:04 +0000
commit62f0fa2170c3875c28171caa4e1ce3a16a0dc18b (patch)
tree0855280e3418d38c2b3c6037a51c739bdad20306
parent651c9c1e4b1bd2369ced718599ad1ac370aa37cd (diff)
downloadgcc-62f0fa2170c3875c28171caa4e1ce3a16a0dc18b.zip
gcc-62f0fa2170c3875c28171caa4e1ce3a16a0dc18b.tar.gz
gcc-62f0fa2170c3875c28171caa4e1ce3a16a0dc18b.tar.bz2
[Ada] Improve error message for Object_Size clause on dynamic array
This makes the compiler issue the same error: size clause not allowed for variable length type for an Object_Size clause on a variable-sized type as for a Size clause, for example on the following procedure: procedure P (X, Y : Integer) is subtype Sub is String (X .. Y) with Object_Size => 64; begin null; end; 2019-08-12 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Freeze_Entity): Give the same error for an Object_Size clause on a variable-sized type as for a Size clause. From-SVN: r274294
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/freeze.adb2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 4e76edf..d1e74ab 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
+
+ * freeze.adb (Freeze_Entity): Give the same error for an
+ Object_Size clause on a variable-sized type as for a Size
+ clause.
+
2019-08-12 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization):
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 00d20e9..e4d52f6 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -6803,7 +6803,7 @@ package body Freeze is
-- Do not allow a size clause for a type which does not have a size
-- that is known at compile time
- if Has_Size_Clause (E)
+ if (Has_Size_Clause (E) or else Has_Object_Size_Clause (E))
and then not Size_Known_At_Compile_Time (E)
then
-- Suppress this message if errors posted on E, even if we are