if(!declaration)
{
const map<string, InterfaceBlock *> &blocks = stage->interface_blocks;
- map<string, InterfaceBlock *>::const_iterator i = blocks.find("_"+var.name);
+ map<string, InterfaceBlock *>::const_iterator i = blocks.find(var.name);
if(i!=blocks.end())
{
/* The name refers to an interface block with an instance name rather
void VariableResolver::visit(InterfaceBlockReference &iface)
{
- map<string, InterfaceBlock *>::iterator i = stage->interface_blocks.find("_"+iface.name);
+ map<string, InterfaceBlock *>::iterator i = stage->interface_blocks.find(iface.name);
InterfaceBlock *declaration = (i!=stage->interface_blocks.end() ? i->second : 0);
r_any_resolved |= (declaration!=iface.declaration);
iface.declaration = declaration;
{
/* Block names can be reused in different interfaces. Prefix the name with
the first character of the interface to avoid conflicts. */
- stage->interface_blocks.insert(make_pair(iface.interface+iface.block_name, &iface));
+ stage->interface_blocks.insert(make_pair(format("%s %s", iface.interface, iface.block_name), &iface));
if(!iface.instance_name.empty())
- stage->interface_blocks.insert(make_pair("_"+iface.instance_name, &iface));
+ stage->interface_blocks.insert(make_pair(iface.instance_name, &iface));
TraversingVisitor::visit(iface);
}