From ef5d600013b862baa196ae68cd8453ab843f6e94 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 21 Dec 2015 19:52:11 +0100 Subject: Add testcase for ticket98 --- testsuite/gna/ticket98/junk1.vhd | 30 ++++++++++++++++++++++++++++++ testsuite/gna/ticket98/junk1ok.vhd | 30 ++++++++++++++++++++++++++++++ testsuite/gna/ticket98/testsuite.sh | 11 +++++++++++ 3 files changed, 71 insertions(+) create mode 100644 testsuite/gna/ticket98/junk1.vhd create mode 100644 testsuite/gna/ticket98/junk1ok.vhd create mode 100755 testsuite/gna/ticket98/testsuite.sh (limited to 'testsuite/gna/ticket98') diff --git a/testsuite/gna/ticket98/junk1.vhd b/testsuite/gna/ticket98/junk1.vhd new file mode 100644 index 000000000..a42ad6d0f --- /dev/null +++ b/testsuite/gna/ticket98/junk1.vhd @@ -0,0 +1,30 @@ +package pkg_FileIO is + ------------------------------- + -- Define some basic data types + ------------------------------- + subtype t_BYTE is integer range 0 to 2**8 - 1; + + --------------------------------------- + -- And arrays of those basic data types + --------------------------------------- + type arr_t_BYTE is array(natural range <>) of t_BYTE; + + ---------------------------- + -- And a pointer to an array + ---------------------------- + type ptr_arr_t_BYTE is access arr_t_BYTE; + + procedure Read_File(File_Name: in STRING; Data: out ptr_arr_t_BYTE; Length: out integer); +end pkg_FileIO; + +package body pkg_FileIO is + procedure Read_File(File_Name: in STRING; Data: out ptr_arr_t_BYTE; Length: out integer) is + begin + Data := new arr_t_BYTE(0 to 10); + for i in 0 to 10 loop + Data(i) := 0; -- Comment this line out and GHDL is happy + end loop; + Length := 11; + end Read_File; +end pkg_FileIO; + diff --git a/testsuite/gna/ticket98/junk1ok.vhd b/testsuite/gna/ticket98/junk1ok.vhd new file mode 100644 index 000000000..9c286cf87 --- /dev/null +++ b/testsuite/gna/ticket98/junk1ok.vhd @@ -0,0 +1,30 @@ +package pkg_FileIO is + ------------------------------- + -- Define some basic data types + ------------------------------- + subtype t_BYTE is integer range 0 to 2**8 - 1; + + --------------------------------------- + -- And arrays of those basic data types + --------------------------------------- + type arr_t_BYTE is array(natural range <>) of t_BYTE; + + ---------------------------- + -- And a pointer to an array + ---------------------------- + type ptr_arr_t_BYTE is access arr_t_BYTE; + + procedure Read_File(File_Name: in STRING; Data: inout ptr_arr_t_BYTE; Length: out integer); +end pkg_FileIO; + +package body pkg_FileIO is + procedure Read_File(File_Name: in STRING; Data: inout ptr_arr_t_BYTE; Length: out integer) is + begin + Data := new arr_t_BYTE(0 to 10); + for i in 0 to 10 loop + Data(i) := 0; -- Comment this line out and GHDL is happy + end loop; + Length := 11; + end Read_File; +end pkg_FileIO; + diff --git a/testsuite/gna/ticket98/testsuite.sh b/testsuite/gna/ticket98/testsuite.sh new file mode 100755 index 000000000..1b5548dbb --- /dev/null +++ b/testsuite/gna/ticket98/testsuite.sh @@ -0,0 +1,11 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze_failure junk1.vhd +analyze --std=08 junk1.vhd +analyze junk1ok.vhd +clean +clean --std=08 + +echo "Test successful" -- cgit v1.2.3