with Ics, Instrument;
use Ics, Instrument;

procedure Flp1a2 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;
    M : Integer;

begin

    Start ("FLP1A2", "FOR LOOP, 1 ITERATION, 10000 REPS.");

    for Lcv in 1 .. 10000 loop

        N := Ident (One);
        M := Ident (One);
        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 Flp1a2;