mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Added support for until, the inverse of while.
				
					
				
			This commit is contained in:
		
							parent
							
								
									f9946ec029
								
							
						
					
					
						commit
						7ac53f5305
					
				| @ -472,14 +472,15 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s) | |||||||
| 			m_asm << end.tag(); | 			m_asm << end.tag(); | ||||||
| 			m_asm.donePaths(); | 			m_asm.donePaths(); | ||||||
| 		} | 		} | ||||||
| 		else if (us == "WHILE") | 		else if (us == "WHILE" || us == "UNTIL") | ||||||
| 		{ | 		{ | ||||||
| 			requireSize(2); | 			requireSize(2); | ||||||
| 			requireDeposit(0, 1); | 			requireDeposit(0, 1); | ||||||
| 
 | 
 | ||||||
| 			auto begin = m_asm.append(); | 			auto begin = m_asm.append(); | ||||||
| 			m_asm.append(code[0].m_asm); | 			m_asm.append(code[0].m_asm); | ||||||
| 			m_asm.append(Instruction::ISZERO); | 			if (us == "WHILE") | ||||||
|  | 				m_asm.append(Instruction::ISZERO); | ||||||
| 			auto end = m_asm.appendJumpI(); | 			auto end = m_asm.appendJumpI(); | ||||||
| 			m_asm.append(code[1].m_asm, 0); | 			m_asm.append(code[1].m_asm, 0); | ||||||
| 			m_asm.appendJump(begin); | 			m_asm.appendJump(begin); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user