34 lines
676 B
Ada
34 lines
676 B
Ada
|
-- { 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;
|