the problem is v += d propagates the whole expression
to double. so we somehow need to convert v to double,
do the <asop> then convert back but return the double
result.

i tried (unsuccessfully) to come up with something like
this below in com64, but i dont know what i'm doing and
someone who knows kenc better can probably solve this by
deleting some code instead of adding more:

OCOMMA(
        OAS(ONAME(t, TDOUBLE), OFUNC(_v2d, ONAME(v, TVLONG))),
        OASADD(t, d),
        OCOMMA(
                OAS(ONAME(v, TVLONG), OFUNC(_d2v, ONAME(t, TDOUBLE))),
                NAME(t, TDOUBLE)))

the good news is that double and float are the only cases
where this can happen i think. and its rather silly code,
so maybe it should just give up and throw a error message.

lets see what charles thinks about this.

--
cinap

Reply via email to