diff options
author | Tristan Gingold | 2015-05-10 16:03:54 +0200 |
---|---|---|
committer | Tristan Gingold | 2015-05-10 16:03:54 +0200 |
commit | 7a998f26f619adec0527ebd7e09b63eb058fdf95 (patch) | |
tree | a11ace111425b58dc04f52c6aff64ed494f82613 /testsuite/gna/ticket43 | |
parent | 7b7f3c1113a767b59e13cc49fe818c9c1efde15e (diff) | |
download | ghdl-7a998f26f619adec0527ebd7e09b63eb058fdf95.tar.gz ghdl-7a998f26f619adec0527ebd7e09b63eb058fdf95.tar.bz2 ghdl-7a998f26f619adec0527ebd7e09b63eb058fdf95.zip |
File reproducer for ticket 43 and 44.
Diffstat (limited to 'testsuite/gna/ticket43')
-rw-r--r-- | testsuite/gna/ticket43/bug.vhdl | 13 | ||||
-rw-r--r-- | testsuite/gna/ticket43/file1.vhd | 41 | ||||
-rw-r--r-- | testsuite/gna/ticket43/file2.vhd | 13 | ||||
-rwxr-xr-x | testsuite/gna/ticket43/testsuite.sh | 13 |
4 files changed, 80 insertions, 0 deletions
diff --git a/testsuite/gna/ticket43/bug.vhdl b/testsuite/gna/ticket43/bug.vhdl new file mode 100644 index 0000000..970835c --- /dev/null +++ b/testsuite/gna/ticket43/bug.vhdl @@ -0,0 +1,13 @@ +entity bug is +end; + +use work.pkg.all; + +architecture behav of bug is +begin + p: process + variable rec : rec_t; + begin + wait; + end process; +end behav; diff --git a/testsuite/gna/ticket43/file1.vhd b/testsuite/gna/ticket43/file1.vhd new file mode 100644 index 0000000..7ad0a89 --- /dev/null +++ b/testsuite/gna/ticket43/file1.vhd @@ -0,0 +1,41 @@ +package pkg is + type rec_t is record + boolean_field : boolean; + integer_field : integer; + end record; + + type other_rec_t is record + integer_field : integer; + end record; + + type protected_t is protected + end protected protected_t; + + procedure proc(variable prot : inout protected_t; variable rec : inout rec_t); + procedure proc(variable prot : inout protected_t; variable rec : inout other_rec_t); +end package; + +package body pkg is + type protected_t is protected body + end protected body protected_t; + + procedure proc (variable prot : inout protected_t; variable rec : inout rec_t) is + begin + end; + + procedure proc(variable prot : inout protected_t; variable rec : inout other_rec_t) is + begin + end; +end package body; + +use work.pkg.all; + +package other_pkg is + shared variable default_prot : protected_t; + + procedure other_proc(variable rec : inout rec_t); + alias other_proc is proc[protected_t, rec_t]; + + procedure other_proc(variable rec : inout other_rec_t); + alias other_proc is proc[protected_t, other_rec_t]; +end package; diff --git a/testsuite/gna/ticket43/file2.vhd b/testsuite/gna/ticket43/file2.vhd new file mode 100644 index 0000000..0265adf --- /dev/null +++ b/testsuite/gna/ticket43/file2.vhd @@ -0,0 +1,13 @@ +use work.pkg.all; + +package body other_pkg is + procedure other_proc(variable rec : inout rec_t) is + begin + proc(default_prot, rec); + end; + + procedure other_proc(variable rec : inout other_rec_t) is + begin + proc(default_prot, rec); + end; +end package body; diff --git a/testsuite/gna/ticket43/testsuite.sh b/testsuite/gna/ticket43/testsuite.sh new file mode 100755 index 0000000..8e27e9a --- /dev/null +++ b/testsuite/gna/ticket43/testsuite.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze --std=02 file1.vhd +analyze --std=02 file2.vhd +analyze --std=02 bug.vhdl + +elab_simulate --std=02 bug + +clean + +echo "Test successful" |