Fix for pr2661101
Fixes VHDL compilation errors when signal or instance names collide after renaming.
This commit is contained in:
parent
3733c59e49
commit
eba8c8ee65
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* VHDL code generation for scopes.
|
||||
*
|
||||
* Copyright (C) 2008-2009 Nick Gasson (nick@nickg.me.uk)
|
||||
* Copyright (C) 2008-2010 Nick Gasson (nick@nickg.me.uk)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -1165,10 +1165,11 @@ extern "C" int draw_hierarchy(ivl_scope_t scope, void *_parent)
|
|||
}
|
||||
|
||||
// And an instantiation statement
|
||||
string inst_name(ivl_scope_basename(scope));
|
||||
string inst_name = ivl_scope_basename(scope);
|
||||
inst_name += genvar_unique_suffix(ivl_scope_parent(scope));
|
||||
if (inst_name == ent->get_name()
|
||||
|| parent_scope->have_declared(inst_name)
|
||||
|| parent_scope->name_collides(inst_name)
|
||||
|| find_entity(inst_name) != NULL
|
||||
|| is_vhdl_reserved_word(inst_name)) {
|
||||
|
||||
// Would produce an invalid instance name
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ bool vhdl_scope::name_collides(const string& name) const
|
|||
{
|
||||
const vhdl_decl* decl = get_decl(name);
|
||||
if (decl)
|
||||
return decl->get_name() != name;
|
||||
return strcasecmp(decl->get_name().c_str(), name.c_str()) == 0;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue