| -- { dg-do compile } |
| |
| with System; |
| |
| procedure Volatile_Aggregate is |
| |
| function GetArrayUpperBound return Integer is |
| begin |
| return 2; |
| end GetArrayUpperBound; |
| |
| some_value : Integer := GetArrayUpperBound; |
| |
| type Gp_Element_Type is record |
| Element : Integer; |
| end record; |
| |
| type some_type is array (1 .. some_value) of Gp_Element_Type; |
| |
| type Aligned_Some_Type is record |
| Value : aliased some_type; |
| end record; |
| |
| for Aligned_Some_Type'Alignment use 8; |
| |
| an_aligned_type : aligned_Some_Type; |
| my_address : system.address; |
| |
| pragma Volatile (an_aligned_type); |
| |
| begin |
| my_address := an_aligned_type.value(1)'address; |
| end; |