aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_walk.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-nodes_walk.adb')
-rw-r--r--src/vhdl/vhdl-nodes_walk.adb13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/vhdl/vhdl-nodes_walk.adb b/src/vhdl/vhdl-nodes_walk.adb
index 1f33ee23f..e9ae956a7 100644
--- a/src/vhdl/vhdl-nodes_walk.adb
+++ b/src/vhdl/vhdl-nodes_walk.adb
@@ -158,7 +158,10 @@ package body Vhdl.Nodes_Walk is
case Iir_Kinds_Concurrent_Statement (Get_Kind (El)) is
when Iir_Kinds_Simple_Concurrent_Statement
| Iir_Kind_Component_Instantiation_Statement =>
- return Cb.all (El);
+ Status := Cb.all (El);
+ if Status /= Walk_Continue then
+ return Status;
+ end if;
when Iir_Kind_Block_Statement =>
Status := Cb.all (El);
if Status /= Walk_Continue then
@@ -166,6 +169,14 @@ package body Vhdl.Nodes_Walk is
end if;
return Walk_Concurrent_Statements_Chain
(Get_Concurrent_Statement_Chain (El), Cb);
+ when Iir_Kind_For_Generate_Statement =>
+ Status := Cb.all (El);
+ if Status /= Walk_Continue then
+ return Status;
+ end if;
+ return Walk_Concurrent_Statements_Chain
+ (Get_Concurrent_Statement_Chain
+ (Get_Generate_Statement_Body (El)), Cb);
when others =>
Error_Kind ("walk_concurrent_statements_chain", El);
end case;