crytic / crytic/slither

[False-Positive]: unused-return when passing through multiple values

Open
#2,138 0 comments 0 reactions 0 assignees View on GitHub
false-positive
Dominant language
Python
Stars
6.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

### Describe the false alarm that Slither raise and how you know it's inaccurate:

Slither emits a false positive `unused-return` when returning multiple values straight from a call to another contract.

### Frequency

Occasionally

### Code example to reproduce the issue:

```solidity
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.20;

contract Pass {
Data public constant DATA = Data(address(1));

function pass() public view returns (uint256, uint256) {
return DATA.data();
}
}

contract Data {
function data() public pure returns (uint256, uint256) {
return (1, 2);
}
}
```

### Version:

0.9.5

### Relevant log output:

```shell
INFO:Detectors:
Pass.pass() (src/Pass.sol#7-9) ignores return value by DATA.data() (src/Pass.sol#8)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
INFO:Slither:. analyzed (2 contracts with 87 detectors), 1 result(s) found
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.