Allow labelled begin blocks to contain processes in VHDL target
This is a simple fix for a crash that occured when a process
was inside a labelled begin inside a generate statement.
(cherry picked from commit face1a1d15)
This commit is contained in:
parent
902ae19bbf
commit
4e77abca44
|
|
@ -95,8 +95,13 @@ int draw_process(ivl_process_t proc, void *cd)
|
||||||
ivl_scope_tname(scope), ivl_process_file(proc),
|
ivl_scope_tname(scope), ivl_process_file(proc),
|
||||||
ivl_process_lineno(proc));
|
ivl_process_lineno(proc));
|
||||||
|
|
||||||
// A process should occur in a module scope, therefore it
|
// Skip over any generate and begin scopes until we find
|
||||||
// should have already been assigned a VHDL entity
|
// the module that contains them - this is where we will
|
||||||
|
// generate the process
|
||||||
|
while (ivl_scope_type(scope) == IVL_SCT_GENERATE
|
||||||
|
|| ivl_scope_type(scope) == IVL_SCT_BEGIN)
|
||||||
|
scope = ivl_scope_parent(scope);
|
||||||
|
|
||||||
assert(ivl_scope_type(scope) == IVL_SCT_MODULE);
|
assert(ivl_scope_type(scope) == IVL_SCT_MODULE);
|
||||||
vhdl_entity *ent = find_entity(scope);
|
vhdl_entity *ent = find_entity(scope);
|
||||||
assert(ent != NULL);
|
assert(ent != NULL);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue