mirror of https://github.com/YosysHQ/yosys.git
Restore non-deferred code, deferred case to ignore non constant attr
This commit is contained in:
parent
116c249601
commit
6510297712
|
@ -1073,6 +1073,12 @@ static AstModule* process_module(AstNode *ast, bool defer, AstNode *original_ast
|
||||||
|
|
||||||
ignoreThisSignalsInInitial = RTLIL::SigSpec();
|
ignoreThisSignalsInInitial = RTLIL::SigSpec();
|
||||||
|
|
||||||
|
for (auto &attr : ast->attributes) {
|
||||||
|
if (attr.second->type != AST_CONSTANT)
|
||||||
|
log_file_error(ast->filename, ast->linenum, "Attribute `%s' with non-constant value!\n", attr.first.c_str());
|
||||||
|
current_module->attributes[attr.first] = attr.second->asAttrConst();
|
||||||
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < ast->children.size(); i++) {
|
for (size_t i = 0; i < ast->children.size(); i++) {
|
||||||
AstNode *node = ast->children[i];
|
AstNode *node = ast->children[i];
|
||||||
if (node->type == AST_WIRE || node->type == AST_MEMORY)
|
if (node->type == AST_WIRE || node->type == AST_MEMORY)
|
||||||
|
@ -1094,12 +1100,13 @@ static AstModule* process_module(AstNode *ast, bool defer, AstNode *original_ast
|
||||||
|
|
||||||
ignoreThisSignalsInInitial = RTLIL::SigSpec();
|
ignoreThisSignalsInInitial = RTLIL::SigSpec();
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
for (auto &attr : ast->attributes) {
|
for (auto &attr : ast->attributes) {
|
||||||
if (attr.second->type != AST_CONSTANT)
|
if (attr.second->type != AST_CONSTANT)
|
||||||
log_file_error(ast->filename, ast->linenum, "Attribute `%s' with non-constant value!\n", attr.first.c_str());
|
continue;
|
||||||
current_module->attributes[attr.first] = attr.second->asAttrConst();
|
current_module->attributes[attr.first] = attr.second->asAttrConst();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ast->type == AST_INTERFACE)
|
if (ast->type == AST_INTERFACE)
|
||||||
current_module->set_bool_attribute("\\is_interface");
|
current_module->set_bool_attribute("\\is_interface");
|
||||||
|
|
Loading…
Reference in New Issue