summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtestsuite/gna/bug09/testsuite.sh13
-rw-r--r--testsuite/gna/bug09/univ1.vhdl22
-rw-r--r--testsuite/gna/bug09/univ2.vhdl17
3 files changed, 52 insertions, 0 deletions
diff --git a/testsuite/gna/bug09/testsuite.sh b/testsuite/gna/bug09/testsuite.sh
new file mode 100755
index 0000000..8d98967
--- /dev/null
+++ b/testsuite/gna/bug09/testsuite.sh
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+. ../../testenv.sh
+
+analyze univ1.vhdl
+elab_simulate_failure univ1
+
+analyze univ2.vhdl
+elab_simulate univ2
+
+clean
+
+echo "Test successful"
diff --git a/testsuite/gna/bug09/univ1.vhdl b/testsuite/gna/bug09/univ1.vhdl
new file mode 100644
index 0000000..dfdc1f8
--- /dev/null
+++ b/testsuite/gna/bug09/univ1.vhdl
@@ -0,0 +1,22 @@
+entity univ1 is
+end entity;
+
+architecture foo of univ1 is
+ signal i: integer := Time'POS(Time'High); -- should produce error
+
+ -- 6.4.2.3 Signal declarations, para 5, first sentence:
+ -- If the signal declaration includes the assignment symbol followed by an
+ -- expression, it shall be of the same type as the signal. Such an
+ -- expression is said to be a default expression.
+ --
+ -- -1993 4.3.1.2 Signal declarations, para 6, first sentence:
+ -- If the signal declaration includes the assignment symbol followed by
+ -- an expression, it must be of the same type as the signal.
+
+ -- 'POS returns universal integer
+ --
+begin
+ assert False
+ report "i = " & integer'IMAGE(i) -- shows left clipping instead of error
+ severity ERROR;
+end architecture; \ No newline at end of file
diff --git a/testsuite/gna/bug09/univ2.vhdl b/testsuite/gna/bug09/univ2.vhdl
new file mode 100644
index 0000000..af19d38
--- /dev/null
+++ b/testsuite/gna/bug09/univ2.vhdl
@@ -0,0 +1,17 @@
+
+entity univ2 is
+end entity;
+
+architecture foo of univ2 is
+
+begin
+ assert False
+ report "Time'HIGH = " & Time'IMAGE(Time'VAL(Time'POS(Time'HIGH)))
+ severity NOTE;
+ assert False
+ report "should produce 9223372036854775807"
+ severity NOTE;
+end architecture;
+
+-- 'POS returns universal integer
+-- 'VAL parameter is any integer type (including universal integer) \ No newline at end of file