aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue1201/bug.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/gna/issue1201/bug.vhdl')
-rw-r--r--testsuite/gna/issue1201/bug.vhdl40
1 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/gna/issue1201/bug.vhdl b/testsuite/gna/issue1201/bug.vhdl
new file mode 100644
index 000000000..9a11dbeeb
--- /dev/null
+++ b/testsuite/gna/issue1201/bug.vhdl
@@ -0,0 +1,40 @@
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity bug is
+ port (clk : in std_logic;
+ rst : in std_logic);
+end entity bug;
+
+architecture Behavioral of bug is
+
+ type rc_params is array (natural range <>) of std_logic_vector(7 downto 0);
+ type rc_params_array is array (natural range <>) of rc_params;
+
+ type rc_peripheral_1 is record
+ clk : std_logic;
+ params : rc_params;
+ enable : std_logic;
+ rd : std_logic;
+ data : std_logic_vector(7 downto 0);
+ empty : std_logic;
+ end record rc_peripheral_1;
+
+ type rc_peripheral_2 is record
+ clk : std_logic;
+ params : rc_params_array;
+ enable : std_logic;
+ rd : std_logic;
+ data : std_logic_vector(7 downto 0);
+ empty : std_logic;
+ end record rc_peripheral_2;
+
+ signal mysig_ok : rc_params_array(0 to 4)(0 to 4); -- This is accepted by ghdl
+
+ signal mysig_ok_2 : rc_peripheral_1(params(0 to 4)); -- This is accepted by ghdl
+
+ -- signal mysig_wrong : rc_peripheral_2(params(0 to 4)(0 to 4)); -- This is not accepted
+
+begin
+
+end architecture Behavioral;