Lucas Ste

Results 34 issues of Lucas Ste

Our support for multidimensional arrays is broken and the semantics Solidity uses for them is confusing. Here are some facts to discuss: 1. I understand `int[4][2] vec` as a matrix...

enhancement
under discussion

The CFG does not have an effective way to represent pointers, consequently, some constructs are not correctly implemented. One example is the `Type::BufferPointer` that originates after we advance a pointer...

enhancement

This contract causes an access violation in Solana's mock VM, because `fun` is a null pointer. ```solidity contract C { function test(uint256 newAddress, bytes4 newSelector) public view returns (bytes4, address)...

bug

@xermicus had a good idea to improve the `update_map` function in strength reduce, as discussed [here](https://github.com/hyperledger-labs/solang/pull/921#discussion_r924998507). We should try that when there is time to do so. https://github.com/hyperledger-labs/solang/blob/2b7fc1c0416720ba26c5eabcd97901988866aef3/src/codegen/strength_reduce/reaching_values.rs#L98

enhancement

```solidity contract Testing { struct PaddedStruct { uint128 a; uint8 b; bytes32 c; } PaddedStruct[2][3][] stor_arr; function addData() public { PaddedStruct memory a = PaddedStruct(56, 1, "oi"); PaddedStruct memory b...

bug

Solang's intermediate representation does not use a static single assignment (SSA) form. This has introduced some ugliness in our code base. For instance, we have two three different implementations of...

enhancement
under discussion

Currently, Solang checks the semantic correctness of the code while building the AST, i.e. it happens during a parse tree traversal. In some cases, we are not able to infer...

enhancement
under discussion

Our own `memcpy` function is not exported as a public symbol, preventing LLVM from liking it to its memory copy intrinsic function. We should set this up and update our...

enhancement

This contract works fine for `solc`, but crashes on Solang (for all targets): ```solidity contract Testing { uint16[2][4][] stor_arr; function getThis() public returns (uint16) { uint16[2][4][] memory arr2 = stor_arr;...

bug

When we declare a constant variable that has an initializer, e.g. `bool constant x = 0 < 2`, we evaluate the actual constant value in compiler time. Currently, there is...

good first issue