with Ics, Instrument;
use Ics, Instrument;

procedure Flp1a1 is

    -- THIS TEST EVALUATES THE CODE EFFICIENCY OF A LOOP STATEMENT WITH THE
    -- FOR ITERATION SCHEME.

    -- THE TEST CONSISTS OF A LOOP STATEMENT WITH A LOOP PARAMETER SPECIFI-
    -- CATION THAT INCLUDES A NON-STATIC DISCRETE RANGE.  THIS RANGE IS
    -- INITIALIZED BY CAMOUFLAGED ASSIGNMENTS TO THE LOCAL VARIABLES,
    -- M AND N, SO THAT THE LOOP IS EXECUTED ONE TIME, RESULTING IN A
    -- CAMOUFLAGED ASSIGNMENT TO THE GLOBAL VARIABLE.  ADDITIONAL CAMOUFLAGE
    -- ASSIGNMENTS ARE INCLUDED TO PREVENT THE LOCAL VARIABLES FROM BECOMING
    -- CANDIDATES FOR ELIMINATION AS DEAD VARIABLES IN THE NOISE VERSION.
    -- THE LOOP STATEMENT IS REMOVED IN THE NOISE VERSION IN ORDER FOR THE
    -- CODE EFFICIENCY METRICS TO BE DERIVED.

    N : Integer := Ident (One);
    M : Integer := Ident (One);
begin
    Start ("FLP1A1", "FOR LOOP, 1 ITERATION, 10000 REPS (CONTROL).");
    for Lcv in 1 .. 10000 loop
        --FOR I IN N .. M LOOP                        -- ONLY EXECUTED ONCE
        Let (Global, Ident (One));
        --END LOOP;
        Let (Global, N);
        Let (Global, M);
    end loop;
    Stop;

end Flp1a1;