|
@@ -0,0 +1,228 @@
|
|
|
|
|
+strict digraph "tests/contract_testcases/substrate/functions/external_call_args.sol" {
|
|
|
|
|
+ contract [label="contract IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:2:1-18:2"]
|
|
|
|
|
+ WETH [label="function WETH\ncontract: IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:3:5-52\nsignature WETH()\nvisibility external\nmutability pure\nvirtual"]
|
|
|
|
|
+ returns [label="returns\naddress "]
|
|
|
|
|
+ swapExactETHForTokens [label="function swapExactETHForTokens\ncontract: IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:4:5-7:40\nsignature swapExactETHForTokens(uint256,address[],address,uint256)\nvisibility external\nmutability payable\nvirtual"]
|
|
|
|
|
+ parameters [label="parameters\nuint256 amountOutMin\naddress[] path\naddress to\nuint256 deadline"]
|
|
|
|
|
+ returns_6 [label="returns\nuint256[] amounts"]
|
|
|
|
|
+ swapTokensForExactETH [label="function swapTokensForExactETH\ncontract: IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:8:5-10:40\nsignature swapTokensForExactETH(uint256,uint256,address[],address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
|
|
|
|
|
+ parameters_8 [label="parameters\nuint256 amountOut\nuint256 amountInMax\naddress[] path\naddress to\nuint256 deadline"]
|
|
|
|
|
+ returns_9 [label="returns\nuint256[] amounts"]
|
|
|
|
|
+ swapExactTokensForETH [label="function swapExactTokensForETH\ncontract: IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:11:5-13:40\nsignature swapExactTokensForETH(uint256,uint256,address[],address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
|
|
|
|
|
+ parameters_11 [label="parameters\nuint256 amountIn\nuint256 amountOutMin\naddress[] path\naddress to\nuint256 deadline"]
|
|
|
|
|
+ returns_12 [label="returns\nuint256[] amounts"]
|
|
|
|
|
+ swapETHForExactTokens [label="function swapETHForExactTokens\ncontract: IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:14:5-17:40\nsignature swapETHForExactTokens(uint256,address[],address,uint256)\nvisibility external\nmutability payable\nvirtual"]
|
|
|
|
|
+ parameters_14 [label="parameters\nuint256 amountOut\naddress[] path\naddress to\nuint256 deadline"]
|
|
|
|
|
+ returns_15 [label="returns\nuint256[] amounts"]
|
|
|
|
|
+ contract_16 [label="contract SafeMath\ntests/contract_testcases/substrate/functions/external_call_args.sol:20:1-32:2"]
|
|
|
|
|
+ mul [label="function mul\ncontract: SafeMath\ntests/contract_testcases/substrate/functions/external_call_args.sol:21:5-71\nsignature mul(uint256,uint256)\nvisibility internal\nmutability pure"]
|
|
|
|
|
+ parameters_18 [label="parameters\nuint256 a\nuint256 b"]
|
|
|
|
|
+ returns_19 [label="returns\nuint256 "]
|
|
|
|
|
+ if [label="if\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:9-30"]
|
|
|
|
|
+ equal [label="equal\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:13-19"]
|
|
|
|
|
+ variable [label="variable: a\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:13-14"]
|
|
|
|
|
+ number_literal [label="uint256 literal: 0\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:18-19"]
|
|
|
|
|
+ return [label="return\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:21-29"]
|
|
|
|
|
+ number_literal_25 [label="uint256 literal: 0\ntests/contract_testcases/substrate/functions/external_call_args.sol:22:28-29"]
|
|
|
|
|
+ var_decl [label="variable decl uint256 c\ntests/contract_testcases/substrate/functions/external_call_args.sol:23:9-26"]
|
|
|
|
|
+ multiply [label="multiply\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:23:21-26"]
|
|
|
|
|
+ variable_28 [label="variable: a\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:23:21-22"]
|
|
|
|
|
+ variable_29 [label="variable: b\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:23:25-26"]
|
|
|
|
|
+ expr [label="expression\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:9-65"]
|
|
|
|
|
+ builtins [label="builtin Require\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:9-16"]
|
|
|
|
|
+ equal_32 [label="equal\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:17-27"]
|
|
|
|
|
+ divide [label="divide\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:17-22"]
|
|
|
|
|
+ variable_34 [label="variable: c\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:17-18"]
|
|
|
|
|
+ variable_35 [label="variable: a\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:21-22"]
|
|
|
|
|
+ variable_36 [label="variable: b\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:26-27"]
|
|
|
|
|
+ alloc_array [label="alloc array string\ninitializer: 536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:29-64"]
|
|
|
|
|
+ number_literal_38 [label="uint32 literal: 33\ntests/contract_testcases/substrate/functions/external_call_args.sol:24:29-64"]
|
|
|
|
|
+ return_39 [label="return\ntests/contract_testcases/substrate/functions/external_call_args.sol:25:9-17"]
|
|
|
|
|
+ variable_40 [label="variable: c\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:25:16-17"]
|
|
|
|
|
+ div [label="function div\ncontract: SafeMath\ntests/contract_testcases/substrate/functions/external_call_args.sol:27:5-71\nsignature div(uint256,uint256)\nvisibility internal\nmutability pure"]
|
|
|
|
|
+ parameters_42 [label="parameters\nuint256 a\nuint256 b"]
|
|
|
|
|
+ returns_43 [label="returns\nuint256 "]
|
|
|
|
|
+ expr_44 [label="expression\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:9-53"]
|
|
|
|
|
+ builtins_45 [label="builtin Require\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:9-16"]
|
|
|
|
|
+ more [label="more\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:17-22"]
|
|
|
|
|
+ variable_47 [label="variable: b\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:17-18"]
|
|
|
|
|
+ number_literal_48 [label="uint256 literal: 0\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:21-22"]
|
|
|
|
|
+ alloc_array_49 [label="alloc array string\ninitializer: 536166654d6174683a206469766973696f6e206279207a65726f\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:24-52"]
|
|
|
|
|
+ number_literal_50 [label="uint32 literal: 26\ntests/contract_testcases/substrate/functions/external_call_args.sol:28:24-52"]
|
|
|
|
|
+ return_51 [label="return\ntests/contract_testcases/substrate/functions/external_call_args.sol:29:9-21"]
|
|
|
|
|
+ divide_52 [label="divide\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:29:16-21"]
|
|
|
|
|
+ variable_53 [label="variable: a\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:29:16-17"]
|
|
|
|
|
+ variable_54 [label="variable: b\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:29:20-21"]
|
|
|
|
|
+ contract_55 [label="contract Swap_ETH_TO_USDX\ntests/contract_testcases/substrate/functions/external_call_args.sol:34:1-50:2"]
|
|
|
|
|
+ var [label="variable distTokens\nvisibility internal\ntests/contract_testcases/substrate/functions/external_call_args.sol:37:3-21"]
|
|
|
|
|
+ var_57 [label="variable deadline\nvisibility internal\ntests/contract_testcases/substrate/functions/external_call_args.sol:38:3-16"]
|
|
|
|
|
+ var_58 [label="variable feerate\nvisibility internal\ntests/contract_testcases/substrate/functions/external_call_args.sol:39:3-15"]
|
|
|
|
|
+ var_59 [label="variable uniswapRouter\nvisibility public\ntests/contract_testcases/substrate/functions/external_call_args.sol:40:3-42"]
|
|
|
|
|
+ using [label="using for uint256\nlibrary SafeMath"]
|
|
|
|
|
+ uniswapRouter [label="function uniswapRouter\ncontract: Swap_ETH_TO_USDX\ntests/contract_testcases/substrate/functions/external_call_args.sol:40:29-42\nsignature uniswapRouter()\nvisibility public\nmutability view"]
|
|
|
|
|
+ returns_62 [label="returns\ncontract IUniswapV2Router01 "]
|
|
|
|
|
+ return_63 [label="return\nimplicit"]
|
|
|
|
|
+ storage_load [label="storage load contract IUniswapV2Router01\nimplicit"]
|
|
|
|
|
+ storage_var [label="storage variable\nSwap_ETH_TO_USDX.uniswapRouter\ncontract IUniswapV2Router01 storage\nimplicit"]
|
|
|
|
|
+ node_66 [label="receive \ncontract: Swap_ETH_TO_USDX\ntests/contract_testcases/substrate/functions/external_call_args.sol:42:4-31\nmutability payable"]
|
|
|
|
|
+ var_decl_67 [label="variable decl address[] paths\ntests/contract_testcases/substrate/functions/external_call_args.sol:43:9-50"]
|
|
|
|
|
+ alloc_array_68 [label="alloc array address[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:43:34-50"]
|
|
|
|
|
+ number_literal_69 [label="uint32 literal: 2\ntests/contract_testcases/substrate/functions/external_call_args.sol:43:48-49"]
|
|
|
|
|
+ expr_70 [label="expression\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:9-40"]
|
|
|
|
|
+ assign [label="assign\naddress\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:9-40"]
|
|
|
|
|
+ subscript [label="subscript address[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:9-17"]
|
|
|
|
|
+ variable_73 [label="variable: paths\naddress[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:9-14"]
|
|
|
|
|
+ number_literal_74 [label="uint32 literal: 0\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:15-16"]
|
|
|
|
|
+ call_external_function [label="call external function\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:20-40"]
|
|
|
|
|
+ external_function [label="function() external pure returns (address)\nIUniswapV2Router01.WETH\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:20-40"]
|
|
|
|
|
+ storage_load_77 [label="storage load contract IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:20-33"]
|
|
|
|
|
+ storage_var_78 [label="storage variable\nSwap_ETH_TO_USDX.uniswapRouter\ncontract IUniswapV2Router01 storage\ntests/contract_testcases/substrate/functions/external_call_args.sol:44:20-33"]
|
|
|
|
|
+ expr_79 [label="expression\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:9-30"]
|
|
|
|
|
+ assign_80 [label="assign\naddress\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:9-30"]
|
|
|
|
|
+ subscript_81 [label="subscript address[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:9-17"]
|
|
|
|
|
+ variable_82 [label="variable: paths\naddress[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:9-14"]
|
|
|
|
|
+ number_literal_83 [label="uint32 literal: 1\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:15-16"]
|
|
|
|
|
+ storage_load_84 [label="storage load address\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:20-30"]
|
|
|
|
|
+ storage_var_85 [label="storage variable\nSwap_ETH_TO_USDX.distTokens\naddress storage\ntests/contract_testcases/substrate/functions/external_call_args.sol:45:20-30"]
|
|
|
|
|
+ var_decl_86 [label="variable decl uint256[] amounts\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:9-196"]
|
|
|
|
|
+ call_external_function_87 [label="call external function\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:31-196"]
|
|
|
|
|
+ external_function_88 [label="function(uint256,address[],address,uint256) external payable returns (uint256[])\nIUniswapV2Router01.swapExactETHForTokens\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:31-196"]
|
|
|
|
|
+ storage_load_89 [label="storage load contract IUniswapV2Router01\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:31-44"]
|
|
|
|
|
+ storage_var_90 [label="storage variable\nSwap_ETH_TO_USDX.uniswapRouter\ncontract IUniswapV2Router01 storage\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:31-44"]
|
|
|
|
|
+ number_literal_91 [label="uint256 literal: 0\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:125-126"]
|
|
|
|
|
+ variable_92 [label="variable: paths\naddress[]\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:134-139"]
|
|
|
|
|
+ cast [label="cast address\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:145-158"]
|
|
|
|
|
+ builtins_94 [label="builtin GetAddress\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:153-157"]
|
|
|
|
|
+ add [label="add\nuint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:170-194"]
|
|
|
|
|
+ zero_ext [label="zero extend uint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:170-185"]
|
|
|
|
|
+ builtins_97 [label="builtin Timestamp\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:170-185"]
|
|
|
|
|
+ storage_load_98 [label="storage load uint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:186-194"]
|
|
|
|
|
+ storage_var_99 [label="storage variable\nSwap_ETH_TO_USDX.deadline\nuint256 storage\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:186-194"]
|
|
|
|
|
+ trunc [label="checking truncate uint128\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-108"]
|
|
|
|
|
+ call_internal_function [label="call internal function\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-108"]
|
|
|
|
|
+ internal_function [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-108"]
|
|
|
|
|
+ call_internal_function_103 [label="call internal function\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-97"]
|
|
|
|
|
+ internal_function_104 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.mul\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-97"]
|
|
|
|
|
+ sign_ext [label="sign extend uint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-84"]
|
|
|
|
|
+ builtins_106 [label="builtin Value\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-84"]
|
|
|
|
|
+ storage_load_107 [label="storage load uint256\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:89-96"]
|
|
|
|
|
+ storage_var_108 [label="storage variable\nSwap_ETH_TO_USDX.feerate\nuint256 storage\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:89-96"]
|
|
|
|
|
+ number_literal_109 [label="uint256 literal: 10000\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:102-107"]
|
|
|
|
|
+ diagnostic [label="found interface 'IUniswapV2Router01'\nlevel Debug\ntests/contract_testcases/substrate/functions/external_call_args.sol:2:1-18:2"]
|
|
|
|
|
+ diagnostic_112 [label="found library 'SafeMath'\nlevel Debug\ntests/contract_testcases/substrate/functions/external_call_args.sol:20:1-32:2"]
|
|
|
|
|
+ diagnostic_113 [label="found contract 'Swap_ETH_TO_USDX'\nlevel Debug\ntests/contract_testcases/substrate/functions/external_call_args.sol:34:1-50:2"]
|
|
|
|
|
+ diagnostic_114 [label="conversion truncates uint256 to uint128, as value is type uint128 on target substrate\nlevel Warning\ntests/contract_testcases/substrate/functions/external_call_args.sol:46:75-108"]
|
|
|
|
|
+ contracts -> contract
|
|
|
|
|
+ contract -> WETH [label="function"]
|
|
|
|
|
+ WETH -> returns [label="returns"]
|
|
|
|
|
+ contract -> swapExactETHForTokens [label="function"]
|
|
|
|
|
+ swapExactETHForTokens -> parameters [label="parameters"]
|
|
|
|
|
+ swapExactETHForTokens -> returns_6 [label="returns"]
|
|
|
|
|
+ contract -> swapTokensForExactETH [label="function"]
|
|
|
|
|
+ swapTokensForExactETH -> parameters_8 [label="parameters"]
|
|
|
|
|
+ swapTokensForExactETH -> returns_9 [label="returns"]
|
|
|
|
|
+ contract -> swapExactTokensForETH [label="function"]
|
|
|
|
|
+ swapExactTokensForETH -> parameters_11 [label="parameters"]
|
|
|
|
|
+ swapExactTokensForETH -> returns_12 [label="returns"]
|
|
|
|
|
+ contract -> swapETHForExactTokens [label="function"]
|
|
|
|
|
+ swapETHForExactTokens -> parameters_14 [label="parameters"]
|
|
|
|
|
+ swapETHForExactTokens -> returns_15 [label="returns"]
|
|
|
|
|
+ contracts -> contract_16
|
|
|
|
|
+ contract_16 -> mul [label="function"]
|
|
|
|
|
+ mul -> parameters_18 [label="parameters"]
|
|
|
|
|
+ mul -> returns_19 [label="returns"]
|
|
|
|
|
+ mul -> if [label="body"]
|
|
|
|
|
+ if -> equal [label="cond"]
|
|
|
|
|
+ equal -> variable [label="left"]
|
|
|
|
|
+ equal -> number_literal [label="right"]
|
|
|
|
|
+ if -> return [label="then"]
|
|
|
|
|
+ return -> number_literal_25 [label="expr"]
|
|
|
|
|
+ if -> var_decl [label="next"]
|
|
|
|
|
+ var_decl -> multiply [label="init"]
|
|
|
|
|
+ multiply -> variable_28 [label="left"]
|
|
|
|
|
+ multiply -> variable_29 [label="right"]
|
|
|
|
|
+ var_decl -> expr [label="next"]
|
|
|
|
|
+ expr -> builtins [label="expr"]
|
|
|
|
|
+ builtins -> equal_32 [label="arg #0"]
|
|
|
|
|
+ equal_32 -> divide [label="left"]
|
|
|
|
|
+ divide -> variable_34 [label="left"]
|
|
|
|
|
+ divide -> variable_35 [label="right"]
|
|
|
|
|
+ equal_32 -> variable_36 [label="right"]
|
|
|
|
|
+ builtins -> alloc_array [label="arg #1"]
|
|
|
|
|
+ alloc_array -> number_literal_38 [label="length"]
|
|
|
|
|
+ expr -> return_39 [label="next"]
|
|
|
|
|
+ return_39 -> variable_40 [label="expr"]
|
|
|
|
|
+ contract_16 -> div [label="function"]
|
|
|
|
|
+ div -> parameters_42 [label="parameters"]
|
|
|
|
|
+ div -> returns_43 [label="returns"]
|
|
|
|
|
+ div -> expr_44 [label="body"]
|
|
|
|
|
+ expr_44 -> builtins_45 [label="expr"]
|
|
|
|
|
+ builtins_45 -> more [label="arg #0"]
|
|
|
|
|
+ more -> variable_47 [label="left"]
|
|
|
|
|
+ more -> number_literal_48 [label="right"]
|
|
|
|
|
+ builtins_45 -> alloc_array_49 [label="arg #1"]
|
|
|
|
|
+ alloc_array_49 -> number_literal_50 [label="length"]
|
|
|
|
|
+ expr_44 -> return_51 [label="next"]
|
|
|
|
|
+ return_51 -> divide_52 [label="expr"]
|
|
|
|
|
+ divide_52 -> variable_53 [label="left"]
|
|
|
|
|
+ divide_52 -> variable_54 [label="right"]
|
|
|
|
|
+ contracts -> contract_55
|
|
|
|
|
+ contract_55 -> var [label="variable"]
|
|
|
|
|
+ contract_55 -> var_57 [label="variable"]
|
|
|
|
|
+ contract_55 -> var_58 [label="variable"]
|
|
|
|
|
+ contract_55 -> var_59 [label="variable"]
|
|
|
|
|
+ contract_55 -> using [label="base"]
|
|
|
|
|
+ contract_55 -> uniswapRouter [label="function"]
|
|
|
|
|
+ uniswapRouter -> returns_62 [label="returns"]
|
|
|
|
|
+ uniswapRouter -> return_63 [label="body"]
|
|
|
|
|
+ return_63 -> storage_load [label="expr"]
|
|
|
|
|
+ storage_load -> storage_var [label="expr"]
|
|
|
|
|
+ contract_55 -> node_66 [label="receive"]
|
|
|
|
|
+ node_66 -> var_decl_67 [label="body"]
|
|
|
|
|
+ var_decl_67 -> alloc_array_68 [label="init"]
|
|
|
|
|
+ alloc_array_68 -> number_literal_69 [label="length"]
|
|
|
|
|
+ var_decl_67 -> expr_70 [label="next"]
|
|
|
|
|
+ expr_70 -> assign [label="expr"]
|
|
|
|
|
+ assign -> subscript [label="left"]
|
|
|
|
|
+ subscript -> variable_73 [label="array"]
|
|
|
|
|
+ subscript -> number_literal_74 [label="index"]
|
|
|
|
|
+ assign -> call_external_function [label="right"]
|
|
|
|
|
+ call_external_function -> external_function [label="function"]
|
|
|
|
|
+ external_function -> storage_load_77 [label="address"]
|
|
|
|
|
+ storage_load_77 -> storage_var_78 [label="expr"]
|
|
|
|
|
+ expr_70 -> expr_79 [label="next"]
|
|
|
|
|
+ expr_79 -> assign_80 [label="expr"]
|
|
|
|
|
+ assign_80 -> subscript_81 [label="left"]
|
|
|
|
|
+ subscript_81 -> variable_82 [label="array"]
|
|
|
|
|
+ subscript_81 -> number_literal_83 [label="index"]
|
|
|
|
|
+ assign_80 -> storage_load_84 [label="right"]
|
|
|
|
|
+ storage_load_84 -> storage_var_85 [label="expr"]
|
|
|
|
|
+ expr_79 -> var_decl_86 [label="next"]
|
|
|
|
|
+ var_decl_86 -> call_external_function_87 [label="init"]
|
|
|
|
|
+ call_external_function_87 -> external_function_88 [label="function"]
|
|
|
|
|
+ external_function_88 -> storage_load_89 [label="address"]
|
|
|
|
|
+ storage_load_89 -> storage_var_90 [label="expr"]
|
|
|
|
|
+ call_external_function_87 -> number_literal_91 [label="arg #0"]
|
|
|
|
|
+ call_external_function_87 -> variable_92 [label="arg #1"]
|
|
|
|
|
+ call_external_function_87 -> cast [label="arg #2"]
|
|
|
|
|
+ cast -> builtins_94 [label="expr"]
|
|
|
|
|
+ call_external_function_87 -> add [label="arg #3"]
|
|
|
|
|
+ add -> zero_ext [label="left"]
|
|
|
|
|
+ zero_ext -> builtins_97 [label="expr"]
|
|
|
|
|
+ add -> storage_load_98 [label="right"]
|
|
|
|
|
+ storage_load_98 -> storage_var_99 [label="expr"]
|
|
|
|
|
+ call_external_function_87 -> trunc [label="value"]
|
|
|
|
|
+ trunc -> call_internal_function [label="expr"]
|
|
|
|
|
+ call_internal_function -> internal_function [label="function"]
|
|
|
|
|
+ call_internal_function -> call_internal_function_103 [label="arg #0"]
|
|
|
|
|
+ call_internal_function_103 -> internal_function_104 [label="function"]
|
|
|
|
|
+ call_internal_function_103 -> sign_ext [label="arg #0"]
|
|
|
|
|
+ sign_ext -> builtins_106 [label="expr"]
|
|
|
|
|
+ call_internal_function_103 -> storage_load_107 [label="arg #1"]
|
|
|
|
|
+ storage_load_107 -> storage_var_108 [label="expr"]
|
|
|
|
|
+ call_internal_function -> number_literal_109 [label="arg #1"]
|
|
|
|
|
+ diagnostics -> diagnostic [label="Debug"]
|
|
|
|
|
+ diagnostics -> diagnostic_112 [label="Debug"]
|
|
|
|
|
+ diagnostics -> diagnostic_113 [label="Debug"]
|
|
|
|
|
+ diagnostics -> diagnostic_114 [label="Warning"]
|
|
|
|
|
+}
|