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
{{ message }}
Repository navigation
A static goto inside a block literal leaves the block instead of reaching its label #4476
optionsgen2
[sideeffects]
deflab2 : int {
varq=0letv=invoke($() : int {
gotolabel3label3:
return3
})
returnv+q
}
[export]
defmain {
print("{lab2()}\n")
}
Expected 3. Got EXCEPTION: end of block without return - the jump leaves the block literal instead of reaching the label two lines down. A label without a goto in the same literal (invoke($() : int { label 3: return 3 })) runs, and a computed goto whose target is a label only a block literal declares throws as it should (jump to label 3 failed, caught by a try around the call).
changed the title [-]A label inside a block literal: a static goto leaves the block, a computed goto beside one crashes simulate[/-][+]A static goto inside a block literal leaves the block instead of reaching its label[/+]on Nov 7, 2026
Activity
[-]A label inside a block literal: a static goto leaves the block, a computed goto beside one crashes simulate[/-][+]A static goto inside a block literal leaves the block instead of reaching its label[/+]lookibed leftovers: goto in a block literal, AOT struct order, max_fr…