=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/time.c,v retrieving revision 1.6 retrieving revision 1.9 diff -u -p -r1.6 -r1.9 --- OpenXM_contrib2/asir2000/builtin/time.c 2008/09/11 15:17:55 1.6 +++ OpenXM_contrib2/asir2000/builtin/time.c 2015/08/08 14:19:41 1.9 @@ -45,10 +45,11 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/time.c,v 1.5 2005/11/12 08:13:13 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/time.c,v 1.8 2011/05/11 06:03:53 ohara Exp $ */ #include "ca.h" #include "parse.h" +#include void Ptime(), Pcputime(), Pcurrenttime(), Ptstart(), Ptstop(); void Pdcurrenttime(); @@ -113,24 +114,24 @@ LIST *listp; Real re,rg,rr; NODE a,b,w,r; Q words; - long t; - int u,l; + size_t t; + unsigned int u,l; N n; double rtime; double get_rtime(); rtime = get_rtime(); MKReal(rtime,rr); t = get_allocwords(); -#if defined(LONG_IS_64BIT) - u = t>>32; l = t&(0xffffffff); - if ( !u ) STOQ(l,words); - else { - n = NALLOC(2); PL(n)=2; BD(n)[0] = l; BD(n)[1] = u; - NTOQ(n,1,words); + if(sizeof(size_t)>sizeof(int)) { + u = t>>(sizeof(int)*CHAR_BIT); l = t&(~0); + if ( !u ) STOQ(l,words); + else { + n = NALLOC(2); PL(n)=2; BD(n)[0] = l; BD(n)[1] = u; + NTOQ(n,1,words); + } + }else { + STOQ(t,words); } -#else - STOQ(t,words); -#endif get_eg(&eg); MKReal(eg.exectime,re); MKReal(eg.gctime,rg); MKNODE(r,rr,0); MKNODE(w,words,r); MKNODE(a,rg,w); MKNODE(b,re,a); MKLIST(*listp,b); @@ -150,4 +151,7 @@ double r; fprintf(stderr,"%.4gsec + gc : %.4gsec(%.4gsec)\n",e,g,r); else fprintf(stderr,"%.4gsec(%.4gsec)\n",e,r); +#if defined(__MINGW32__) || defined(__MINGW64__) + fflush(stderr); +#endif }