The answer to $subject is not at all urgent, but I noticed we can get some (very modest) speed increases in the "pedantic" CI job when adding -fsyntax-only to CFLAGS. This currently requires monkeypatching out the "-o <target> -c" part hardcoded in the Makefile. See cebead1ebfb (ci: run a pedantic build as part of the GitHub workflow, 2021-08-08) for the pedantic job. I.e. I'm aware of CFLAGS's -O<n> changing which warings we emit, but does -fsyntax-only? The gcc manpage suggests that it would, saying: Check the code for syntax errors, but don't do anything beyond that Whereas clang's says: Run the preprocessor, parser and type checking stages. I think gcc's is a case of its docs drifting out of sync with the implementation. Both will warn on e.g. this program under -pedantic, which gcc wouldn't be doing if it only did syntax parsing (and didn't run the warning machinery): int main(void) { int v[0]; return 0; } I don't have any practical use for this now. We could squeeze some slight performance out of one CI jobs, but perhaps it'll be more interesting in the future.