3 ms·
The bad news is that C23 broke a lot of existing code[1]. We had to do a lot of work in Fedora to fix the resulting mess. [1] https://gcc.gnu.org/gcc-15/portin
by rwmj 2y ago
The bad news is that C23 broke a lot of existing code[1]. We had to do a lot of work in Fedora to fix the resulting mess. [1] https://gcc.gnu.org/gcc-15/porting_to.html#c23 https://gcc.gnu.org/gcc-15/porting_to.html#c23
- fuhsnn 2y agoFor the cases in linked doc, does adding -std=gnu17 to packages not suffice? I would consider the union initializer change (require adding -fzero-init-padding-bits=unions for old behavior) much more hidden and dangerous, which is not directly related to ISO C23 standard.
- rwmj 2y agoIt's true that it does, yes. However that would still require changes to the build system. In any case for the vast majority of the packages we decided to fix (if you think this is a fix!) the code.
- fuhsnn 2y ago>if you think this is a fix I would count it as doing maintenance work for the upstream, kudos for doing this!
- ForTheKidz 2y ago> Note that the bool type is not the same as int at ABI level, Huh. Wonder what the benefits of that are. Bools being ints never struck me as a serious problem. I wonder if this catches people who accidentally assign rather than compare tho....