aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue2070
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-06-01 07:59:35 +0200
committerTristan Gingold <tgingold@free.fr>2022-06-01 07:59:35 +0200
commit15ca98bf288a74e310702d5a5fb48bab6c428891 (patch)
tree2260acd78223bc2a359b34b9731b51aba03c38bf /testsuite/gna/issue2070
parentfa9accdf75b7e41179f9dc60ce44ab7db4349985 (diff)
downloadghdl-15ca98bf288a74e310702d5a5fb48bab6c428891.tar.gz
ghdl-15ca98bf288a74e310702d5a5fb48bab6c428891.tar.bz2
ghdl-15ca98bf288a74e310702d5a5fb48bab6c428891.zip
testsuite/gna: add tests for #2070
Close #2070
Diffstat (limited to 'testsuite/gna/issue2070')
-rw-r--r--testsuite/gna/issue2070/crash0.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash1.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash10.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash11.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash12.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash13.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash14.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash15.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash16.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash17.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash18.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash19.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash2.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash20.vhdl3
-rw-r--r--testsuite/gna/issue2070/crash21.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash22.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash23.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash23_1.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash24.vhdlbin0 -> 26 bytes
-rw-r--r--testsuite/gna/issue2070/crash25.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash26.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash27.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash28.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash29.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash29_1.vhdl4
-rw-r--r--testsuite/gna/issue2070/crash29_2.vhdl27
-rw-r--r--testsuite/gna/issue2070/crash3.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash30.vhdl4
-rw-r--r--testsuite/gna/issue2070/crash31.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash32.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash33.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash34.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash35.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash36.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash37.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash38.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash38_1.vhdl14
-rw-r--r--testsuite/gna/issue2070/crash39.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash4.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash40.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash41.vhdl3
-rw-r--r--testsuite/gna/issue2070/crash42.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash43.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash44.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash45.vhdl7
-rw-r--r--testsuite/gna/issue2070/crash45_1.vhdl14
-rw-r--r--testsuite/gna/issue2070/crash46.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash47.vhdl3
-rw-r--r--testsuite/gna/issue2070/crash47_1.vhdl20
-rw-r--r--testsuite/gna/issue2070/crash48.vhdl6
-rw-r--r--testsuite/gna/issue2070/crash49.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash5.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash50.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash51.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash52.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash53.vhdl7
-rw-r--r--testsuite/gna/issue2070/crash54.vhdl5
-rw-r--r--testsuite/gna/issue2070/crash55.vhdl2
-rw-r--r--testsuite/gna/issue2070/crash6.vhdl3
-rw-r--r--testsuite/gna/issue2070/crash7.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash8.vhdl1
-rw-r--r--testsuite/gna/issue2070/crash9.vhdl2
-rwxr-xr-xtestsuite/gna/issue2070/testsuite.sh71
63 files changed, 272 insertions, 0 deletions
diff --git a/testsuite/gna/issue2070/crash0.vhdl b/testsuite/gna/issue2070/crash0.vhdl
new file mode 100644
index 000000000..e285dfcae
--- /dev/null
+++ b/testsuite/gna/issue2070/crash0.vhdl
@@ -0,0 +1 @@
+%%d% \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash1.vhdl b/testsuite/gna/issue2070/crash1.vhdl
new file mode 100644
index 000000000..f98304df5
--- /dev/null
+++ b/testsuite/gna/issue2070/crash1.vhdl
@@ -0,0 +1 @@
+d% \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash10.vhdl b/testsuite/gna/issue2070/crash10.vhdl
new file mode 100644
index 000000000..f64680825
--- /dev/null
+++ b/testsuite/gna/issue2070/crash10.vhdl
@@ -0,0 +1 @@
+D% \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash11.vhdl b/testsuite/gna/issue2070/crash11.vhdl
new file mode 100644
index 000000000..0dd660176
--- /dev/null
+++ b/testsuite/gna/issue2070/crash11.vhdl
@@ -0,0 +1 @@
+architecture 0for(4000000000x" \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash12.vhdl b/testsuite/gna/issue2070/crash12.vhdl
new file mode 100644
index 000000000..0d0585675
--- /dev/null
+++ b/testsuite/gna/issue2070/crash12.vhdl
@@ -0,0 +1 @@
+architecture restrict[*9000000000 \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash13.vhdl b/testsuite/gna/issue2070/crash13.vhdl
new file mode 100644
index 000000000..4dab5a0e8
--- /dev/null
+++ b/testsuite/gna/issue2070/crash13.vhdl
@@ -0,0 +1 @@
+architectureŚ0for(4000000000x" \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash14.vhdl b/testsuite/gna/issue2070/crash14.vhdl
new file mode 100644
index 000000000..6041db3ea
--- /dev/null
+++ b/testsuite/gna/issue2070/crash14.vhdl
@@ -0,0 +1 @@
+package package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash15.vhdl b/testsuite/gna/issue2070/crash15.vhdl
new file mode 100644
index 000000000..eda9b99a7
--- /dev/null
+++ b/testsuite/gna/issue2070/crash15.vhdl
@@ -0,0 +1 @@
+architecture@for(""x""4000000000x" \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash16.vhdl b/testsuite/gna/issue2070/crash16.vhdl
new file mode 100644
index 000000000..5d99067f3
--- /dev/null
+++ b/testsuite/gna/issue2070/crash16.vhdl
@@ -0,0 +1 @@
+architecture 0for(""x""4000000000x" \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash17.vhdl b/testsuite/gna/issue2070/crash17.vhdl
new file mode 100644
index 000000000..1ce62ef37
--- /dev/null
+++ b/testsuite/gna/issue2070/crash17.vhdl
@@ -0,0 +1,2 @@
+architecture function is
+0package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash18.vhdl b/testsuite/gna/issue2070/crash18.vhdl
new file mode 100644
index 000000000..a0dd4f571
--- /dev/null
+++ b/testsuite/gna/issue2070/crash18.vhdl
@@ -0,0 +1 @@
+architecture function is;0package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash19.vhdl b/testsuite/gna/issue2070/crash19.vhdl
new file mode 100644
index 000000000..65009429e
--- /dev/null
+++ b/testsuite/gna/issue2070/crash19.vhdl
@@ -0,0 +1 @@
+architecture package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash2.vhdl b/testsuite/gna/issue2070/crash2.vhdl
new file mode 100644
index 000000000..203877edb
--- /dev/null
+++ b/testsuite/gna/issue2070/crash2.vhdl
@@ -0,0 +1 @@
+architecture if''h'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash20.vhdl b/testsuite/gna/issue2070/crash20.vhdl
new file mode 100644
index 000000000..d637382eb
--- /dev/null
+++ b/testsuite/gna/issue2070/crash20.vhdl
@@ -0,0 +1,3 @@
+package--
+function is
+if)h'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash21.vhdl b/testsuite/gna/issue2070/crash21.vhdl
new file mode 100644
index 000000000..18fe7e00c
--- /dev/null
+++ b/testsuite/gna/issue2070/crash21.vhdl
@@ -0,0 +1 @@
+architecture;b'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash22.vhdl b/testsuite/gna/issue2070/crash22.vhdl
new file mode 100644
index 000000000..83b140f4c
--- /dev/null
+++ b/testsuite/gna/issue2070/crash22.vhdl
@@ -0,0 +1 @@
+architecture if''h'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash23.vhdl b/testsuite/gna/issue2070/crash23.vhdl
new file mode 100644
index 000000000..0570a5eb5
--- /dev/null
+++ b/testsuite/gna/issue2070/crash23.vhdl
@@ -0,0 +1,2 @@
+context is
+library use T.context is \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash23_1.vhdl b/testsuite/gna/issue2070/crash23_1.vhdl
new file mode 100644
index 000000000..8e086380f
--- /dev/null
+++ b/testsuite/gna/issue2070/crash23_1.vhdl
@@ -0,0 +1,5 @@
+context a is
+ library ieee;
+ context b is
+ end;
+end;
diff --git a/testsuite/gna/issue2070/crash24.vhdl b/testsuite/gna/issue2070/crash24.vhdl
new file mode 100644
index 000000000..4936b8e12
--- /dev/null
+++ b/testsuite/gna/issue2070/crash24.vhdl
Binary files differ
diff --git a/testsuite/gna/issue2070/crash25.vhdl b/testsuite/gna/issue2070/crash25.vhdl
new file mode 100644
index 000000000..4a48fd280
--- /dev/null
+++ b/testsuite/gna/issue2070/crash25.vhdl
@@ -0,0 +1,2 @@
+package--
+function is;n'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash26.vhdl b/testsuite/gna/issue2070/crash26.vhdl
new file mode 100644
index 000000000..44271032d
--- /dev/null
+++ b/testsuite/gna/issue2070/crash26.vhdl
@@ -0,0 +1 @@
+entity package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash27.vhdl b/testsuite/gna/issue2070/crash27.vhdl
new file mode 100644
index 000000000..328403293
--- /dev/null
+++ b/testsuite/gna/issue2070/crash27.vhdl
@@ -0,0 +1 @@
+architecture if''e'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash28.vhdl b/testsuite/gna/issue2070/crash28.vhdl
new file mode 100644
index 000000000..adb997110
--- /dev/null
+++ b/testsuite/gna/issue2070/crash28.vhdl
@@ -0,0 +1 @@
+package body function begin 0package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash29.vhdl b/testsuite/gna/issue2070/crash29.vhdl
new file mode 100644
index 000000000..01bb9535a
--- /dev/null
+++ b/testsuite/gna/issue2070/crash29.vhdl
@@ -0,0 +1,5 @@
+package n is
+function t return n;end;package body n is
+function get return l is begin end get;end;package n is generic(package g is new w generic map(<>));function t return l;end;package body gen0 is use p;function g return l is begin end;end gen0;package b is
+end;architecture beha0 of b is
+begin end beha0; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash29_1.vhdl b/testsuite/gna/issue2070/crash29_1.vhdl
new file mode 100644
index 000000000..d6a4037ae
--- /dev/null
+++ b/testsuite/gna/issue2070/crash29_1.vhdl
@@ -0,0 +1,4 @@
+package n is
+ generic(package g is new w generic map(<>));
+ function t return l;
+end;
diff --git a/testsuite/gna/issue2070/crash29_2.vhdl b/testsuite/gna/issue2070/crash29_2.vhdl
new file mode 100644
index 000000000..1c9a979bb
--- /dev/null
+++ b/testsuite/gna/issue2070/crash29_2.vhdl
@@ -0,0 +1,27 @@
+package n is
+ function t return n;
+end;
+package body n is
+ function get return l is
+ begin
+ end get;
+end;
+
+package n is
+ generic(package g is new w generic map(<>));
+ function t return l;
+end;
+
+package body gen0 is
+ use p;
+ function g return l is
+ begin
+ end;
+end gen0;
+
+package b is
+end;
+
+architecture beha0 of b is
+begin
+end beha0;
diff --git a/testsuite/gna/issue2070/crash3.vhdl b/testsuite/gna/issue2070/crash3.vhdl
new file mode 100644
index 000000000..7b0125363
--- /dev/null
+++ b/testsuite/gna/issue2070/crash3.vhdl
@@ -0,0 +1 @@
+architecture;l'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash30.vhdl b/testsuite/gna/issue2070/crash30.vhdl
new file mode 100644
index 000000000..83513ef29
--- /dev/null
+++ b/testsuite/gna/issue2070/crash30.vhdl
@@ -0,0 +1,4 @@
+package n is
+function t return n;end;package d is
+end;package gen0 is generic(package g is new w generic map(<>));function t return l;end gen0;package body gen0 is use p;function g return l;end gen0;package g is new n;package p is new w generic map(0);architecture beha0 of b is
+begin end beha0; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash31.vhdl b/testsuite/gna/issue2070/crash31.vhdl
new file mode 100644
index 000000000..801339647
--- /dev/null
+++ b/testsuite/gna/issue2070/crash31.vhdl
@@ -0,0 +1 @@
+package function return of \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash32.vhdl b/testsuite/gna/issue2070/crash32.vhdl
new file mode 100644
index 000000000..3c7743bda
--- /dev/null
+++ b/testsuite/gna/issue2070/crash32.vhdl
@@ -0,0 +1 @@
+package function is;s'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash33.vhdl b/testsuite/gna/issue2070/crash33.vhdl
new file mode 100644
index 000000000..020a0bedf
--- /dev/null
+++ b/testsuite/gna/issue2070/crash33.vhdl
@@ -0,0 +1 @@
+package function(0is if XŠX'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash34.vhdl b/testsuite/gna/issue2070/crash34.vhdl
new file mode 100644
index 000000000..8d1c7b6e2
--- /dev/null
+++ b/testsuite/gna/issue2070/crash34.vhdl
@@ -0,0 +1,2 @@
+package function is loop
+t((:'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash35.vhdl b/testsuite/gna/issue2070/crash35.vhdl
new file mode 100644
index 000000000..2c3217103
--- /dev/null
+++ b/testsuite/gna/issue2070/crash35.vhdl
@@ -0,0 +1 @@
+package function is;i'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash36.vhdl b/testsuite/gna/issue2070/crash36.vhdl
new file mode 100644
index 000000000..04c0f238c
--- /dev/null
+++ b/testsuite/gna/issue2070/crash36.vhdl
@@ -0,0 +1 @@
+package function is;X'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash37.vhdl b/testsuite/gna/issue2070/crash37.vhdl
new file mode 100644
index 000000000..0708694da
--- /dev/null
+++ b/testsuite/gna/issue2070/crash37.vhdl
@@ -0,0 +1,2 @@
+package function is
+if)n'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash38.vhdl b/testsuite/gna/issue2070/crash38.vhdl
new file mode 100644
index 000000000..221e8bbd5
--- /dev/null
+++ b/testsuite/gna/issue2070/crash38.vhdl
@@ -0,0 +1,5 @@
+library IEEE;use IEEE.numeric_std.all;entity tb is
+end;architecture behavioral of tb is
+subtype int31 is integer range-0*(0)to 2**(31);type a is array(0)of i;function A(v:l)return r is variable s:d(0);begin r((0));end;begin
+process
+variable t:t;variable tmp:int31;begin tmp:=0;end process;end behavioral; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash38_1.vhdl b/testsuite/gna/issue2070/crash38_1.vhdl
new file mode 100644
index 000000000..2b44e0aec
--- /dev/null
+++ b/testsuite/gna/issue2070/crash38_1.vhdl
@@ -0,0 +1,14 @@
+library IEEE;use IEEE.numeric_std.all;
+
+entity tb is
+end;
+
+architecture behavioral of tb is
+ subtype int31 is integer range-0*(0)to 2**(31);
+begin
+ process
+ variable tmp:int31;
+ begin
+ tmp:=0;
+ end process;
+end behavioral;
diff --git a/testsuite/gna/issue2070/crash39.vhdl b/testsuite/gna/issue2070/crash39.vhdl
new file mode 100644
index 000000000..f91696171
--- /dev/null
+++ b/testsuite/gna/issue2070/crash39.vhdl
@@ -0,0 +1,2 @@
+package--
+function is if('t ˙'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash4.vhdl b/testsuite/gna/issue2070/crash4.vhdl
new file mode 100644
index 000000000..5b76923d8
--- /dev/null
+++ b/testsuite/gna/issue2070/crash4.vhdl
@@ -0,0 +1,2 @@
+package--
+function(0is;r'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash40.vhdl b/testsuite/gna/issue2070/crash40.vhdl
new file mode 100644
index 000000000..8539ad734
--- /dev/null
+++ b/testsuite/gna/issue2070/crash40.vhdl
@@ -0,0 +1 @@
+architecture function(0is;0package \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash41.vhdl b/testsuite/gna/issue2070/crash41.vhdl
new file mode 100644
index 000000000..fa2399a01
--- /dev/null
+++ b/testsuite/gna/issue2070/crash41.vhdl
@@ -0,0 +1,3 @@
+package function--
+begin
+X'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash42.vhdl b/testsuite/gna/issue2070/crash42.vhdl
new file mode 100644
index 000000000..116afbcc1
--- /dev/null
+++ b/testsuite/gna/issue2070/crash42.vhdl
@@ -0,0 +1,2 @@
+package
+function begin if a s'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash43.vhdl b/testsuite/gna/issue2070/crash43.vhdl
new file mode 100644
index 000000000..d9b94dca4
--- /dev/null
+++ b/testsuite/gna/issue2070/crash43.vhdl
@@ -0,0 +1,2 @@
+package
+function begin if a r'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash44.vhdl b/testsuite/gna/issue2070/crash44.vhdl
new file mode 100644
index 000000000..20a06b633
--- /dev/null
+++ b/testsuite/gna/issue2070/crash44.vhdl
@@ -0,0 +1 @@
+package function""begin r'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash45.vhdl b/testsuite/gna/issue2070/crash45.vhdl
new file mode 100644
index 000000000..714919de4
--- /dev/null
+++ b/testsuite/gna/issue2070/crash45.vhdl
@@ -0,0 +1,7 @@
+library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std;entity full_adder_tb is
+end entity full_adder_tb;architecture sim of full_adder_tb is
+type rc_data is record
+a:c;n:c;s:s;t:std_logic;end record;type fa_array is array(0 range<>)of rc_data;constant e:fa_array:=(('0','0','0','%'),('0'));begin
+process
+begin
+end process;D(0);end architecture sim; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash45_1.vhdl b/testsuite/gna/issue2070/crash45_1.vhdl
new file mode 100644
index 000000000..9f5c54070
--- /dev/null
+++ b/testsuite/gna/issue2070/crash45_1.vhdl
@@ -0,0 +1,14 @@
+library ieee;use ieee.std_logic_1164.all;
+use ieee.numeric_std;
+
+entity full_adder_tb is
+end entity full_adder_tb;
+
+architecture sim of full_adder_tb is
+ type rc_data is record
+ a : character;
+ t:std_logic;
+ end record;
+ constant e:rc_data:=('0','%');
+begin
+end architecture sim;
diff --git a/testsuite/gna/issue2070/crash46.vhdl b/testsuite/gna/issue2070/crash46.vhdl
new file mode 100644
index 000000000..c7d39a38a
--- /dev/null
+++ b/testsuite/gna/issue2070/crash46.vhdl
@@ -0,0 +1,2 @@
+context is
+context is \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash47.vhdl b/testsuite/gna/issue2070/crash47.vhdl
new file mode 100644
index 000000000..948e9a24d
--- /dev/null
+++ b/testsuite/gna/issue2070/crash47.vhdl
@@ -0,0 +1,3 @@
+entity g is generic(type stream0t);port(t:t stream0t);end;architecture t of g is type e is array(0)of m;signal w:r range 0 to 0;signal r:r range 0 to 0;signal m:n;begin
+y(0);process(a)begin if(0)then
+if 0 then(0)<=0;end if;end if;end process;end; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash47_1.vhdl b/testsuite/gna/issue2070/crash47_1.vhdl
new file mode 100644
index 000000000..34f9eee95
--- /dev/null
+++ b/testsuite/gna/issue2070/crash47_1.vhdl
@@ -0,0 +1,20 @@
+entity g is
+ generic(type stream0t);
+ port(t:t stream0t);
+end;
+
+architecture t of g is
+ type e is array(0)of m;
+ signal w:r range 0 to 0;
+ signal r:r range 0 to 0;
+ signal m:n;
+begin
+ y(0);
+ process(a)
+ begin
+ if(0)then
+ if 0 then(0)<=0;
+ end if;
+ end if;
+ end process;
+end;
diff --git a/testsuite/gna/issue2070/crash48.vhdl b/testsuite/gna/issue2070/crash48.vhdl
new file mode 100644
index 000000000..97b0d7f23
--- /dev/null
+++ b/testsuite/gna/issue2070/crash48.vhdl
@@ -0,0 +1,6 @@
+package float0generic0pkg is generic(package g is new I generic map(<>));--
+function a(l:t;--
+e:N:=0)--
+return t;function m(r:e)return t;--
+function t(g:d;--
+h:h)return t;function p(s:t)return t;alias m is m;function r(e:t)return t;alias f is m;end float0generic0pkg; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash49.vhdl b/testsuite/gna/issue2070/crash49.vhdl
new file mode 100644
index 000000000..705406049
--- /dev/null
+++ b/testsuite/gna/issue2070/crash49.vhdl
@@ -0,0 +1,5 @@
+library IEEE;use IEEE.numeric_std.all;entity tb is
+end;architecture behavioral of tb is
+subtype int01 is integer range-0**(-1)to(0);type a is array(0)of i;function A(v:l)return r is variable p:d(0);begin e(0)(0);r((0));end;begin
+process
+variable t:t;variable tmp:int01;begin tmp:=0;end process;end behavioral; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash5.vhdl b/testsuite/gna/issue2070/crash5.vhdl
new file mode 100644
index 000000000..0859877b7
--- /dev/null
+++ b/testsuite/gna/issue2070/crash5.vhdl
@@ -0,0 +1,2 @@
+package function begin--
+n'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash50.vhdl b/testsuite/gna/issue2070/crash50.vhdl
new file mode 100644
index 000000000..197f29ebc
--- /dev/null
+++ b/testsuite/gna/issue2070/crash50.vhdl
@@ -0,0 +1,2 @@
+package function begin--
+˙'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash51.vhdl b/testsuite/gna/issue2070/crash51.vhdl
new file mode 100644
index 000000000..8512bfa02
--- /dev/null
+++ b/testsuite/gna/issue2070/crash51.vhdl
@@ -0,0 +1 @@
+architecture;s'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash52.vhdl b/testsuite/gna/issue2070/crash52.vhdl
new file mode 100644
index 000000000..b91dbafb1
--- /dev/null
+++ b/testsuite/gna/issue2070/crash52.vhdl
@@ -0,0 +1,5 @@
+library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity full_adder_tb is
+end entity full_adder_tb;architecture sim of full_adder_tb is--
+type rc_data is record a:c;c:std_logic;end record rc_data;type fa_array is array(0)of rc_data;constant f:fa_array:=(('0'),('0','%'),('0'));begin process begin
+for i in 0 loop
+end loop;end process;p(0);end architecture sim; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash53.vhdl b/testsuite/gna/issue2070/crash53.vhdl
new file mode 100644
index 000000000..e8f3de699
--- /dev/null
+++ b/testsuite/gna/issue2070/crash53.vhdl
@@ -0,0 +1,7 @@
+library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity full_adder_tb is
+end entity full_adder_tb;architecture m of full_adder_tb is--
+type rc_data is record n:c;t:std_logic;end record rc_data;type fa_array is array(0 range<>)of rc_data;constant e:fa_array:=(('0'),('0','%','0'),('0'));begin
+process
+begin
+for i in 0 loop
+end loop;end process;p(0);end; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash54.vhdl b/testsuite/gna/issue2070/crash54.vhdl
new file mode 100644
index 000000000..fcadd4fa0
--- /dev/null
+++ b/testsuite/gna/issue2070/crash54.vhdl
@@ -0,0 +1,5 @@
+library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity full_adder_tb is
+end entity full_adder_tb;architecture m of full_adder_tb is--
+type rc_data is record a:c;c:std_logic;end record rc_data;type fa_array is array(0)of rc_data;constant f:fa_array:=(('0'),('0','%'));begin process begin
+for i in 0 loop
+end loop;end process;r(0);end architecture; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash55.vhdl b/testsuite/gna/issue2070/crash55.vhdl
new file mode 100644
index 000000000..e261f5a9c
--- /dev/null
+++ b/testsuite/gna/issue2070/crash55.vhdl
@@ -0,0 +1,2 @@
+CONTEXT is
+context is \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash6.vhdl b/testsuite/gna/issue2070/crash6.vhdl
new file mode 100644
index 000000000..fbc216a49
--- /dev/null
+++ b/testsuite/gna/issue2070/crash6.vhdl
@@ -0,0 +1,3 @@
+package--
+function(0is
+while()0X'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash7.vhdl b/testsuite/gna/issue2070/crash7.vhdl
new file mode 100644
index 000000000..e2e603191
--- /dev/null
+++ b/testsuite/gna/issue2070/crash7.vhdl
@@ -0,0 +1 @@
+package function begin if t X'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash8.vhdl b/testsuite/gna/issue2070/crash8.vhdl
new file mode 100644
index 000000000..fbdf3cdff
--- /dev/null
+++ b/testsuite/gna/issue2070/crash8.vhdl
@@ -0,0 +1 @@
+package function begin c'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/crash9.vhdl b/testsuite/gna/issue2070/crash9.vhdl
new file mode 100644
index 000000000..fead40f2a
--- /dev/null
+++ b/testsuite/gna/issue2070/crash9.vhdl
@@ -0,0 +1,2 @@
+package function begin--
+X'; \ No newline at end of file
diff --git a/testsuite/gna/issue2070/testsuite.sh b/testsuite/gna/issue2070/testsuite.sh
new file mode 100755
index 000000000..ec0fac15f
--- /dev/null
+++ b/testsuite/gna/issue2070/testsuite.sh
@@ -0,0 +1,71 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+files="
+crash0.vhdl
+crash1.vhdl
+crash10.vhdl
+crash11.vhdl
+crash12.vhdl
+crash13.vhdl
+crash14.vhdl
+crash15.vhdl
+crash16.vhdl
+crash17.vhdl
+crash18.vhdl
+crash19.vhdl
+crash2.vhdl
+crash20.vhdl
+crash21.vhdl
+crash22.vhdl
+crash23.vhdl
+crash24.vhdl
+crash25.vhdl
+crash26.vhdl
+crash27.vhdl
+crash28.vhdl
+crash29.vhdl
+crash3.vhdl
+crash30.vhdl
+crash31.vhdl
+crash32.vhdl
+crash33.vhdl
+crash34.vhdl
+crash35.vhdl
+crash36.vhdl
+crash37.vhdl
+crash38.vhdl
+crash39.vhdl
+crash4.vhdl
+crash40.vhdl
+crash41.vhdl
+crash42.vhdl
+crash43.vhdl
+crash44.vhdl
+crash45.vhdl
+crash46.vhdl
+crash47.vhdl
+crash48.vhdl
+crash49.vhdl
+crash5.vhdl
+crash50.vhdl
+crash51.vhdl
+crash52.vhdl
+crash53.vhdl
+crash54.vhdl
+crash55.vhdl
+crash6.vhdl
+crash7.vhdl
+crash8.vhdl
+crash9.vhdl
+"
+
+export GHDL_STD_FLAGS=--std=08
+for f in $files; do
+ analyze_failure $f
+done
+
+clean
+
+echo "Test successful"