Re: Program that segfaults with -Ofast

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8 January 2018 at 09:13, Andrew Haley wrote:
> On 07/01/18 21:27, Christer Solskogen wrote:
>> Fixed!
>>
>> Wanna know something funny?
>> Having a printf fixed the segfault. Without it, it would crash.
>> So the workaround in read_kickstart (memory.cpp) was to add
>> "volatile int i" instead of "int i".
>>
>> Just one simple printf("Value of i: %d\n", i); was enough to not segfault.
>
> That's probably not the real fix, unless you have another thread accessing
> i.

And even if another thread is accessing that variable, making it
volatile does not make the code correct.

It's possible that the bug is now hidden by the combination of
volatile and a sequence point introduced by calling printf, but it's
still a bug to access a shared variable without atomic ops, see
http://isvolatileusefulwiththreads.com/



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux