mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			519 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			519 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-3.0
 | |
| pragma solidity >=0.0;
 | |
| 
 | |
| contract C
 | |
| {
 | |
| 	constructor() payable
 | |
| 	{
 | |
| 		int a;
 | |
| 
 | |
| 		// Can't be optimized due to external reference "a"
 | |
| 		assembly
 | |
| 		{
 | |
| 			let x,y,z
 | |
| 
 | |
| 			sstore(0, 1)
 | |
| 
 | |
| 			for { } sload(4) { } {
 | |
| 				z := exp(x, y)
 | |
| 			}
 | |
| 
 | |
| 			a := 2
 | |
| 		}
 | |
| 
 | |
| 		// Can be optimized due to no external references
 | |
| 		assembly
 | |
| 		{
 | |
| 			let x,y,z
 | |
| 
 | |
| 			sstore(2, 3)
 | |
| 
 | |
| 			for { } sload(5) { } {
 | |
| 				// Expected to be optimized out for yulOptimizer, but not for
 | |
| 				// old optimizer
 | |
| 				z := exp(x, y)
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |