diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/specs/alignment2.ads')
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/alignment2.ads | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/specs/alignment2.ads b/gcc/testsuite/gnat.dg/specs/alignment2.ads new file mode 100644 index 000000000..8dce1a8c3 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/alignment2.ads @@ -0,0 +1,47 @@ +-- { dg-do compile } + +with Interfaces; use Interfaces; + +package Alignment2 is + + -- warning + type R1 is record + A, B, C, D : Integer_8; + end record; + for R1'Size use 32; + for R1'Alignment use 32; -- { dg-warning "suspiciously large alignment" } + + -- warning + type R2 is record + A, B, C, D : Integer_8; + end record; + for R2'Alignment use 32; -- { dg-warning "suspiciously large alignment" } + + -- OK, big size + type R3 is record + A, B, C, D : Integer_8; + end record; + for R3'Size use 32 * 8; + for R3'Alignment use 32; + + -- OK, big size + type R4 is record + A, B, C, D, E, F, G, H : Integer_32; + end record; + for R4'Alignment use 32; + + -- warning + type I1 is new Integer_32; + for I1'Size use 32; + for I1'Alignment use 32; -- { dg-warning "suspiciously large alignment" } + + -- warning + type I2 is new Integer_32; + for I2'Alignment use 32; -- { dg-warning "suspiciously large alignment" } + + -- OK, big size + type I3 is new Integer_32; + for I3'Size use 32 * 8; + for I3'Alignment use 32; + +end Alignment2; |