sligor a day ago

Volatile were buggy in old compiler: https://llvm.org/pubs/2008-10-EMSOFT-Volatiles.html [2008 paper]

Even if compilers are better now, if possible it is better to wrap any IO memory access into ioread/iowrite inline (no cost) functions. This can then be implemented in a way known to be safe for the compiler used. And that can be changed easily in case the architecture or the compiler changes ( yeah abstraction ! )

As linux does for example: https://www.kernel.org/doc/html/v4.15/driver-api/device-io.h...

userbinator a day ago

I have, in various projects over the years, resorted to inline Asm when I couldn't coerce the compiler to do exactly what I wanted; including very rare compiler bugs.

486sx33 12 hours ago

It’s never the compiler, it can’t be the compiler. The first rule of debugging is that it can’t be the compiler…

Wow does it ever suck and waste a ton of time when it IS the compiler. I feel sorrow for whomever had to find this out in their workflow

  • rsaxvc 4 hours ago

    I was still learning assembly, it took me a while to be sure it wasn't my bug.

vintagedave a day ago

> the compiler vendor took care of it promptly in a paid upgrade to proprietary compiler 5.next

Ouch (assuming that this required them to pay to get the bugfix.)

  • rsaxvc 4 hours ago

    Long enough ago I don't remember the business details.

    The 4.x compiler line never being patched was a bit of eye opener into commercial toolchain support.

kookamamie a day ago

Searches for "volatile"...ahh, there it is.