summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testsuite/gna/bug024/ppkg.vhdl23
-rw-r--r--testsuite/gna/bug024/ppkg1.vhdl24
-rwxr-xr-xtestsuite/gna/bug024/testsuite.sh10
3 files changed, 57 insertions, 0 deletions
diff --git a/testsuite/gna/bug024/ppkg.vhdl b/testsuite/gna/bug024/ppkg.vhdl
new file mode 100644
index 0000000..408a8dd
--- /dev/null
+++ b/testsuite/gna/bug024/ppkg.vhdl
@@ -0,0 +1,23 @@
+package ppkg is
+ procedure rep1 (msg : string := "failure");
+ procedure rep2;
+ procedure rep3;
+end ppkg;
+
+package body ppkg is
+ procedure rep1 (msg : string := "failure") is
+ begin
+ report msg;
+ end rep1;
+
+ procedure rep2 is
+ begin
+ rep1;
+ rep1;
+ end rep2;
+
+ procedure rep3 is
+ begin
+ rep1;
+ end rep3;
+end ppkg;
diff --git a/testsuite/gna/bug024/ppkg1.vhdl b/testsuite/gna/bug024/ppkg1.vhdl
new file mode 100644
index 0000000..88b7128
--- /dev/null
+++ b/testsuite/gna/bug024/ppkg1.vhdl
@@ -0,0 +1,24 @@
+package ppkg1 is
+ type line is access string;
+ procedure rep1 (variable msg : line := new string (1 to 7));
+ procedure rep2;
+ procedure rep3;
+end ppkg1;
+
+package body ppkg is
+ procedure rep1 (msg : line := new string (1 to 7)) is
+ begin
+ msg.all := (others => ' ');
+ end rep1;
+
+ procedure rep2 is
+ begin
+ rep1;
+ rep1;
+ end rep2;
+
+ procedure rep3 is
+ begin
+ rep1;
+ end rep3;
+end ppkg;
diff --git a/testsuite/gna/bug024/testsuite.sh b/testsuite/gna/bug024/testsuite.sh
new file mode 100755
index 0000000..d0b6db0
--- /dev/null
+++ b/testsuite/gna/bug024/testsuite.sh
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+analyze ppkg.vhdl
+analyze_failure ppkg1.vhdl
+
+clean
+
+echo "Test successful"