You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Error: DeclarationError: Variable not found or variable not lvalue.
--> input.yul:33:17:
|
33 | $$tmp_5 := and($$sptr_load(add(0, 0), 8), 0xff)
| ^^^^^^^
Error: DeclarationError: Identifier "$$tmp_5" not found.
--> input.yul:34:24:
|
34 | switch $$tmp_5
| ^^^^^^^
Looking at the relevant YUL we can see that the second $$tmp_5 is used but not declared. Or maybe the initial declaration of $$tmp_5 should have been made one block higher 🤔 I haven't really analyzed it yet.
switch 1
case 1 {
let $$tmp_3
$$tmp_3: = and($$sptr_load(add(0, 0), 8), 0xff)
switch $$tmp_3
case 1 {
leave
}
case 0 {
switch 1
case 1 {
let $$tmp_5
$$tmp_5: = and($$sptr_load(add(0, 0), 8), 0xff)
switch $$tmp_5
case 1 {
leave
}
case 0 {
leave
}
}
case 0 {
leave
}
}
}
case 0 {
switch 1
case 1 {
$$tmp_5: = and($$sptr_load(add(0, 0), 8), 0xff)
switch $$tmp_5
case 1 {
leave
}
case 0 {
leave
}
}
case 0 {
leave
}
}
}
It's as minimal as I could get it:
The following alternations would make the ICE go away:
removing the return
unnesting
removing the second (duplicated) if block
using a local condition instead of self.something
How can it be fixed
🔪
The text was updated successfully, but these errors were encountered:
What is wrong?
The following leads to an ICE
ICE:
Looking at the relevant YUL we can see that the second
$$tmp_5
is used but not declared. Or maybe the initial declaration of$$tmp_5
should have been made one block higher 🤔 I haven't really analyzed it yet.It's as minimal as I could get it:
The following alternations would make the ICE go away:
return
self.something
How can it be fixed
🔪
The text was updated successfully, but these errors were encountered: