1-- { dg-do compile } 2-- { dg-options "-O" } 3 4with Ada.Containers.Ordered_Sets; 5with Ada.Strings.Unbounded; 6 7procedure Opt33 is 8 9 type Rec is record 10 Name : Ada.Strings.Unbounded.Unbounded_String; 11 end record; 12 13 function "<" (Left : Rec; Right : Rec) return Boolean; 14 15 package My_Ordered_Sets is new Ada.Containers.Ordered_Sets (Rec); 16 17 protected type Data is 18 procedure Do_It; 19 private 20 Set : My_Ordered_Sets.Set; 21 end Data; 22 23 function "<" (Left : Rec; Right : Rec) return Boolean is 24 begin 25 return False; 26 end "<"; 27 28 protected body Data is 29 procedure Do_It is 30 procedure Dummy (Position : My_Ordered_Sets.Cursor) is 31 begin 32 null; 33 end; 34 begin 35 Set.Iterate (Dummy'Access); 36 end; 37 end Data; 38 39begin 40 null; 41end; 42