diff options
Diffstat (limited to 'testsuite')
-rwxr-xr-x | testsuite/gna/bug026/testsuite.sh | 10 | ||||
-rw-r--r-- | testsuite/gna/bug026/x.vhd | 15 | ||||
-rw-r--r-- | testsuite/gna/bug026/xb.vhd | 20 |
3 files changed, 45 insertions, 0 deletions
diff --git a/testsuite/gna/bug026/testsuite.sh b/testsuite/gna/bug026/testsuite.sh new file mode 100755 index 0000000..b5ec622 --- /dev/null +++ b/testsuite/gna/bug026/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + +#analyze repro.vhdl +#analyze_failure repro.vhdl + +clean + +echo "Test successful" diff --git a/testsuite/gna/bug026/x.vhd b/testsuite/gna/bug026/x.vhd new file mode 100644 index 0000000..a123e86 --- /dev/null +++ b/testsuite/gna/bug026/x.vhd @@ -0,0 +1,15 @@ +--library ieee; +--use ieee.std_logic_1164.all; + +package dosomething is + + type dosomething_t is record + dummy1 : integer; + dummy2 : integer; + dummy3 : integer; + end record; + + procedure dosomething_hello ( + variable r : inout dosomething_t); + +end dosomething; diff --git a/testsuite/gna/bug026/xb.vhd b/testsuite/gna/bug026/xb.vhd new file mode 100644 index 0000000..53877a6 --- /dev/null +++ b/testsuite/gna/bug026/xb.vhd @@ -0,0 +1,20 @@ +package body dosomething is + + procedure dosomething_c_hello ( + constant r : in dosomething_t); + + attribute foreign of dosomething_c_hello : procedure is "VHPIDIRECT dosomething_c_hello"; + + procedure dosomething_c_hello ( + constant r : in dosomething_t) is + begin + assert false severity failure; + end dosomething_c_hello; + + procedure dosomething_hello ( + variable r : inout dosomething_t) is + begin + dosomething_c_hello(r); + end dosomething_hello; + +end dosomething; |