Subj : Re: Date problem To : netscape.public.mozilla.jseng From : Shanti Rao Date : Tue Apr 13 2004 08:38 am Brendan Eich wrote: > Shanti Rao wrote: > >> The simple workaround is to make a change to lines 321ff of prmjtime.c >> >> #ifdef XP_WIN >> JSInt64 s, us, >> /*win2un = JSLL_INIT(0x19DB1DE, 0xD53E8000),*/ >> win2un = (__int64)0x19DB1DE << 32 + 0xD53E8000, > > > How does that differ exactly from the expansion of JSLL_INIT on your > platform? Generate a .i file (preprocess only) and show the macro's > expansion, if you can. Then try using that expansion and tweaking it > till it works. > > I don't see what's tickling a compiler bug, but something is. Borland C, > right? > win2un = JSLL_INIT(0x19DB1DE, 0xD53E8000) is evaluating to win2un = 0x19DB1DE << 32 + 0xD53E8000, Which is funny, because if I put messages in jslong.h, I find that the macro it's using is #define JSLL_INIT(hi,lo) ((hi ## i64 << 32) + lo ## i64). It would seem that the Borland 5.01 preprocessor ignores the ##i64 construct. No such problem with BCC55. I don't think it's worth a SM change, since I'm the only person who uses that compiler, and I'm moving my code to GCC. Adding a note to bug 59195 for future reference. Shanti .