3 ms·
> Nitpick: this isn’t standard C (it uses void main, not int main) You know what, I'm gonna nitpick that nitpick: void main() is fully allowed on a freestandi
by messe 3y ago
> Nitpick: this isn’t standard C (it uses void main, not int main)
You know what, I'm gonna nitpick that nitpick: void main() is fully allowed on a freestanding target, which is still standard C.
Given the C standards historically generous interpretation of undefined behaviour and other miscellany, I think it's a reasonable interpretation of the standard to pretend that a target that allows something other than int main(...) is freestanding rather than hosted, and therefore fully conforming.
- mysterymath 3y agoYep, llvm-mos-sdk is explicitly freestanding; the libc functions in the SDK follow the hosted C standard, but they don't add up to a hosted implementation. The only known C99 non-compliance is the lack of floating point support, which is actively being worked on.