inline_tagged.adb
来自「用于进行gcc测试」· ADB 代码 · 共 36 行
ADB
36 行
-- { dg-do run }-- { dg-options "-gnatN" }with Text_IO; use Text_IO;with system; use system; procedure inline_tagged is package Pkg is type T_Inner is tagged record Value : Integer; end record; type T_Inner_access is access all T_Inner; procedure P2 (This : in T_Inner; Ptr : address); pragma inline (P2); type T_Outer is record Inner : T_Inner_Access; end record; procedure P1 (This : access T_Outer); end Pkg; package body Pkg is procedure P2 (This : in T_Inner; Ptr : address) is begin if this'address /= Ptr then raise Program_Error; end if; end; procedure P1 (This : access T_Outer) is begin P2 (This.Inner.all, This.Inner.all'Address); end P1; end Pkg; use Pkg; Thing : aliased T_Outer := (inner => new T_Inner);begin P1 (Thing'access);end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?