mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #6705 from ethereum/smt_fix_const_state_var
[SMTChecker] Fix function call at state var init
This commit is contained in:
		
						commit
						d9bdc4fd89
					
				| @ -196,7 +196,6 @@ void SMTChecker::endVisit(FunctionDefinition const&) | |||||||
| 	if (m_callStack.empty()) | 	if (m_callStack.empty()) | ||||||
| 	{ | 	{ | ||||||
| 		checkUnderOverflow(); | 		checkUnderOverflow(); | ||||||
| 		removeLocalVariables(); |  | ||||||
| 		solAssert(m_callStack.empty(), ""); | 		solAssert(m_callStack.empty(), ""); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,60 @@ | |||||||
|  | pragma experimental SMTChecker; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | contract A { | ||||||
|  | 
 | ||||||
|  |     address constant public MY_ADDRESS = 0xE0f5206BBD039e7b0592d8918820024e2a7437b9; | ||||||
|  |     address public myFriendsAddress = 0xc0ffee254729296a45a3885639AC7E10F9d54979; | ||||||
|  | 
 | ||||||
|  |     uint public used; | ||||||
|  |     uint public test = 5; | ||||||
|  | 
 | ||||||
|  |     uint constant X = 32**22 + 8; | ||||||
|  |     string constant TEXT1 = "abc"; | ||||||
|  |     string text2 = "xyz"; | ||||||
|  | 
 | ||||||
|  |     function setUsed() public { | ||||||
|  |         if (msg.sender == MY_ADDRESS) { | ||||||
|  |             used = test; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | contract B is A { | ||||||
|  | 
 | ||||||
|  |     address public mySistersAddress = 0x999999cf1046e68e36E1aA2E0E07105eDDD1f08E; | ||||||
|  | 
 | ||||||
|  |     function () external { | ||||||
|  |         used = 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function setUsed(uint a) public { | ||||||
|  |         if (msg.sender == MY_ADDRESS) { | ||||||
|  |             used = a; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | contract MyConc{ | ||||||
|  | 
 | ||||||
|  |     uint constant A = 1; | ||||||
|  |     bytes32 should_be_constant = sha256('abc'); | ||||||
|  |     uint should_be_constant_2 = A + 1; | ||||||
|  |     address not_constant = msg.sender; | ||||||
|  |     uint not_constant_2 = getNumber(); | ||||||
|  |     uint not_constant_3 = 10 + block.number; | ||||||
|  | 
 | ||||||
|  |     function getNumber() public returns(uint){ | ||||||
|  |         return block.number; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | // ---- | ||||||
|  | // Warning: (773-792): This declaration shadows an existing declaration. | ||||||
|  | // Warning: (1009-1086): Function state mutability can be restricted to view | ||||||
|  | // Warning: (327-332): Assertion checker does not yet support the type of this literal (literal_string "abc"). | ||||||
|  | // Warning: (353-358): Assertion checker does not yet support the type of this literal (literal_string "xyz"). | ||||||
|  | // Warning: (834-839): Assertion checker does not yet support the type of this literal (literal_string "abc"). | ||||||
|  | // Warning: (874-879): Underflow (resulting value less than 0) happens here. | ||||||
|  | // Warning: (874-879): Overflow (resulting value larger than 2**256 - 1) happens here. | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user