-
-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exception std_env_get_assert_format #943
Comments
Maybe try configuring with |
I forgot to save the problematic test, but this one seems to be the same. It is in the same T_GENERIC_SB function but the stack is slightly different.
If I break on exit GDB gives
|
The constructor for the protected type should receive a pointer to its enclosing environment (the instance of the package spi_sb_pkg is new bitvis_vip_scoreboard.generic_sb_pkg
generic map(t_element => std_logic_vector(C_VVC_CMD_DATA_MAX_LENGTH - 1 downto 0),
element_match => std_match,
to_string_element => to_string);
use spi_sb_pkg.all;
shared variable SPI_VVC_SB : spi_sb_pkg.t_generic_sb; |
No, that implementation gives a GHDL error (ghdl/ghdl#2510) as both the package declaration and instantiation is in the same package.
vvc_methods_pkg
|
Here's a reproducer: package genpack is
generic (type t);
type pt is protected
impure function get return t;
impure function get_str return string;
procedure put (val : t);
end protected;
end package;
package body genpack is
constant str : string := "hello world";
type pt is protected body
variable cur : t;
impure function get return t is
begin
return cur;
end function;
procedure put (val : t) is
begin
cur := val;
end procedure;
impure function get_str return string is
begin
return str; -- Accesses parent package
end function;
end protected body;
end package body;
-------------------------------------------------------------------------------
package testpack is
package int_pack is new work.genpack
generic map ( t => integer );
use int_pack.all;
end package;
-------------------------------------------------------------------------------
entity issue943 is
end entity;
use work.testpack.all;
architecture test of issue943 is
shared variable sv : int_pack.pt;
begin
check: process is
begin
sv.put(5);
assert sv.get = 5;
assert sv.get_str = "hello world";
wait;
end process;
end architecture; |
Can you test again with the latest master branch? |
Yes, it works! |
This one I'm not able to reduce to an MWE.
When I remove a reference to a signal that uses an enum from another package the exception occurs.
Then it disappears again when I remove all references to a UVVM "disable_log_msg" for a VVC.
I'm just working on reducing a testcase, so all these packages and enums has been used with nvc for years.
I'm using nvc 1.14-devel (1.13.0.r34.g1e0063fe) (Using LLVM 18.1.6) with msys clang64
This is the last function it processes before the exception, I just redacted some library names.
The enum I mentioned is not related to this package, so it might be a red herring. Though it is in the same VVC as the one I removed the "disable_log_message" for.
The text was updated successfully, but these errors were encountered: