From 7a998f26f619adec0527ebd7e09b63eb058fdf95 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 10 May 2015 16:03:54 +0200 Subject: File reproducer for ticket 43 and 44. --- testsuite/gna/ticket43/bug.vhdl | 13 ++++++++++++ testsuite/gna/ticket43/file1.vhd | 41 +++++++++++++++++++++++++++++++++++++ testsuite/gna/ticket43/file2.vhd | 13 ++++++++++++ testsuite/gna/ticket43/testsuite.sh | 13 ++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 testsuite/gna/ticket43/bug.vhdl create mode 100644 testsuite/gna/ticket43/file1.vhd create mode 100644 testsuite/gna/ticket43/file2.vhd create mode 100755 testsuite/gna/ticket43/testsuite.sh (limited to 'testsuite/gna/ticket43') 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" -- cgit