Skip to content

Commit

Permalink
Add reproducer for issue18.
Browse files Browse the repository at this point in the history
  • Loading branch information
tgingold committed Jan 7, 2016
1 parent bb29dc5 commit 45f0ebb
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 0 deletions.
55 changes: 55 additions & 0 deletions testsuite/gna/issue18/fum.vhdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package fum is
type fie is protected
impure function foo return integer;
impure function foo(input: real) return integer; -- 4
impure function foo return integer_vector;
impure function foo (input: real) return integer_vector; -- 6
impure function foo (input: integer) return integer;
impure function foo(input: integer) return integer_vector;

end protected fie;
end package;

package body fum is
type fie is protected body
variable answer: integer := 42;

impure function foo return integer is
begin
return answer;
end;

impure function foo(input:real) return integer is
begin
return integer(input) + answer;
end;

impure function foo return integer_vector is
variable conv_vector: integer_vector (0 to 1);
begin
conv_vector(0) := answer;
conv_vector(1) := 0;
return conv_vector;
end;

impure function foo (input: real) return integer_vector is
variable conv_vector: integer_vector (0 to 1);
begin
conv_vector(0) := integer(input) + answer;
conv_vector(1) := 0;
end;

impure function foo (input: integer) return integer is
begin
return answer + input;
end;

impure function foo(input: integer) return integer_vector is
variable conv_vector: integer_vector (0 to 1);
begin
conv_vector(0) := input + answer;
conv_vector(1) := 0;
return conv_vector;
end;
end protected body fie;
end package body;
15 changes: 15 additions & 0 deletions testsuite/gna/issue18/integer_ambig.vhdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use work.fum.all;

entity overload_index_issue is
end entity overload_index_issue ;
architecture dumbit_down of overload_index_issue is
shared variable fee: fie;
begin

process
variable Data : integer ;
begin
Data := fee.foo(120.0);
wait;
end process;
end architecture dumbit_down;
12 changes: 12 additions & 0 deletions testsuite/gna/issue18/testsuite.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#! /bin/sh

. ../../testenv.sh

GHDL_STD_FLAGS=--std=08
analyze fum.vhdl
analyze integer_ambig.vhdl
elab_simulate overload_index_issue

clean

echo "Test successful"

0 comments on commit 45f0ebb

Please sign in to comment.