22 ms·
Well, not in C :) Here's an example where Clang and GCC don't agree about the behaviour of auto in C23: https://www.godbolt.org/z/WchMK18vx https://www.godbol
by flohofwoe 2y ago
Well, not in C :)
Here's an example where Clang and GCC don't agree about the behaviour of auto in C23:
https://www.godbolt.org/z/WchMK18vx https://www.godbolt.org/z/WchMK18vx
IIRC Clang implements 'C++ semantics' for C23 auto, while GCC doesn't.
Last time I brought that up it turned out that both behaviours are 'standard compliant', because the C23 standard explicitly allows such differing behaviour (it basically standardized the status quo even if different compilers disagreed about auto semantics in C).
PS: at least Clang has a warning now in pedantic mode: https://www.godbolt.org/z/ovj5r4axn https://www.godbolt.org/z/ovj5r4axn
- johnisgood 2y agoThis difference of implementation in two of the major C compilers leaves a bad taste in my mouth. :/
- cpeterso 2y ago> PS: at least Clang has a warning now in pedantic mode: https://www.godbolt.org/z/ovj5r4axn https://www.godbolt.org/z/ovj5r4axn Did you mean gcc? Your link shows a gcc error: <source>:3:5: error: 'auto' requires a plain identifier, possibly with attributes, as declarator 3 | auto* p = &i; | ^~~~
- flohofwoe 2y agoNo, GCC is right to error there, because the code uses a C++-ism (the '*' after 'auto' only makes sense in C++ but not in C).