1--  { dg-do run }
2with System;
3
4procedure Protected_Self_Ref1 is
5
6   protected type P is
7      procedure Foo;
8   end P;
9
10   protected body P is
11      procedure Foo is
12         Ptr : access P;  -- here P denotes the type P
13	 T   : Integer;
14	 A   : System.Address;
15      begin
16         Ptr := P'Access; -- here P denotes the "this" instance of P
17	 T := P'Size;
18	 A := P'Address;
19      end;
20   end P;
21
22   O : P;
23begin
24   O.Foo;
25end Protected_Self_Ref1;
26