[PATCH] D13446: [PATCH] Add checker discouraging definition of variadic function definitions in C++

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 5 12:36:08 PDT 2015


aaron.ballman created this revision.
aaron.ballman added reviewers: alexfh, sbenza.
aaron.ballman added a subscriber: cfe-commits.

C-style variadic functions (using an ellipsis) can be dangerous in C++ due to the inherit lack of type safety with argument passing. Better alternatives exist, such as function currying (like STL stream objects use), or function parameter packs. This patch adds a checker to diagnose definitions of variadic functions in C++ code, but still allows variadic function declarations, as those can be safely used to good effect for SFINAE patterns.

This patch corresponds to the CERT C++ Coding Standard rule: https://www.securecoding.cert.org/confluence/display/cplusplus/DCL50-CPP.+Do+not+define+a+C-style+variadic+function

http://reviews.llvm.org/D13446

Files:
  clang-tidy/cert/CERTTidyModule.cpp
  clang-tidy/cert/CMakeLists.txt
  clang-tidy/cert/VariadicFunctionDefCheck.cpp
  clang-tidy/cert/VariadicFunctionDefCheck.h
  docs/clang-tidy/checks/cert-variadic-function-def.rst
  docs/clang-tidy/checks/list.rst
  test/clang-tidy/cert-variadic-function-def.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13446.36542.patch
Type: text/x-patch
Size: 6333 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151005/075bfc5b/attachment-0001.bin>


More information about the cfe-commits mailing list