-
-
Notifications
You must be signed in to change notification settings - Fork 792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Double Eval in experimental codegen without optimization #4072
Comments
I think master failing to compile is expected given that #3514/#4071 have not been fixed yet, only a fence was added (#4030) to prevent incorrect bytecode generation by having the compiler fail, but the underlying issue is not fixed |
so #4030 is not actually fixing the issue, instead it asserts to abort from producing erroneous bytecode? |
Exact, #4030, together with #3835 it extend the usage of Concerned (IR) nodes are:
This means that for now, the compiler relies on that list to be exhaustive not to perform any double evaluation of the |
yea we can probably demote this to "type 0" bug (panic instead of producing bad code). but we should still investigate since it indicates some kind of deeper issue |
ah never mind, i see what's happening -- |
Version Information
vyper --version
OR linkable commit hash vyperlang/vyper@commitish):0.4.0rc6+commit.33719560
Issue description
In version 0.4.0rc6 it seems that #4030 fixed the issue #4071 for all tested compilation settings EXCEPT when compiling with experimental_codegen and no optimization. For that compilation setting incorrect bytecode with double evaluation is still being generated.
PoC
And compile with
Returns 30, but should return 31.
The text was updated successfully, but these errors were encountered: