[PATCH] D123456: [C89/C2x] Diagnose calls to a function without a prototype but passes arguments

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 9 08:02:05 PDT 2022


aaron.ballman created this revision.
aaron.ballman added reviewers: jyknight, hubert.reinterpretcast, delcypher, erichkeane, clang-language-wg.
Herald added a project: All.
aaron.ballman requested review of this revision.
Herald added a project: clang.

This catches places where a function without a prototype is accidentally used, potentially passing an incorrect number of arguments, and is a follow-up to the work done in https://reviews.llvm.org/D122895 and described in the RFC (https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c). The diagnostic is grouped under the new `-Wdeprecated-non-prototypes` warning group and is enabled by default.

The diagnostic is disabled if the function being called was implicitly declared (the user already gets an on-by-default warning about the creation of the implicit function declaration, so no need to warn them twice on the same line). Additionally, the diagnostic is disabled if the declaration of the function without a prototype was in a location where the user explicitly disabled deprecation warnings for functions without prototypes (this allows the provider of the API a way to disable the diagnostic at call sites because the lack of prototype is intentional).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D123456

Files:
  clang/docs/ReleaseNotes.rst
  clang/include/clang/Basic/DiagnosticSemaKinds.td
  clang/lib/Sema/SemaExpr.cpp
  clang/test/Analysis/nullability.c
  clang/test/Analysis/svalbuilder-float-cast.c
  clang/test/Sema/warn-deprecated-non-prototype.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123456.421734.patch
Type: text/x-patch
Size: 7000 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220409/796cc7b4/attachment.bin>


More information about the cfe-commits mailing list