mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Fix more potential for undefined behaviour due to container invalidation
This commit is contained in:
		
							parent
							
								
									03705f69f4
								
							
						
					
					
						commit
						36e2eb06bb
					
				
					 1 changed files with 11 additions and 7 deletions
				
			
		|  | @ -436,14 +436,18 @@ struct XAigerWriter | |||
| 					new_wire = module->addWire(wire_name, GetSize(wire)); | ||||
| 				SigBit new_bit(new_wire, bit.offset); | ||||
| 				module->connect(new_bit, bit); | ||||
| 				if (not_map.count(bit)) | ||||
| 					not_map[new_bit] = not_map.at(bit); | ||||
| 				else if (and_map.count(bit)) { | ||||
| 				    //and_map[new_bit] = and_map.at(bit); // Breaks gcc-4.8
 | ||||
| 				    and_map.insert(std::make_pair(new_bit, and_map.at(bit))); | ||||
| 				if (not_map.count(bit)) { | ||||
| 					auto a = not_map.at(bit); | ||||
| 					not_map[new_bit] = a; | ||||
| 				} | ||||
| 				else if (and_map.count(bit)) { | ||||
| 					auto a = and_map.at(bit); | ||||
| 					and_map[new_bit] = a; | ||||
| 				} | ||||
| 				else if (alias_map.count(bit)) { | ||||
| 					auto a = alias_map.at(bit); | ||||
| 					alias_map[new_bit] = a; | ||||
| 				} | ||||
| 				else if (alias_map.count(bit)) | ||||
| 					alias_map[new_bit] = alias_map.at(bit); | ||||
| 				else | ||||
| 					alias_map[new_bit] = bit; | ||||
| 				output_bits.erase(bit); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue