from Hacker News

A Compiler Bug (2023)

by pbrowne011 on 10/4/24, 4:24 PM with 10 comments

  • by sligor on 10/5/24, 10:07 AM

    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...

  • by userbinator on 10/5/24, 5:31 AM

    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.
  • by vintagedave on 10/5/24, 2:47 PM

    > 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.)

  • by kookamamie on 10/5/24, 12:06 PM

    Searches for "volatile"...ahh, there it is.
  • by 486sx33 on 10/6/24, 3:33 AM

    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

  • by bobmcnamara on 10/5/24, 8:27 AM

    Haha! It's ARM compiler 4!