1-- { dg-do compile } 2 3procedure Entry_Queues2 is 4 5 F1 : Integer := 17; 6 7 generic 8 type T is limited private; 9 procedure Check; 10 11 procedure Check is 12 begin 13 declare 14 type Poe is new T; 15 begin 16 declare 17 type Arr is array (1 .. 2) of Poe; 18 X : Arr; 19 pragma Unreferenced (X); 20 begin 21 null; 22 end; 23 end; 24 end; 25 26begin 27 28 declare 29 protected type Poe (D3 : Integer := F1) is 30 entry E (D3 .. F1); -- F1 evaluated 31 end Poe; 32 protected body Poe is 33 entry E (for I in D3 .. F1) when True is 34 begin 35 null; 36 end E; 37 end Poe; 38 39 procedure Chk is new Check (Poe); 40 41 begin 42 Chk; 43 end; 44 45end; 46