mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|     let x := 1
 | |
|     let y := 1
 | |
|     let a := 7
 | |
|     let b := 9
 | |
|     for { } calldataload(0) { }
 | |
|     {
 | |
|         y := 9
 | |
|         mstore(a, 7)
 | |
|         if callvalue() {
 | |
|             x := 2
 | |
|             for {} calldataload(1) {}
 | |
|             {
 | |
|                 a := 2 // can be removed
 | |
|                 if eq(x, 3) {
 | |
|                     b := 3 // cannot be removed
 | |
|                     y := 2 // will be removed
 | |
|                     continue
 | |
|                 }
 | |
|             }
 | |
|             mstore(b, 2)
 | |
|             break
 | |
|         }
 | |
|         if eq(callvalue(), 3) {
 | |
|             x := 12
 | |
|             y := 12
 | |
|             continue
 | |
|         }
 | |
|         x := 3
 | |
|         mstore(y, 3)
 | |
|     }
 | |
|     mstore(x, 0x42)
 | |
| }
 | |
| // ----
 | |
| // step: unusedAssignEliminator
 | |
| //
 | |
| // {
 | |
| //     let x := 1
 | |
| //     let y := 1
 | |
| //     let a := 7
 | |
| //     let b := 9
 | |
| //     for { } calldataload(0) { }
 | |
| //     {
 | |
| //         y := 9
 | |
| //         mstore(a, 7)
 | |
| //         if callvalue()
 | |
| //         {
 | |
| //             x := 2
 | |
| //             for { } calldataload(1) { }
 | |
| //             {
 | |
| //                 if eq(x, 3)
 | |
| //                 {
 | |
| //                     b := 3
 | |
| //                     continue
 | |
| //                 }
 | |
| //             }
 | |
| //             mstore(b, 2)
 | |
| //             break
 | |
| //         }
 | |
| //         if eq(callvalue(), 3)
 | |
| //         {
 | |
| //             x := 12
 | |
| //             continue
 | |
| //         }
 | |
| //         x := 3
 | |
| //         mstore(y, 3)
 | |
| //     }
 | |
| //     mstore(x, 0x42)
 | |
| // }
 |