aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue202/repro_err.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/gna/issue202/repro_err.vhdl')
-rw-r--r--testsuite/gna/issue202/repro_err.vhdl48
1 files changed, 48 insertions, 0 deletions
diff --git a/testsuite/gna/issue202/repro_err.vhdl b/testsuite/gna/issue202/repro_err.vhdl
new file mode 100644
index 000000000..2f2e532f5
--- /dev/null
+++ b/testsuite/gna/issue202/repro_err.vhdl
@@ -0,0 +1,48 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library OSVVM;
+
+entity e is
+end entity;
+
+architecture a of e is
+ subtype T_DATA is std_logic_vector(31 downto 0);
+ type T_DATA_VECTOR is array(natural range <>) of T_DATA;
+
+ type T_SCOREBOARD_DATA is record
+ IsKey : std_logic;
+ Meta : std_logic_vector(31 downto 0);
+ Data : T_DATA_VECTOR(15 downto 0);
+ end record;
+
+ function match(expected : T_SCOREBOARD_DATA; actual : T_SCOREBOARD_DATA) return boolean is
+ begin
+ return TRUE;
+ end function;
+
+ function to_string(vector : T_SCOREBOARD_DATA) return string is
+ begin
+ return "to_string";
+ end function;
+
+ package P_Scoreboard is new OSVVM.ScoreboardGenericPkg
+ generic map (
+ ExpectedType => T_SCOREBOARD_DATA,
+ ActualType => T_SCOREBOARD_DATA,
+ Match => match,
+ expected_to_string => to_string,
+ actual_to_string => to_string
+ );
+ alias T_SCOREBOARD is P_Scoreboard.ScoreBoardPType
+
+ shared variable ScoreBoard : T_SCOREBOARD; -- this causes the error message
+begin
+ process
+ variable v : t_scoreboard_data;
+ begin
+ ScoreBoard.Push(v);
+ wait;
+ end process;
+end architecture;