Skip to content

Commit

Permalink
Fix parsing of external name in concurrent signal assignment
Browse files Browse the repository at this point in the history
Fixes #1156
  • Loading branch information
nickg committed Feb 6, 2025
1 parent a4fce2a commit 5f8b160
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
4 changes: 3 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
- Fixed invalid LLVM IR generation which could cause a crash with LLVM
14 (#1145).
- Functional coverage is now reported correctly when summing from nested
hierarchies
hierarchies (#1154).
- External names can now be the target of concurrent signal assignment
statements (#1156).

## Version 1.15.1 - 2025-01-22
- Fixed a crash when a subprogram is called with too many named arguments
Expand Down
4 changes: 3 additions & 1 deletion src/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -13202,6 +13202,7 @@ static tree_t p_concurrent_statement(void)
return p_generate_statement(label);

case tLPAREN:
case tLTLT:
return p_concurrent_signal_assignment_statement(label, NULL);

case tID:
Expand Down Expand Up @@ -13259,7 +13260,8 @@ static tree_t p_concurrent_statement(void)
}
default:
expect(tPROCESS, tPOSTPONED, tCOMPONENT, tENTITY, tCONFIGURATION,
tWITH, tASSERT, tBLOCK, tIF, tFOR, tCASE, tLPAREN, tID);
tWITH, tASSERT, tBLOCK, tIF, tFOR, tCASE, tLPAREN, tID,
STD(08, tLTLT));
drop_tokens_until(tSEMI);
return ensure_labelled(tree_new(T_BLOCK), label);
}
Expand Down
2 changes: 2 additions & 0 deletions test/sem/ename.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,6 @@ begin
begin
end process;

<< signal ^.foo : bit >> <= '1'; -- OK (issue #1156)

end architecture;

0 comments on commit 5f8b160

Please sign in to comment.