Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: Jenkins build became unstable: epics-base-3.14-win64 #105
From: Andrew Johnson <anj@aps.anl.gov>
To: <core-talk@aps.anl.gov>
Date: Wed, 24 Feb 2016 15:06:25 -0600
On 02/23/2016 06:31 PM, Andrew Johnson wrote:
> That's interesting, #593 failed but #595 passed; exactly the same
> operation but with swapped inputs. The code is this:
> 
>         case BIT_OR:
>             utop = *ptop--;
>             *ptop = (epicsInt32) ((epicsUInt32) *ptop | utop);
>             break;

Aarrrggggghhh. Stupid F*ing MS compiler/optimizer. This version passes
both tests
>         case BIT_OR:
>             utop = *ptop--;
>             utop |= (epicsUInt32) *ptop;
>             itop = utop;
> printf("result = %d (0x%x)\n", itop, utop);
>             *ptop = itop;
>             break;

but if I remove/comment out the printf() it fails again exactly as
before, i.e. when the first operand (2nd on stack) is 2863311530.1.

The only way I can fix this is to turn off MS global optimizations for
the duration of the calcPerform() function, which does allow the
original code to work. The win32-x86 build doesn't need that though

- Andrew

-- 
There are only two hard problems in distributed systems:
  2. Exactly-once delivery
  1. Guaranteed order of messages
  2. Exactly-once delivery
 -- Mathias Verraes

References:
Jenkins build became unstable: epics-base-3.14-win64 #105 APS Jenkins
Re: Jenkins build became unstable: epics-base-3.14-win64 #105 Andrew Johnson

Navigate by Date:
Prev: Re: Jenkins build became unstable: epics-base-3.14-win64 #105 Andrew Johnson
Next: Jenkins build is back to stable : epics-base-3.14-win64 #106 APS Jenkins
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
Navigate by Thread:
Prev: Re: Jenkins build became unstable: epics-base-3.14-win64 #105 Andrew Johnson
Next: Jenkins build is back to stable : epics-base-3.14-win64 #106 APS Jenkins
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
ANJ, 24 Feb 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·