> For the complete documentation index, see [llms.txt](https://docs.r.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.r.xyz/glider-ide/api/point/point/point.df_reaches_from_functions_arguments.md).

# Point.df\_reaches\_from\_functions\_arguments()

Returns the list of pairs, where the first element is the function and the second element the argument number from which data flow reaches to the point (it may reach through a chain of calls).

`df_reaches_from_functions_arguments() →` [`APIList`](/glider-ide/api/iterables/apilist.md)`[Tuple[`[`Callable`](/glider-ide/api/callable.md)`, int]]`

## Query Example

```python
from glider import *

def query():
  instructions = Instructions().exec(1, 77)
  
  for ins in instructions:
    reaching_points = ins.df_reaches_from_functions_arguments()
    for reaching_point in reaching_points:
      print(f"Point: {reaching_point[0].source_code()} | Argument index {reaching_point[1]}")
  
  return instructions
```

## Output Example

<figure><img src="https://2237101709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDX4Ojc4j1ef51TUAtYOx%2Fuploads%2F2HUVyHMeBpYLA4Pw0uKG%2Fimage.png?alt=media&amp;token=e221dd73-2386-4377-a8d0-efe89843932d" alt=""><figcaption></figcaption></figure>

### Here is a more detailed output

```solidity
Point: 
constructor(bytes memory _a, bytes memory _data) payable {
        (address _as) = abi.decode(_a, (address));
        assert(KEY == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        require(Address.isContract(_as), "address error");
        StorageSlot.getAddressSlot(KEY).value = _as;
        if (_data.length &gt; 0) {
            Address.functionDelegateCall(_as, _data);
        }
}
ArgumentIndex: 0
```
