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

35 lines
514 B
Perl

local C = terralib.includecstring [[
union testunion {
int idata;
float fdata;
};
void setUnionI(union testunion * u){
u->idata = 3;
}
void setUnionF(union testunion * u){
u->fdata = 4.f;
}
]]
terra foo() : int
var u : C.testunion
C.setUnionI(&u)
var f = u.idata
C.setUnionF(&u)
var f2 = u.fdata
return f + f2
end
terra foo2()
var a : C.testunion
a.fdata = -3.0
a.idata = a.idata and not (1 << 31)
return a.fdata
end
local test = require("test")
test.eq(foo(),7)
test.eq(foo2(),3)