i take it back. it goes wrong earlier than that, in lex.c where it does mark it as ulong, but only after encouraging convvtox to force it negative in the underlying vlong.