aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/specs
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2020-09-10 17:59:11 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2020-09-10 18:00:57 +0200
commite63eb26d22dbbbbb67f7f240ea5a7234cd2498cb (patch)
treecc0a7633f6e4adc2d8ed81b0af58568d584a2ce6 /gcc/testsuite/gnat.dg/specs
parent71465223b95af43951c423ad77391e706f02901d (diff)
downloadgcc-e63eb26d22dbbbbb67f7f240ea5a7234cd2498cb.zip
gcc-e63eb26d22dbbbbb67f7f240ea5a7234cd2498cb.tar.gz
gcc-e63eb26d22dbbbbb67f7f240ea5a7234cd2498cb.tar.bz2
Fix bogus error on Value_Size clause for variant record type
This is a regression present on the mainline and 10 branch: the compiler rejects a Value_Size clause on a discriminated record type with variant. gcc/ada/ChangeLog: * gcc-interface/decl.c (set_rm_size): Do not take into account the Value_Size clause if it is not for the entity itself. gcc/testsuite/ChangeLog: * gnat.dg/specs/size_clause5.ads: New test.
Diffstat (limited to 'gcc/testsuite/gnat.dg/specs')
-rw-r--r--gcc/testsuite/gnat.dg/specs/size_clause5.ads16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/specs/size_clause5.ads b/gcc/testsuite/gnat.dg/specs/size_clause5.ads
new file mode 100644
index 0000000..ba45bbf
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/size_clause5.ads
@@ -0,0 +1,16 @@
+-- { dg-do compile }
+
+package Size_Clause5 is
+
+ type Arr is array (1 .. 16) of Boolean;
+
+ type RRec (D : Boolean) is record
+ case D is
+ when True => I : Integer;
+ when False => A : Arr;
+ end case;
+ end record;
+ for RRec'Object_Size use 160;
+ for RRec'Value_Size use 160;
+
+end Size_Clause5;