Skip to content

Crash related to external name #1062

@jorkrohn

Description

@jorkrohn

I came across a crash related to external names:

nvc_crash.vhd:

library ieee;
use ieee.std_logic_1164.all;

entity nvc_crash is
end entity nvc_crash;

architecture rtl of nvc_crash is
  signal test_signal : std_logic;
begin
end architecture rtl;

nvc_crash_tb.vhd:

library ieee;
use ieee.std_logic_1164.all;

entity nvc_crash_tb is
  generic(
    ENABLE_EXTERNAL_NAME : boolean := true
  );
end entity nvc_crash_tb;

architecture rtl of nvc_crash_tb is

  signal test_signal : std_logic;

begin

  g_external_name : if ENABLE_EXTERNAL_NAME generate
  begin
    test_signal <= <<signal .nvc_crash_tb.i_nvc_crash.test_signal : std_logic>>;
  end generate g_external_name;

  i_nvc_crash : entity work.nvc_crash;

end architecture rtl;

I get the crash report:

*** Caught exception c0000005 (EXCEPTION_ACCESS_VIOLATION) [address=0000000000000008, ip=00007FF68C4E423B] ***

[00007FF68C330600]
[00007FF68C3309B9]
[00007FFD31FCB21C] UnhandledExceptionFilter+0x1ec
[00007FFD347197FD] RtlCopyMemory+0x2bbd
[00007FFD346FF687] _C_specific_handler+0x97
[00007FFD3471517F] _chkstk+0x12f
[00007FFD3468E856] RtlFindCharInUnicodeString+0xa96
[00007FFD3471416E] KiUserExceptionDispatcher+0x2e
[00007FF68C4E423B] _nvc_get_object+0x156b
[00007FF68C4E2999] _nvc_do_exit+0x7b9
[00007FF68C4D29EB] vhpi_is_printable+0xaad6b
[00007FF68C40F4F7] std_env_get_assert_format+0x77c7
[00007FF68C3F7D55] nvc_current_delta+0x2805
[00007FF68C3F7C60] nvc_current_delta+0x2710
[00007FF68C3F7C60] nvc_current_delta+0x2710
[00007FF68C3F7395] nvc_current_delta+0x1e45
[00007FF68C3293F0]
[00007FF68C32783A]
[00007FF68C3287DA]
[00007FF68C3287DA]
[00007FF68C3223BB]
[00007FF68B154A63]
[00007FF68B154AC6]
[00007FFD32E5257D] BaseThreadInitThunk+0x1d

nvc 1.14.1 (1.14.1.r0.ge10a10e8) (Using LLVM 18.1.8) [x86_64-w64-mingw32]

Please report this bug at https://github.com/nickg/nvc/issues

It seems to only happen when the external name is within a generate and it's above the entity instantiation. If I either move the external name out from the generate or move the entity instantiation above the generate, it works fine.

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