mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Test for optimizer bug caused by not incrementing the sequence counter.
This commit is contained in:
		
							parent
							
								
									ee0ba31c2b
								
							
						
					
					
						commit
						3b9969baaa
					
				| @ -390,6 +390,20 @@ BOOST_AUTO_TEST_CASE(incorrect_storage_access_bug) | |||||||
| 	compareVersions("f()"); | 	compareVersions("f()"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | BOOST_AUTO_TEST_CASE(sequence_number_for_calls) | ||||||
|  | { | ||||||
|  | 	// This is a test for a bug that was present because we did not increment the sequence
 | ||||||
|  | 	// number for CALLs - CALLs can read and write from memory (and DELEGATECALLs can do the same
 | ||||||
|  | 	// to storage), so the sequence number should be incremented.
 | ||||||
|  | 	char const* sourceCode = R"( | ||||||
|  | 		contract test { | ||||||
|  | 			function f(string a, string b) returns (bool) { return sha256(a) == sha256(b); } | ||||||
|  | 		} | ||||||
|  | 	)"; | ||||||
|  | 	compileBothVersions(sourceCode); | ||||||
|  | 	compareVersions("f(string,string)", 0x40, 0x80, 3, "abc", 3, "def"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| BOOST_AUTO_TEST_CASE(cse_intermediate_swap) | BOOST_AUTO_TEST_CASE(cse_intermediate_swap) | ||||||
| { | { | ||||||
| 	eth::KnownState state; | 	eth::KnownState state; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user