[clang] [C] Warn on uninitialized const objects (PR #137166)

Nathan Chancellor via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 29 23:12:53 PDT 2025


nathanchance wrote:

> This case might be reasonable to handle differently, but I'm on the fence too. There's two cases for structure members, broadly:
> 
> 1) Don't initialize the `const` field, don't ever read the `const` field.
> 
> 2) Rely on the fact that you can overwrite a `const` if the top-level object was not declared `const`.

Yes, this appears to be the case for the 10 or so unique cases that I found in the kernel.

> In both cases, the code is valid and so the warning is a false positive. In both cases, the code is dangerous and the warning is useful. So I kind of think this is a case where we split the field diagnostic out into its own group. So we'd have `-Wdefault-const-init-field` which covers field initialization cases, and it would be grouped under `-Wdefault-const-init` which covers both fields and variables. WDYT?

Yes, that seems like a reasonable place to start. I would be happy to test such a change.



https://github.com/llvm/llvm-project/pull/137166


More information about the cfe-commits mailing list