Files
linguist/samples/Terra/defergoto.t
2016-01-28 11:22:27 +07:00

35 lines
526 B
Perl

C = terralib.includec("stdio.h")
cur = global(int)
terra d(a : int)
if cur ~= a then
C.printf("found %d while expecting %d\n",a,cur)
error(cur)
end
cur = cur + 1
C.printf("d%d\n",a)
end
d:setinlined(false)
terra foo()
d(0)
defer d(14)
var a = 0
::begin::
defer d(terralib.select(a == 10,13,a + 1))
if a >= 10 then
defer d(11)
goto theend
end
a = a + 1
goto begin
::theend::
defer d(12)
return a
end
foo:printpretty()
cur:set(0)
test = require("test")
test.eq(foo(),10)