-- { dg-do run } -- { dg-options "-gnatws" } with System; use System; procedure Trampoline2 is A : Integer; type FuncPtr is access function (I : Integer) return Integer; function F (I : Integer) return Integer is begin return A + I; end F; P : FuncPtr := F'Access; CA : System.Address := F'Code_Address; I : Integer; begin if CA = System.Null_Address then raise Program_Error; end if; I := P(0); end;