strict digraph "tests/contract_testcases/evm/llvm_type.sol" {
	OwnershipTransferred [label="name:OwnershipTransferred\ncontract: 1\ntests/contract_testcases/evm/llvm_type.sol:14:16-36\nfield name:previousOwner ty:address indexed:yes\nfield name:newOwner ty:address indexed:yes"]
	contract [label="contract Context\ntests/contract_testcases/evm/llvm_type.sol:1:1-9:2"]
	_msgSender [label="function _msgSender\ncontract: Context\ntests/contract_testcases/evm/llvm_type.sol:2:9-85\nsignature _msgSender()\nvisibility internal\nmutability view\nvirtual"]
	returns [label="returns\naddress payable "]
	return [label="return\ntests/contract_testcases/evm/llvm_type.sol:3:17-44"]
	builtins [label="builtin Sender\ntests/contract_testcases/evm/llvm_type.sol:3:33-43"]
	_msgData [label="function _msgData\ncontract: Context\ntests/contract_testcases/evm/llvm_type.sol:5:9-80\nsignature _msgData()\nvisibility internal\nmutability view\nvirtual"]
	returns_9 [label="returns\nbytes "]
	expr [label="expression\ntests/contract_testcases/evm/llvm_type.sol:6:17-21"]
	builtins_11 [label="builtin GetAddress\ntests/contract_testcases/evm/llvm_type.sol:6:17-21"]
	return_12 [label="return\ntests/contract_testcases/evm/llvm_type.sol:7:17-33"]
	builtins_13 [label="builtin Calldata\ntests/contract_testcases/evm/llvm_type.sol:7:25-33"]
	contract_14 [label="contract Ownable\ntests/contract_testcases/evm/llvm_type.sol:11:1-43:2"]
	base [label="base Context\ntests/contract_testcases/evm/llvm_type.sol:11:24-31"]
	var [label="variable _owner\nvisibility private\ntests/contract_testcases/evm/llvm_type.sol:12:9-33"]
	node_17 [label="constructor \ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:15:9-26\nsignature ()\nvisibility public\nmutability nonpayable"]
	var_decl [label="variable decl address msgSender\ntests/contract_testcases/evm/llvm_type.sol:16:17-52"]
	cast [label="cast address\ntests/contract_testcases/evm/llvm_type.sol:16:40-52"]
	call_internal_function [label="call internal function\ntests/contract_testcases/evm/llvm_type.sol:16:40-52"]
	internal_function [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/evm/llvm_type.sol:16:40-52"]
	expr_22 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:17:17-37"]
	assign [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:17:17-23"]
	storage_var [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:17:17-23"]
	variable [label="variable: msgSender\naddress\ntests/contract_testcases/evm/llvm_type.sol:17:28-37"]
	emit [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/evm/llvm_type.sol:18:17-67"]
	number_literal [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:18:44-54"]
	variable_28 [label="variable: msgSender\naddress\ntests/contract_testcases/evm/llvm_type.sol:18:57-66"]
	owner [label="function owner\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:20:9-60\nsignature owner()\nvisibility public\nmutability view"]
	returns_30 [label="returns\naddress "]
	return_31 [label="return\ntests/contract_testcases/evm/llvm_type.sol:21:17-31"]
	storage_load [label="storage load address\ntests/contract_testcases/evm/llvm_type.sol:21:17-31"]
	storage_var_33 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:21:25-31"]
	onlyOwner [label="modifier onlyOwner\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:24:9-32\nmutability nonpayable"]
	expr_35 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:25:17-92"]
	builtins_36 [label="builtin Require\ntests/contract_testcases/evm/llvm_type.sol:25:17-24"]
	equal [label="equal\ntests/contract_testcases/evm/llvm_type.sol:25:25-49"]
	storage_load_38 [label="storage load address\ntests/contract_testcases/evm/llvm_type.sol:25:25-31"]
	storage_var_39 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:25:25-31"]
	cast_40 [label="cast address\ntests/contract_testcases/evm/llvm_type.sol:25:37-49"]
	call_internal_function_41 [label="call internal function\ntests/contract_testcases/evm/llvm_type.sol:25:37-49"]
	internal_function_42 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/evm/llvm_type.sol:25:37-49"]
	alloc_array [label="alloc array string\ninitializer: 4f776e61626c653a202063616c6c65722020697320206e6f74202074686520206f776e6572\ntests/contract_testcases/evm/llvm_type.sol:25:52-91"]
	number_literal_44 [label="uint32 literal: 37\ntests/contract_testcases/evm/llvm_type.sol:25:52-91"]
	underscore [label="undersore\ntests/contract_testcases/evm/llvm_type.sol:26:17-18"]
	waiveOwnership [label="function waiveOwnership\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:29:9-63\nsignature waiveOwnership()\nvisibility public\nmutability nonpayable\nvirtual"]
	emit_47 [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/evm/llvm_type.sol:30:17-64"]
	storage_load_48 [label="storage load address\ntests/contract_testcases/evm/llvm_type.sol:30:44-50"]
	storage_var_49 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:30:44-50"]
	number_literal_50 [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:30:53-63"]
	expr_51 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:31:17-38"]
	assign_52 [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:31:17-23"]
	storage_var_53 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:31:17-23"]
	number_literal_54 [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:31:28-38"]
	transferOwnership [label="function transferOwnership\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:34:9-83\nsignature transferOwnership(address)\nvisibility public\nmutability nonpayable\nvirtual"]
	parameters [label="parameters\naddress newOwner"]
	expr_57 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:35:17-99"]
	builtins_58 [label="builtin Require\ntests/contract_testcases/evm/llvm_type.sol:35:17-24"]
	not [label="not\ntests/contract_testcases/evm/llvm_type.sol:35:25-49"]
	equal_60 [label="equal\ntests/contract_testcases/evm/llvm_type.sol:35:25-49"]
	variable_61 [label="variable: newOwner\naddress\ntests/contract_testcases/evm/llvm_type.sol:35:25-33"]
	number_literal_62 [label="address literal: 0\ntests/contract_testcases/evm/llvm_type.sol:35:39-49"]
	alloc_array_63 [label="alloc array string\ninitializer: 4f776e61626c653a20206e657720206f776e657220206973202074686520207a65726f202061646472657373\ntests/contract_testcases/evm/llvm_type.sol:35:52-98"]
	number_literal_64 [label="uint32 literal: 44\ntests/contract_testcases/evm/llvm_type.sol:35:52-98"]
	emit_65 [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/evm/llvm_type.sol:36:17-62"]
	storage_load_66 [label="storage load address\ntests/contract_testcases/evm/llvm_type.sol:36:44-50"]
	storage_var_67 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:36:44-50"]
	variable_68 [label="variable: newOwner\naddress\ntests/contract_testcases/evm/llvm_type.sol:36:53-61"]
	expr_69 [label="expression\ntests/contract_testcases/evm/llvm_type.sol:37:17-36"]
	assign_70 [label="assign\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:37:17-23"]
	storage_var_71 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/evm/llvm_type.sol:37:17-23"]
	variable_72 [label="variable: newOwner\naddress\ntests/contract_testcases/evm/llvm_type.sol:37:28-36"]
	getTime [label="function getTime\ncontract: Ownable\ntests/contract_testcases/evm/llvm_type.sol:40:9-62\nsignature getTime()\nvisibility public\nmutability view"]
	returns_74 [label="returns\nuint256 "]
	return_75 [label="return\ntests/contract_testcases/evm/llvm_type.sol:41:17-40"]
	zero_ext [label="zero extend uint256\ntests/contract_testcases/evm/llvm_type.sol:41:17-40"]
	builtins_77 [label="builtin Timestamp\ntests/contract_testcases/evm/llvm_type.sol:41:25-40"]
	diagnostic [label="found abstract contract 'Context'\nlevel Debug\ntests/contract_testcases/evm/llvm_type.sol:1:1-9:2"]
	diagnostic_80 [label="found contract 'Ownable'\nlevel Debug\ntests/contract_testcases/evm/llvm_type.sol:11:1-43:2"]
	events -> OwnershipTransferred
	contracts -> contract
	contract -> _msgSender [label="function"]
	_msgSender -> returns [label="returns"]
	_msgSender -> return [label="body"]
	return -> builtins [label="expr"]
	contract -> _msgData [label="function"]
	_msgData -> returns_9 [label="returns"]
	_msgData -> expr [label="body"]
	expr -> builtins_11 [label="expr"]
	expr -> return_12 [label="next"]
	return_12 -> builtins_13 [label="expr"]
	contracts -> contract_14
	contract_14 -> base [label="base"]
	contract_14 -> var [label="variable"]
	contract_14 -> node_17 [label="constructor"]
	node_17 -> var_decl [label="body"]
	var_decl -> cast [label="init"]
	cast -> call_internal_function [label="expr"]
	call_internal_function -> internal_function [label="function"]
	var_decl -> expr_22 [label="next"]
	expr_22 -> assign [label="expr"]
	assign -> storage_var [label="left"]
	assign -> variable [label="right"]
	expr_22 -> emit [label="next"]
	emit -> number_literal [label="arg #0"]
	emit -> variable_28 [label="arg #1"]
	contract_14 -> owner [label="function"]
	owner -> returns_30 [label="returns"]
	owner -> return_31 [label="body"]
	return_31 -> storage_load [label="expr"]
	storage_load -> storage_var_33 [label="expr"]
	contract_14 -> onlyOwner [label="modifier"]
	onlyOwner -> expr_35 [label="body"]
	expr_35 -> builtins_36 [label="expr"]
	builtins_36 -> equal [label="arg #0"]
	equal -> storage_load_38 [label="left"]
	storage_load_38 -> storage_var_39 [label="expr"]
	equal -> cast_40 [label="right"]
	cast_40 -> call_internal_function_41 [label="expr"]
	call_internal_function_41 -> internal_function_42 [label="function"]
	builtins_36 -> alloc_array [label="arg #1"]
	alloc_array -> number_literal_44 [label="length"]
	expr_35 -> underscore [label="next"]
	contract_14 -> waiveOwnership [label="function"]
	waiveOwnership -> emit_47 [label="body"]
	emit_47 -> storage_load_48 [label="arg #0"]
	storage_load_48 -> storage_var_49 [label="expr"]
	emit_47 -> number_literal_50 [label="arg #1"]
	emit_47 -> expr_51 [label="next"]
	expr_51 -> assign_52 [label="expr"]
	assign_52 -> storage_var_53 [label="left"]
	assign_52 -> number_literal_54 [label="right"]
	contract_14 -> transferOwnership [label="function"]
	transferOwnership -> parameters [label="parameters"]
	transferOwnership -> expr_57 [label="body"]
	expr_57 -> builtins_58 [label="expr"]
	builtins_58 -> not [label="arg #0"]
	not -> equal_60 [label="expr"]
	equal_60 -> variable_61 [label="left"]
	equal_60 -> number_literal_62 [label="right"]
	builtins_58 -> alloc_array_63 [label="arg #1"]
	alloc_array_63 -> number_literal_64 [label="length"]
	expr_57 -> emit_65 [label="next"]
	emit_65 -> storage_load_66 [label="arg #0"]
	storage_load_66 -> storage_var_67 [label="expr"]
	emit_65 -> variable_68 [label="arg #1"]
	emit_65 -> expr_69 [label="next"]
	expr_69 -> assign_70 [label="expr"]
	assign_70 -> storage_var_71 [label="left"]
	assign_70 -> variable_72 [label="right"]
	contract_14 -> getTime [label="function"]
	getTime -> returns_74 [label="returns"]
	getTime -> return_75 [label="body"]
	return_75 -> zero_ext [label="expr"]
	zero_ext -> builtins_77 [label="expr"]
	diagnostics -> diagnostic [label="Debug"]
	diagnostics -> diagnostic_80 [label="Debug"]
}
