mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	bugpoint: Don't remove modules or cells while iterating over them.
Reported by @ZirconiumX.
This commit is contained in:
		
							parent
							
								
									16a3048308
								
							
						
					
					
						commit
						cd82afb740
					
				
					 1 changed files with 14 additions and 4 deletions
				
			
		|  | @ -133,6 +133,7 @@ struct BugpointPass : public Pass { | |||
| 		int index = 0; | ||||
| 		if (modules) | ||||
| 		{ | ||||
| 			Module *removed_module = nullptr; | ||||
| 			for (auto module : design_copy->modules()) | ||||
| 			{ | ||||
| 				if (module->get_blackbox_attribute()) | ||||
|  | @ -141,10 +142,14 @@ struct BugpointPass : public Pass { | |||
| 				if (index++ == seed) | ||||
| 				{ | ||||
| 					log("Trying to remove module %s.\n", module->name.c_str()); | ||||
| 					design_copy->remove(module); | ||||
| 					return design_copy; | ||||
| 					removed_module = module; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if (removed_module) { | ||||
| 				design_copy->remove(removed_module); | ||||
| 				return design_copy; | ||||
| 			} | ||||
| 		} | ||||
| 		if (ports) | ||||
| 		{ | ||||
|  | @ -178,15 +183,20 @@ struct BugpointPass : public Pass { | |||
| 				if (mod->get_blackbox_attribute()) | ||||
| 					continue; | ||||
| 
 | ||||
| 				Cell *removed_cell = nullptr; | ||||
| 				for (auto cell : mod->cells()) | ||||
| 				{ | ||||
| 					if (index++ == seed) | ||||
| 					{ | ||||
| 						log("Trying to remove cell %s.%s.\n", mod->name.c_str(), cell->name.c_str()); | ||||
| 						mod->remove(cell); | ||||
| 						return design_copy; | ||||
| 						removed_cell = cell; | ||||
| 						break; | ||||
| 					} | ||||
| 				} | ||||
| 				if (removed_cell) { | ||||
| 					mod->remove(removed_cell); | ||||
| 					return design_copy; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		if (connections) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue