mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Fix handling of functions/tasks without top-level begin-end block, fixes #1231
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
		
							parent
							
								
									a4b59de5d4
								
							
						
					
					
						commit
						f1f5b4e375
					
				
					 1 changed files with 2 additions and 15 deletions
				
			
		|  | @ -3439,19 +3439,11 @@ AstNode *AstNode::eval_const_function(AstNode *fcall) | |||
| { | ||||
| 	std::map<std::string, AstNode*> backup_scope; | ||||
| 	std::map<std::string, AstNode::varinfo_t> variables; | ||||
| 	bool delete_temp_block = false; | ||||
| 	AstNode *block = NULL; | ||||
| 	AstNode *block = new AstNode(AST_BLOCK); | ||||
| 
 | ||||
| 	size_t argidx = 0; | ||||
| 	for (auto child : children) | ||||
| 	{ | ||||
| 		if (child->type == AST_BLOCK) | ||||
| 		{ | ||||
| 			log_assert(block == NULL); | ||||
| 			block = child; | ||||
| 			continue; | ||||
| 		} | ||||
| 
 | ||||
| 		if (child->type == AST_WIRE) | ||||
| 		{ | ||||
| 			while (child->simplify(true, false, false, 1, -1, false, true)) { } | ||||
|  | @ -3468,13 +3460,9 @@ AstNode *AstNode::eval_const_function(AstNode *fcall) | |||
| 			continue; | ||||
| 		} | ||||
| 
 | ||||
| 		log_assert(block == NULL); | ||||
| 		delete_temp_block = true; | ||||
| 		block = new AstNode(AST_BLOCK); | ||||
| 		block->children.push_back(child->clone()); | ||||
| 	} | ||||
| 
 | ||||
| 	log_assert(block != NULL); | ||||
| 	log_assert(variables.count(str) != 0); | ||||
| 
 | ||||
| 	while (!block->children.empty()) | ||||
|  | @ -3642,8 +3630,7 @@ AstNode *AstNode::eval_const_function(AstNode *fcall) | |||
| 		log_abort(); | ||||
| 	} | ||||
| 
 | ||||
| 	if (delete_temp_block) | ||||
| 		delete block; | ||||
| 	delete block; | ||||
| 
 | ||||
| 	for (auto &it : backup_scope) | ||||
| 		if (it.second == NULL) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue