Subject: |
Re: Jenkins build became unstable: epics-base-3.14-win64 #105 |
From: |
Andrew Johnson <[email protected]> |
To: |
<[email protected]> |
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
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
- 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
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
|