mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			526 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			526 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-3.0
 | 
						|
pragma solidity >=0.0;
 | 
						|
 | 
						|
contract C
 | 
						|
{
 | 
						|
	constructor() public 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)
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |