logoalt Hacker News

titzertoday at 3:55 PM2 repliesview on HN

Thanks for pointing to this. I'm surprised the specification verbiage differs so much between the two standards. However I think the language for C is aspirational and there are cases where compiler optimizations will fail this.


Replies

ueckertoday at 4:02 PM

There are a few rare cases where compiler optimization will fail this in GCC. There are also cases where the C spec has defined behavior that optimizers break. Where I know about them, I file bugs. It would be up for users to insist that those get fixed. This includes optimization issues that affect Rust as well.

Georgelementaltoday at 4:39 PM

Some of those cases have been fixed. For example, Clang used to reorder UB around volatile loads, but the latest version no longer does so.

show 1 reply