Why:
Keep strict warning builds useful without relying on broad
diagnostic suppressions.
Impact: removes redundant-decls noise while keeping
missing-prototypes at zero in full check builds.
Before/After:
Before mixed macro/local/header declarations; after a
layered prototype model with no warning class regressions.
Technical Overview:
Introduce PROTOTYPEobjConstruct() and standardize new
declarations on PROTOTYPE* macros in obj-types.h.
Split object prototype groups into PROTOTYPEObjBasic() and
PROTOTYPEObjFull(), keeping PROTOTYPEObj() as a compatibility
alias to Basic and using Full where typed ctor/dtor visibility
is valid.
Remove redundant local macro predeclarations for
QueryInterface/Destruct/Construct/DebugPrint/Set methods and
add header-owned prototypes where required.
Add BEGINmodInitNoPredecl() and apply it to built-in tool
modules that already publish modInit prototypes in headers.
Drop the obsolete -Wredundant-decls suppression pragma.
Closes https://github.com/rsyslog/rsyslog/issues/5700
With the help of AI-Agents: Codex
This commit applies the new canonical formatting style using `clang-format` with custom settings (notably 4-space indentation), as part of our shift toward automated formatting normalization.
⚠️ No functional changes are included — only whitespace and layout modifications as produced by `clang-format`.
This change is part of the formatting modernization strategy discussed in:
https://github.com/rsyslog/rsyslog/issues/5747
Key context:
- Formatting is now treated as a disposable view, normalized via tooling.
- The `.clang-format` file defines the canonical style.
- A fixup script (`devtools/format-code.sh`) handles remaining edge cases.
- Formatting commits are added to `.git-blame-ignore-revs` to reduce noise.
- Developers remain free to format code however they prefer locally.