| -- { dg-do run } |
| -- { dg-options "-gnatws" } |
| |
| pragma Assertion_Policy (Check); |
| |
| procedure assert1 is |
| Int128 : constant Boolean := Standard'Max_Integer_Size = 128; |
| type p1 is array (1 .. 113) of Boolean; |
| pragma Pack (p1); |
| type p2 is array (1 .. 13) of Boolean; |
| pragma Pack (p2); |
| type p3 is array (1 .. 113) of Boolean; |
| pragma Pack (p3); |
| for p3'size use 113; |
| type p4 is array (1 .. 13) of Boolean; |
| pragma Pack (p4); |
| for p4'size use 13; |
| v1 : p1; |
| v2 : p2; |
| v3 : p3; |
| v4 : p4; |
| begin |
| pragma Assert (p1'Size = (if Int128 then 113 else 120)); |
| pragma Assert (p2'Size = 13); |
| pragma Assert (p3'Size = 113); |
| pragma Assert (p4'Size = 13); |
| pragma Assert (p1'Value_Size = (if Int128 then 113 else 120)); |
| pragma Assert (p2'Value_Size = 13); |
| pragma Assert (p3'Value_Size = 113); |
| pragma Assert (p4'Value_Size = 13); |
| pragma Assert (p1'Object_Size = (if Int128 then 128 else 120)); |
| pragma Assert (p2'Object_Size = 16); |
| pragma Assert (p3'Object_Size = (if Int128 then 128 else 120)); |
| pragma Assert (p4'Object_Size = 16); |
| pragma Assert (v1'Size = (if Int128 then 128 else 120)); |
| pragma Assert (v2'Size = 16); |
| pragma Assert (v3'Size = (if Int128 then 128 else 120)); |
| pragma Assert (v4'Size = 16); |
| null; |
| end; |