Skip to content

Hanged on Solc Version 0.6.0 #112

@saarshah

Description

@saarshah

I have checked the following

  • The souffle binary is available, output when running souffle:
    ============================================================================
    souffle -- A datalog engine.
    Usage: souffle [OPTION] FILE.

Options:
-F --fact-dir= Specify directory for fact files.
-I --include-dir= Specify directory for include files.
-D --output-dir= Specify directory for output files (if is -, stdout is used).
-j --jobs= Run interpreter/compiler in parallel using N threads, N=auto for system default.
-c --compile Generate C++ source code, compile to a binary executable, then run this executable.
-g --generate= Generate C++ source code for the given Datalog program and write it to .
-s --swig= Generate SWIG interface for given language. The values accepts is java and python.
-L --library-dir= Specify directory for library files.
-l --libraries= Specify libraries.
-w --no-warn Disable warnings.
-m --magic-transform= Enable magic set transformation changes on the given relations, use '*' for all.
-M --macro= Set macro definitions for the pre-processor
-z --disable-transformers= Disable the given AST transformers.
-o --dl-program= Generate C++ source code, written to , and compile this to a binary executable (without executing it).
--live-profile Enable live profiling.
-p --profile= Enable profiling, and write profile data to .
-u --profile-use= Use profile log-file for profile-guided optimization.
-r --debug-report= Write HTML debug report to .
-P --pragma= Set pragma options.
-t<[ none | explain | explore | subtreeHeights ]> --provenance=<[ none | explain | explore | subtreeHeights ]> Enable provenance instrumentation and interaction.
-e<[ file | mpi ]> --engine=<[ file | mpi ]> Specify communication engine for distributed execution.
--hostfile= Specify --hostfile option for call to mpiexec when using mpi as execution engine.
-v --verbose Verbose output.
--version Version.
--transformed-datalog Output dl after all transformations.
--parse-errors Show parsing errors, if any, then exit.
-h --help Display this help message.

Version: 1.7.1

Copyright (c) 2016-18 The Souffle Developers.
Copyright (c) 2013-16 Oracle and/or its affiliates.
All rights reserved.
$OUTPUT

  • Output of solc --version

