31 lines
623 B
Ada
31 lines
623 B
Ada
-- { dg-do compile }
|
|
-- { dg-options "-w" }
|
|
|
|
package body Vect10 is
|
|
|
|
procedure Add_Mul (X : in out Unit; Y, Z : in Unit) is
|
|
begin
|
|
X := X + Y * Z;
|
|
end;
|
|
pragma Inline_Always (Add_Mul);
|
|
|
|
procedure Proc
|
|
(F : in Rec_Vector;
|
|
First_Index : in Natural;
|
|
Last_Index : in Natural;
|
|
Result : out Unit)
|
|
is
|
|
begin
|
|
Result := (others => 0.0);
|
|
|
|
for I in First_Index + 1 .. Last_Index loop
|
|
declare
|
|
Local : Rec renames F (I);
|
|
begin
|
|
Add_Mul (Result, Local.Val, Local.Val);
|
|
end;
|
|
end loop;
|
|
end;
|
|
|
|
end Vect10;
|