Skip to content

BUG while passing generic procedure to entity #2736

@std-max

Description

@std-max

Description
Got a bug when trying to use generic procedure.

How to reproduce?

entity mwe_generic is
    generic (
        procedure drive_sig (signal s : out bit)
    );
end entity;

architecture bhv of mwe_generic is
    signal a : bit;
begin
    -- Case 1 does not work
    drive_sig(a);

    -- Case 2 works
    -- process is
    -- begin
    --     drive_sig(a);
    --     wait;
    -- end process;

end architecture;

--------------------------------------------------------------------------------

entity mwe is
end entity;

architecture bhv of mwe is
    procedure p (signal s : out bit) is
    begin
        s <= '1';
    end procedure;
begin
    inst : entity work.mwe_generic generic map (drive_sig => p);
end architecture;
ghdl analyze --std=08 mwe.vhd

Context
Backend: mcode

******************** GHDL Bug occurred ***************************
Please report this bug on https://github.com/ghdl/ghdl/issues
GHDL release: 5.0.0-dev (4.1.0.r160.gea01390c7) [Dunoon edition]
Compiled with GNAT Version: 8.3.0
Target: x86_64-linux-gnu
Command line:
ghdl analyze --std=08 mwe.vhd
Exception SYSTEM.ASSERTIONS.ASSERT_FAILURE raised
Exception information:
raised SYSTEM.ASSERTIONS.ASSERT_FAILURE : no field Wait_State
******************************************************************

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions