aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-06-22 03:11:30 +0200
committerTristan Gingold <tgingold@free.fr>2022-06-22 03:11:30 +0200
commit79e241b79eef8c6364038cbc3608e792f31e6124 (patch)
treea58b9b4c9d54a05e5c92ed58dacf3cb410c7c6a8 /testsuite
parent29051c1eecc8b567ce68cbf3cc40b7ab5165775c (diff)
downloadghdl-79e241b79eef8c6364038cbc3608e792f31e6124.tar.gz
ghdl-79e241b79eef8c6364038cbc3608e792f31e6124.tar.bz2
ghdl-79e241b79eef8c6364038cbc3608e792f31e6124.zip
testsuite/gna: add tests for #2104
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/gna/issue2104/e.vhdl14
-rw-r--r--testsuite/gna/issue2104/e2.vhdl18
-rw-r--r--testsuite/gna/issue2104/e2b.vhdl19
-rw-r--r--testsuite/gna/issue2104/e2c.vhdl15
-rw-r--r--testsuite/gna/issue2104/e2d.vhdl19
-rw-r--r--testsuite/gna/issue2104/e3.vhdl18
-rwxr-xr-xtestsuite/gna/issue2104/testsuite.sh12
7 files changed, 115 insertions, 0 deletions
diff --git a/testsuite/gna/issue2104/e.vhdl b/testsuite/gna/issue2104/e.vhdl
new file mode 100644
index 000000000..4c83a0824
--- /dev/null
+++ b/testsuite/gna/issue2104/e.vhdl
@@ -0,0 +1,14 @@
+entity e is
+end;
+
+architecture a of e is
+ function outer(arg : integer) return integer is
+ function inner(arg : integer) return integer is
+ begin
+ return outer(0);
+ end;
+ begin
+ return inner(0);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/e2.vhdl b/testsuite/gna/issue2104/e2.vhdl
new file mode 100644
index 000000000..e4690f2b7
--- /dev/null
+++ b/testsuite/gna/issue2104/e2.vhdl
@@ -0,0 +1,18 @@
+entity e2 is
+end;
+
+architecture a of e2 is
+ function outer(arg : integer) return integer is
+ function inner1(arg : integer) return integer is
+ begin
+ return arg + 1;
+ end;
+ function inner2(arg : integer) return integer is
+ begin
+ return inner1(arg + 2);
+ end;
+ begin
+ return inner2(arg + 3);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/e2b.vhdl b/testsuite/gna/issue2104/e2b.vhdl
new file mode 100644
index 000000000..de1422675
--- /dev/null
+++ b/testsuite/gna/issue2104/e2b.vhdl
@@ -0,0 +1,19 @@
+entity e2b is
+ generic (gen1 : natural := 5);
+end;
+
+architecture a of e2b is
+ function outer(arg : integer) return integer is
+ function inner1(arg : integer) return integer is
+ begin
+ return arg + gen1;
+ end;
+ function inner2(arg : integer) return integer is
+ begin
+ return inner1(arg + 2);
+ end;
+ begin
+ return inner2(arg + 3);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/e2c.vhdl b/testsuite/gna/issue2104/e2c.vhdl
new file mode 100644
index 000000000..e3ecae001
--- /dev/null
+++ b/testsuite/gna/issue2104/e2c.vhdl
@@ -0,0 +1,15 @@
+entity e2c is
+ generic (gen1 : natural := 5);
+end;
+
+architecture a of e2c is
+ function outer(arg : integer) return integer is
+ function inner1(arg : integer) return integer is
+ begin
+ return arg + gen1;
+ end;
+ begin
+ return inner1(arg + 3);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/e2d.vhdl b/testsuite/gna/issue2104/e2d.vhdl
new file mode 100644
index 000000000..0b541fc47
--- /dev/null
+++ b/testsuite/gna/issue2104/e2d.vhdl
@@ -0,0 +1,19 @@
+entity e2d is
+ generic (gen1 : natural := 5);
+end;
+
+architecture a of e2d is
+ function outer(arg : integer) return integer is
+ function inner1(arg : integer) return integer is
+ begin
+ return arg + 1;
+ end;
+ function inner2(arg : integer) return integer is
+ begin
+ return inner1(arg + 2);
+ end;
+ begin
+ return gen1 + inner2(arg + 3);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/e3.vhdl b/testsuite/gna/issue2104/e3.vhdl
new file mode 100644
index 000000000..f3641b52e
--- /dev/null
+++ b/testsuite/gna/issue2104/e3.vhdl
@@ -0,0 +1,18 @@
+entity e3 is
+end;
+
+architecture a of e3 is
+ function outer(arg : integer) return integer is
+ function inner1(arg : integer) return integer is
+ function inner2(arg : integer) return integer is
+ begin
+ return arg + 1;
+ end;
+ begin
+ return inner2(0);
+ end;
+ begin
+ return inner1(0);
+ end;
+begin
+end;
diff --git a/testsuite/gna/issue2104/testsuite.sh b/testsuite/gna/issue2104/testsuite.sh
new file mode 100755
index 000000000..02342e717
--- /dev/null
+++ b/testsuite/gna/issue2104/testsuite.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+for f in e e2 e2b e2c e2d e3; do
+ analyze $f.vhdl
+ elab_simulate $f
+done
+
+clean
+
+echo "Test successful"