From 08b56bd39ce2cb2bf0641e8fb5eb58d6a1b25b8c Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 18:45:34 +0200 Subject: Add testcase for #560 --- testsuite/gna/issue560/reproducer.vhdl | 58 +++++++++++++++++++++++++++++++ testsuite/gna/issue560/reproducer2.vhdl | 58 +++++++++++++++++++++++++++++++ testsuite/gna/issue560/reproducer3.vhdl | 58 +++++++++++++++++++++++++++++++ testsuite/gna/issue560/reproducer_ok.vhdl | 58 +++++++++++++++++++++++++++++++ testsuite/gna/issue560/testsuite.sh | 12 +++++++ 5 files changed, 244 insertions(+) create mode 100644 testsuite/gna/issue560/reproducer.vhdl create mode 100644 testsuite/gna/issue560/reproducer2.vhdl create mode 100644 testsuite/gna/issue560/reproducer3.vhdl create mode 100644 testsuite/gna/issue560/reproducer_ok.vhdl create mode 100755 testsuite/gna/issue560/testsuite.sh (limited to 'testsuite') diff --git a/testsuite/gna/issue560/reproducer.vhdl b/testsuite/gna/issue560/reproducer.vhdl new file mode 100644 index 000000000..0a7fe319c --- /dev/null +++ b/testsuite/gna/issue560/reproducer.vhdl @@ -0,0 +1,58 @@ +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +package reproducer_pkg is + + -- Functions + function MIN(LEFT, RIGHT: unsigned) return unsigned; + function MIN(LEFT, RIGHT: integer) return integer; + +end reproducer_pkg; + +package body reproducer_pkg is + + function MIN(LEFT, RIGHT: unsigned) return unsigned is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + + function MIN(LEFT, RIGHT: integer) return integer is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + +end reproducer_pkg; +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +library work; + use work.reproducer_pkg.all; + +entity reproducer is + port( + inputA : in unsigned(7 downto 0); + inputB : in unsigned(7 downto 0); + inputC : in integer; + inputD : in integer; + OutputA : out unsigned(7 downto 0); + OutputB : out integer + ); +end reproducer; + +architecture rtl of reproducer is +begin + + OutputA <= min(inputA, inputB); + OutputB <= min(inputC, inputD); + +end rtl; diff --git a/testsuite/gna/issue560/reproducer2.vhdl b/testsuite/gna/issue560/reproducer2.vhdl new file mode 100644 index 000000000..5926650e2 --- /dev/null +++ b/testsuite/gna/issue560/reproducer2.vhdl @@ -0,0 +1,58 @@ +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +package reproducer_pkg is + + -- Functions + function MIN(LEFT, RIGHT: unsigned) return unsigned; +-- function MIN(LEFT, RIGHT: integer) return integer; + +end reproducer_pkg; + +package body reproducer_pkg is + + function MIN(LEFT, RIGHT: unsigned) return unsigned is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + + function MIN(LEFT, RIGHT: integer) return integer is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + +end reproducer_pkg; +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +library work; + use work.reproducer_pkg.all; + +entity reproducer is + port( + inputA : in unsigned(7 downto 0); + inputB : in unsigned(7 downto 0); + inputC : in integer; + inputD : in integer; + OutputA : out unsigned(7 downto 0); + OutputB : out integer + ); +end reproducer; + +architecture rtl of reproducer is +begin + + OutputA <= min(inputA, inputB); +-- OutputB <= min(inputC, inputD); + +end rtl; diff --git a/testsuite/gna/issue560/reproducer3.vhdl b/testsuite/gna/issue560/reproducer3.vhdl new file mode 100644 index 000000000..f5993a23c --- /dev/null +++ b/testsuite/gna/issue560/reproducer3.vhdl @@ -0,0 +1,58 @@ +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +package reproducer_pkg is + + -- Functions + function MIN(LEFT, RIGHT: unsigned) return unsigned; + function MIN(LEFT, RIGHT: integer) return integer; + +end reproducer_pkg; + +package body reproducer_pkg is + + function MIN(LEFT, RIGHT: unsigned) return unsigned is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + + function MIN(LEFT, RIGHT: integer) return integer is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + +end reproducer_pkg; +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +library work; + use work.reproducer_pkg.all; + +entity reproducer is + port( + inputA : in unsigned(7 downto 0); + inputB : in unsigned(7 downto 0); + inputC : in integer; + inputD : in integer; + OutputA : out unsigned(7 downto 0); + OutputB : out integer + ); +end reproducer; + +architecture rtl of reproducer is +begin + +-- OutputA <= min(inputA, inputB); + OutputB <= min(inputC, inputD); + +end rtl; diff --git a/testsuite/gna/issue560/reproducer_ok.vhdl b/testsuite/gna/issue560/reproducer_ok.vhdl new file mode 100644 index 000000000..00a98cb97 --- /dev/null +++ b/testsuite/gna/issue560/reproducer_ok.vhdl @@ -0,0 +1,58 @@ +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +package reproducer_pkg is + + -- Functions + function MINI(LEFT, RIGHT: unsigned) return unsigned; + function MINI(LEFT, RIGHT: integer) return integer; + +end reproducer_pkg; + +package body reproducer_pkg is + + function MINI(LEFT, RIGHT: unsigned) return unsigned is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + + function MINI(LEFT, RIGHT: integer) return integer is + begin + if LEFT < RIGHT then + return LEFT; + else + return RIGHT; + end if; + end; + +end reproducer_pkg; +library ieee; + use ieee.std_logic_1164.all; + use ieee.numeric_std.all; + +library work; + use work.reproducer_pkg.all; + +entity reproducer is + port( + inputA : in unsigned(7 downto 0); + inputB : in unsigned(7 downto 0); + inputC : in integer; + inputD : in integer; + OutputA : out unsigned(7 downto 0); + OutputB : out integer + ); +end reproducer; + +architecture rtl of reproducer is +begin + + OutputA <= minI(inputA, inputB); + OutputB <= minI(inputC, inputD); + +end rtl; diff --git a/testsuite/gna/issue560/testsuite.sh b/testsuite/gna/issue560/testsuite.sh new file mode 100755 index 000000000..b3b37535d --- /dev/null +++ b/testsuite/gna/issue560/testsuite.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze_failure reproducer.vhdl +analyze_failure reproducer2.vhdl +analyze_failure reproducer3.vhdl +analyze reproducer_ok.vhdl + +clean + +echo "Test successful" -- cgit v1.2.3