1package A_NG is
2    type      A_NG_TYPE is record
3                  debug         : integer;
4    end record;
5    procedure PROC_B(B_ARG:inout A_NG_TYPE; B_VAL:out integer);
6end A_NG;
7package body A_NG is
8    procedure PROC_A(A_ARG:inout A_NG_TYPE) is
9    begin
10        A_ARG.debug := A_ARG.debug + 1;
11    end procedure;
12    procedure PROC_B(B_ARG:inout A_NG_TYPE; B_VAL:out integer) is
13        procedure PROC_C(C_VAL:out integer) is
14        begin
15            PROC_A(B_ARG);
16            C_VAL := B_ARG.debug;
17        end procedure;
18    begin
19        PROC_C(B_VAL);
20    end procedure;
21end A_NG;
22
23-------------------------------------------------------------------------------
24
25entity issue146 is
26end entity;
27
28use work.a_ng.all;
29
30architecture test of issue146 is
31begin
32
33    process is
34        variable a_arg : a_ng_type := ( debug => 4 );
35        variable c_val : integer;
36    begin
37        proc_b(a_arg, c_val);
38        assert c_val = 5;
39        wait;
40    end process;
41
42end architecture;
43