aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-08-07 10:18:54 +0200
committerTristan Gingold <tgingold@free.fr>2017-08-16 07:52:15 +0200
commit200e893607444cb3fe2a355430767215bee8fe70 (patch)
tree0df242f6038b39ad57714645b199fa751037cb9e /testsuite
parentb32550b2e7e992eac6d4d5a3c6c35451474d3eff (diff)
downloadghdl-200e893607444cb3fe2a355430767215bee8fe70.tar.gz
ghdl-200e893607444cb3fe2a355430767215bee8fe70.tar.bz2
ghdl-200e893607444cb3fe2a355430767215bee8fe70.zip
Add testcase for #397
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/gna/issue397/e.vhdl26
-rwxr-xr-xtestsuite/gna/issue397/testsuite.sh10
2 files changed, 36 insertions, 0 deletions
diff --git a/testsuite/gna/issue397/e.vhdl b/testsuite/gna/issue397/e.vhdl
new file mode 100644
index 000000000..c617150bb
--- /dev/null
+++ b/testsuite/gna/issue397/e.vhdl
@@ -0,0 +1,26 @@
+entity bug is
+end entity;
+
+architecture a of bug is
+begin
+ main : process
+ type rec_t is record
+ field : natural;
+ end record;
+
+ impure function get_rec return rec_t is
+ begin
+ return (field => 10);
+ end;
+
+ -- Comment out this procedure to avoid the crash
+ procedure get_rec(variable rec : out rec_t) is
+ begin
+ rec := get_rec;
+ end;
+
+ begin
+ assert get_rec.field = 10 severity failure;
+ wait;
+ end process;
+end;
diff --git a/testsuite/gna/issue397/testsuite.sh b/testsuite/gna/issue397/testsuite.sh
new file mode 100755
index 000000000..854e53f9b
--- /dev/null
+++ b/testsuite/gna/issue397/testsuite.sh
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+analyze e.vhdl
+elab_simulate bug
+
+clean
+
+echo "Test successful"