Skip to content

Generic procedure causes segfault #1025

@avelure

Description

@avelure

This MWE is from
ghdl/ghdl#2736
https://github.com/ghdl/ghdl/tree/master/testsuite/gna/issue2736

package mwe_pkg is
    procedure drive_sig_default (signal s : out bit);
end package;

package body mwe_pkg is
    procedure drive_sig_default (signal s : out bit) is
    begin
        s <= '1';
    end procedure;
end package body;

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

use work.mwe_pkg.all;

entity mwe_generic is
    generic (
        procedure drive_sig (signal s : out bit) is drive_sig_default
    );
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 (open)
    ;
end architecture;
$ nvc --std=08 --messages=compact -a --psl baf1a641c2abd89eae6c169da6755cc7a4159e2274514ef0668ac1c6b0f716fb
debug: C runtime library: C:\WINDOWS\System32\ucrtbase.dll
Assertion failed: tree_kind(value) == T_REF, file ../src/sem.c, line 5200

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions