aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gnat.dg/opt27_pkg.adb
blob: 17ffb731db25c9235bda97bcdcb3570b6fcb0797 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package body Opt27_Pkg is

    type Node_Rec_T is record
         Element : Element_T;
         Left : Node_T;
         Right : Node_T;
    end record;

    function Is_Null (Node : in Node_T) return Boolean is
    begin
        return (Node = null);
    end Is_Null;

    function Find_Elem (Template : Template_T; List : List_T) return Node_T is
        Element_Found : Boolean := False;
        Node_Walker : Node_T := null;
    begin
        Node_Walker := List.First_Node;

        while not Element_Found and (Node_Walker /= null) loop

            if Is_Match (Node_Walker.Element, Template) then
                Element_Found := True;
            else
                Node_Walker := Node_Walker.Right;
            end if;
        end loop;

        return Node_Walker;
    end;

end Opt27_Pkg;