diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-09-10 17:59:11 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2020-09-10 18:00:57 +0200 |
commit | e63eb26d22dbbbbb67f7f240ea5a7234cd2498cb (patch) | |
tree | cc0a7633f6e4adc2d8ed81b0af58568d584a2ce6 /gcc/testsuite/gnat.dg/specs | |
parent | 71465223b95af43951c423ad77391e706f02901d (diff) | |
download | gcc-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.ads | 16 |
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; |