From ea30416f50028e8839bfde5b3132e6bb5c8c7c27 Mon Sep 17 00:00:00 2001 From: Brett Sun Date: Thu, 28 Mar 2019 14:04:52 +0100 Subject: [PATCH] ACL: use assembly switch instead of if --- contracts/acl/ACL.sol | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/acl/ACL.sol b/contracts/acl/ACL.sol index 7f217fc89..d1dc45433 100644 --- a/contracts/acl/ACL.sol +++ b/contracts/acl/ACL.sol @@ -427,7 +427,7 @@ contract ACL is IACL, TimeHelpers, AragonApp, ACLHelpers { let ptr := mload(0x40) // free memory pointer // A raw staticcall is required so we can return false if the call reverts, rather than reverting - let success := staticcall( + result := staticcall( oracleCheckGas, // gas forwarded _oracleAddr, // address add(checkCalldata, 0x20), // calldata start @@ -436,7 +436,9 @@ contract ACL is IACL, TimeHelpers, AragonApp, ACLHelpers { 0x20 // uint256 return ) - if gt(success, 0) { + // solidity-coverage fails on assembly `if` + switch result case 0 { } + default { // Check number of bytes returned from last external call switch returndatasize