mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	[Sol->Yul] Enabling copying_bytes_multiassign test via ir.
This commit is contained in:
		
							parent
							
								
									055c4b4d44
								
							
						
					
					
						commit
						a0c80c2bdb
					
				| @ -449,12 +449,11 @@ bool IRGeneratorForStatements::visit(Assignment const& _assignment) | ||||
| 
 | ||||
| 	writeToLValue(*m_currentLValue, value); | ||||
| 
 | ||||
| 	if ( | ||||
| 		m_currentLValue->type.category() != Type::Category::Struct && | ||||
| 		m_currentLValue->type.category() != Type::Category::Array && | ||||
| 		*_assignment.annotation().type != *TypeProvider::emptyTuple() | ||||
| 	) | ||||
| 	if (dynamic_cast<ReferenceType const*>(&m_currentLValue->type)) | ||||
| 		define(_assignment, readFromLValue(*m_currentLValue)); | ||||
| 	else if (*_assignment.annotation().type != *TypeProvider::emptyTuple()) | ||||
| 		define(_assignment, value); | ||||
| 
 | ||||
| 	m_currentLValue.reset(); | ||||
| 
 | ||||
| 	return false; | ||||
|  | ||||
| @ -2419,15 +2419,18 @@ BOOST_AUTO_TEST_CASE(copying_bytes_multiassign) | ||||
| 			bytes savedData2; | ||||
| 		} | ||||
| 	)"; | ||||
| 	compileAndRun(sourceCode, 0, "sender"); | ||||
| 	ABI_CHECK(callContractFunction("recv(uint256)", 7), bytes()); | ||||
| 	ABI_CHECK(callContractFunction("val()"), encodeArgs(0)); | ||||
| 	ABI_CHECK(callContractFunction("forward(bool)", true), encodeArgs(true)); | ||||
| 	ABI_CHECK(callContractFunction("val()"), encodeArgs(8)); | ||||
| 	ABI_CHECK(callContractFunction("forward(bool)", false), encodeArgs(true)); | ||||
| 	ABI_CHECK(callContractFunction("val()"), encodeArgs(16)); | ||||
| 	ABI_CHECK(callContractFunction("forward(bool)", true), encodeArgs(true)); | ||||
| 	ABI_CHECK(callContractFunction("val()"), encodeArgs(0x80)); | ||||
| 	ALSO_VIA_YUL( | ||||
| 		DISABLE_EWASM_TESTRUN() | ||||
| 		compileAndRun(sourceCode, 0, "sender"); | ||||
| 		ABI_CHECK(callContractFunction("recv(uint256)", 7), bytes()); | ||||
| 		ABI_CHECK(callContractFunction("val()"), encodeArgs(0)); | ||||
| 		ABI_CHECK(callContractFunction("forward(bool)", true), encodeArgs(true)); | ||||
| 		ABI_CHECK(callContractFunction("val()"), encodeArgs(8)); | ||||
| 		ABI_CHECK(callContractFunction("forward(bool)", false), encodeArgs(true)); | ||||
| 		ABI_CHECK(callContractFunction("val()"), encodeArgs(16)); | ||||
| 		ABI_CHECK(callContractFunction("forward(bool)", true), encodeArgs(true)); | ||||
| 		ABI_CHECK(callContractFunction("val()"), encodeArgs(0x80)); | ||||
| 	); | ||||
| } | ||||
| 
 | ||||
| BOOST_AUTO_TEST_CASE(copy_from_calldata_removes_bytes_data) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user