$OUTPUT

  • Output of solc --bin-runtime MyContract.sol
    Warning: Source file does not specify required compiler version! Consider adding "pragma solidity ^0.6.0;"
    --> src/test/resources/solidity/TokenReserve.sol:7:1:
    |
    7 | interface ERC20CompatibleToken {
    | ^ (Relevant source part starts here and spans across multiple lines).

======= src/test/resources/solidity/TokenReserve.sol:ERC20CompatibleToken =======
Binary of the runtime part:

======= src/test/resources/solidity/TokenReserve.sol:SafeMath =======
Binary of the runtime part:
73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a2e8a88f13a24640b44951e4f1993f067b222944743e0a819bada88bb494fd8e64736f6c63430006000033

======= src/test/resources/solidity/TokenReserve.sol:TokenReserve =======
Binary of the runtime part:
608060405234801561001057600080fd5b50600436106100b45760003560e01c806382edaf941161007157806382edaf941461018f5780638f4ffcb1146101d9578063948fadf41461029c578063c25322ae146102ba578063c3ff3d45146102d8578063f968f49314610334576100b4565b80631d121320146100b95780631fe66620146100fd5780633fd8b02f1461010757806358c4f1cf146101255780636e27d889146101435780637db4163a14610171575b600080fd5b6100fb600480360360208110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061033e565b005b610105610592565b005b61010f6107b0565b6040518082815260200191505060405180910390f35b61012d6107b6565b6040518082815260200191505060405180910390f35b61016f6004803603602081101561015957600080fd5b81019080803590602001909291905050506107c8565b005b6101796107d5565b6040518082815260200191505060405180910390f35b610197610858565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029a600480360360808110156101ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184600183028401116401000000008311171561028a57600080fd5b909192939192939050505061087e565b005b6102a46109ef565b6040518082815260200191505060405180910390f35b6102c26109f5565b6040518082815260200191505060405180910390f35b61031a600480360360208110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109fd565b604051808215151515815260200191505060405180910390f35b61033c610a1d565b005b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806113016030913960400191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156104a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4163636f756e7420697320616c726561647920617574686f72697a656400000081525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe7dbd42bc9c6dd6da9b76e2276a06078d0091e20b34ba05ae03e0977450c3a798133604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610634576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806113016030913960400191505060405180910390fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e7420776173206e6f7420617574686f72697a656400000000000081525060200191505060405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc2e0a577963cbf13d6b3b04206effff57f0b291f749f2b6623784d061a070f8833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60005481565b60006107c3600554610aca565b905090565b6107d23382610ade565b50565b6000806000905060006107e742610d48565b9050600060055490505b6000811180156108015750818111155b1561084f5761082f600460008381526020019081526020016000206001015484610d6390919063ffffffff16565b9250600460008281526020019081526020016000206000015490506107f1565b82935050505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113316027913960400191505060405180910390fd5b60008414156109dd57600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611358602b913960400191505060405180910390fd5b6109d885610de9565b6109e8565b6109e78585610ade565b5b5050505050565b60015481565b635c2aad8081565b60036020528060005260406000206000915054906101000a900460ff1681565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610abf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806113016030913960400191505060405180910390fd5b610ac833610de9565b565b60006001548202635c2aad80019050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610bbb57600080fd5b505af1158015610bcf573d6000803e3d6000fd5b505050506040513d6020811015610be557600080fd5b8101908080519060200190929190505050506000610c16610c1160005442610d6390919063ffffffff16565b610d48565b9050600654811415610c6e57610c4d8260046000600654815260200190815260200160002060010154610d6390919063ffffffff16565b60046000600654815260200190815260200160002060010181905550610ce9565b60006006541415610c855780600581905550610ca3565b80600460006006548152602001908152602001600020600001819055505b6040518060400160405280600081526020018381525060046000836006819055815260200190815260200160002060008201518160000155602082015181600101559050505b610cfe82600754610d6390919063ffffffff16565b6007819055507f9e88fd848e1f22578aadbdd71e0885905b3ff944ca7db29aef69ba0f21a3bdc28242604051808381526020018281526020019250505060405180910390a1505050565b6000600154635c2aad80830381610d5b57fe5b049050919050565b6000818301905082811015610de0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f53756d206f766572666c6f77000000000000000000000000000000000000000081525060200191505060405180910390fd5b80905092915050565b60008090506000610df942610d48565b90506000809050600060075490505b6000600554118015610e1c57508260055411155b8015610e3d5750617530620493e0450381610e3357fe5b0482806001019350105b15610ec157610e6d6004600060055481526020019081526020016000206001015485610d6390919063ffffffff16565b93506000600460006005548152602001908152602001600020600001549050600460006005548152602001908152602001600020600080820160009055600182016000905550508060058190555050610e08565b60006005541415610ed55760006006819055505b60008414610f3857610ef28460075461127d90919063ffffffff16565b6007819055507f2e444eb379b177e88ce0649c6110a3b01099f03e297127919dd5e3b63a761a9c8442604051808381526020018281526020019250505060405180910390a15b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fd857600080fd5b505afa158015610fec573d6000803e3d6000fd5b505050506040513d602081101561100257600080fd5b8101908080519060200190929190505050111561111a5761111761110882600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110bf57600080fd5b505afa1580156110d3573d6000803e3d6000fd5b505050506040513d60208110156110e957600080fd5b810190808051906020019092919050505061127d90919063ffffffff16565b85610d6390919063ffffffff16565b93505b6000841415611191576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f7468696e6720746f20756e6c6f636b00000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561123a57600080fd5b505af115801561124e573d6000803e3d6000fd5b505050506040513d602081101561126457600080fd5b8101908080519060200190929190505050505050505050565b6000828211156112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5375627472616374696f6e20756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b81830390509291505056fe4f6e6c7920617574686f72697a6564206164647265737365732063616e2063616c6c20746869732066756e6374696f6e53656e646572206d757374206265206120746f6b656e20636f6e747261637420616464726573734f6e6c7920617574686f72697a6564206164647265737365732063616e20756e6c6f636b20746f6b656e73a2646970667358221220cb044b42d38bdec1e3434ab5f44bf3a35d19d86e0e23e47cd1118f5b3569b74f64736f6c63430006000033
$OUTPUT

  • I can reproduce this issue in a Docker container with the following command
    n/a
    $COMMAND

Steps to reproduce

  1. download this contract from Etherscan
  2. comment line pragma , so that it can run on v.0.6. solc.. put it on test/resources/solidity/
  3. java -jar build/libs/securify.jar -fs src/test/resources/solidity/TokenReserve.sol
    $STEPS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions