From d99076123a58f4d2a7e93706c5adecbd5b99ff8f Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 30 Nov 2022 21:27:11 +0100 Subject: testsuite/gna: add a test for #2250 --- testsuite/gna/issue2250/ent.vhdl | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 testsuite/gna/issue2250/ent.vhdl (limited to 'testsuite/gna/issue2250/ent.vhdl') diff --git a/testsuite/gna/issue2250/ent.vhdl b/testsuite/gna/issue2250/ent.vhdl new file mode 100644 index 000000000..c640e4b3a --- /dev/null +++ b/testsuite/gna/issue2250/ent.vhdl @@ -0,0 +1,44 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +package test_pkg is + generic (type t_element; + function to_string_element(element : t_element) return string + ); +end package; + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity test is +end entity test; +architecture beh of test is + type t_record is record + address : std_logic_vector(7 downto 0); + data : std_logic_vector(7 downto 0); + end record t_record; + + function record_to_string( + constant rec_data : t_record + ) return string is + begin + return "address: " & to_string(rec_data.address) & ", data: " & to_string(rec_data.data); + end function record_to_string; + + package record_pkg is new work.test_pkg + generic map (t_element => t_record, + to_string_element => record_to_string); + + use record_pkg.all; + +begin + process + variable v_input : t_record := (x"AA", x"BB"); + begin + report "Val is " & to_string_element(v_input) severity note; + wait; + end process; + +end architecture beh; -- cgit v1.2.3