| -- { dg-do compile } |
| package body Enclosing_Record_Reference is |
| |
| R: aliased T; |
| |
| function F1 (x: integer) return T is begin return R; end; |
| function F2 (x: T) return integer is begin return 0; end; |
| function F3 (x: T) return T is begin return R; end; |
| function F4 (x: integer) return access T is begin return R'access; end; |
| function F5 (x: access T) return integer is begin return 0; end; |
| function F6 (x: access T) return access T is begin return R'access; end; |
| function F7 (x: T) return access T is begin return R'access; end; |
| function F8 (x: access T) return T is begin return R; end; |
| |
| begin |
| R.F1 := F1'Access; |
| R.F2 := F2'Access; |
| R.F3 := F3'Access; |
| R.F4 := F4'Access; |
| R.F5 := F5'Access; |
| R.F6 := F6'Access; |
| R.F7 := F7'Access; |
| R.F8 := F8'Access; |
| end Enclosing_Record_Reference; |