1-- { dg-do compile }
2
3with Interfaces; use Interfaces;
4
5package Alignment2 is
6
7  pragma Warnings (Off, "*size*");
8
9  -- warning
10  type R1 is record
11    A, B, C, D : Integer_8;
12  end record;
13  for R1'Size use 32;
14  for R1'Alignment use 32; -- { dg-warning "suspiciously large alignment" }
15
16  -- warning
17  type R2 is record
18    A, B, C, D : Integer_8;
19  end record;
20  for R2'Alignment use 32; -- { dg-warning "suspiciously large alignment" }
21
22  -- OK, big size
23  type R3 is record
24    A, B, C, D : Integer_8;
25  end record;
26  for R3'Size use 32 * 8;
27  for R3'Alignment use 32;
28
29  -- OK, big size
30  type R4 is record
31    A, B, C, D, E, F, G, H : Integer_32;
32  end record;
33  for R4'Alignment use 32;
34
35  -- warning
36  type I1 is new Integer_32;
37  for I1'Size use 32;
38  for I1'Alignment use 32; -- { dg-warning "suspiciously large alignment" }
39
40  -- warning
41  type I2 is new Integer_32;
42  for I2'Alignment use 32; -- { dg-warning "suspiciously large alignment" }
43
44  -- OK, big size
45  type I3 is new Integer_32;
46  for I3'Size use 32 * 8; -- { dg-warning "unused" }
47  for I3'Alignment use 32;
48
49end Alignment2;
50