From e47227b318ac19fed2fb140614c70b30cb5329d7 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sun, 19 Jan 2014 02:24:46 +0100 Subject: Fix bug21513: expanded name with operator_symbol prefix. --- parse.adb | 4 +++- testsuite/gna/bug21513/pb.vhdl | 17 +++++++++++++++++ testsuite/gna/bug21513/testsuite.sh | 10 ++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 testsuite/gna/bug21513/pb.vhdl create mode 100755 testsuite/gna/bug21513/testsuite.sh diff --git a/parse.adb b/parse.adb index eadf4c4..b1ddc74 100644 --- a/parse.adb +++ b/parse.adb @@ -4717,7 +4717,9 @@ package body Parse is if Flags.Vhdl_Std >= Vhdl_93c then Check_End_Name (Stmt); end if; - when Tok_Identifier => -- | tok_left_paren + when Tok_Identifier + | Tok_String => + -- String for an expanded name with operator_symbol prefix. Stmt := Parse_Sequential_Assignment_Statement (Parse_Name); when Tok_Left_Paren => declare diff --git a/testsuite/gna/bug21513/pb.vhdl b/testsuite/gna/bug21513/pb.vhdl new file mode 100644 index 0000000..5b63cf1 --- /dev/null +++ b/testsuite/gna/bug21513/pb.vhdl @@ -0,0 +1,17 @@ +entity pb is +end pb; + +architecture behav of pb is + type t is record + v : integer; + end record; + + function "-" (a, b : t) return t is + variable v : integer; + begin + "-".v := a.v; + v := "-".b.v; + return b; + end "-"; +begin +end; diff --git a/testsuite/gna/bug21513/testsuite.sh b/testsuite/gna/bug21513/testsuite.sh new file mode 100755 index 0000000..ceb537d --- /dev/null +++ b/testsuite/gna/bug21513/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + + +analyze pb.vhdl + +clean + +echo "Test successful" -- cgit