diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-06-22 03:11:30 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-06-22 03:11:30 +0200 |
commit | 79e241b79eef8c6364038cbc3608e792f31e6124 (patch) | |
tree | a58b9b4c9d54a05e5c92ed58dacf3cb410c7c6a8 | |
parent | 29051c1eecc8b567ce68cbf3cc40b7ab5165775c (diff) | |
download | ghdl-79e241b79eef8c6364038cbc3608e792f31e6124.tar.gz ghdl-79e241b79eef8c6364038cbc3608e792f31e6124.tar.bz2 ghdl-79e241b79eef8c6364038cbc3608e792f31e6124.zip |
testsuite/gna: add tests for #2104
-rw-r--r-- | testsuite/gna/issue2104/e.vhdl | 14 | ||||
-rw-r--r-- | testsuite/gna/issue2104/e2.vhdl | 18 | ||||
-rw-r--r-- | testsuite/gna/issue2104/e2b.vhdl | 19 | ||||
-rw-r--r-- | testsuite/gna/issue2104/e2c.vhdl | 15 | ||||
-rw-r--r-- | testsuite/gna/issue2104/e2d.vhdl | 19 | ||||
-rw-r--r-- | testsuite/gna/issue2104/e3.vhdl | 18 | ||||
-rwxr-xr-x | testsuite/gna/issue2104/testsuite.sh | 12 |
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" |