[clang-tidy] add new check cppcoreguidelines-pro-type-cstyle-cast
Summary: This check flags all use of c-style casts that perform a static_cast downcast, const_cast, or reinterpret_cast. Use of these casts can violate type safety and cause the program to access a variable that is actually of type X to be accessed as if it were of an unrelated type Z. Note that a C-style (T)expression cast means to perform the first of the following that is possible: a const_cast, a static_cast, a static_cast followed by a const_cast, a reinterpret_cast, or a reinterpret_cast followed by a const_cast. This rule bans (T)expression only when used to perform an unsafe cast. This rule is part of the "Type safety" profile of the C++ Core Guidelines, see https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#-type4-dont-use-c-style-texpression-casts-that-would-perform-a-static_cast-downcast-const_cast-or-reinterpret_cast. Reviewers: alexfh, sbenza, bkramer, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D14096 llvm-svn: 252425
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "ProBoundsArrayToPointerDecayCheck.h"
|
||||
#include "ProBoundsPointerArithmeticCheck.h"
|
||||
#include "ProTypeConstCastCheck.h"
|
||||
#include "ProTypeCstyleCastCheck.h"
|
||||
#include "ProTypeReinterpretCastCheck.h"
|
||||
#include "ProTypeStaticCastDowncastCheck.h"
|
||||
#include "ProTypeUnionAccessCheck.h"
|
||||
@@ -33,6 +34,8 @@ public:
|
||||
"cppcoreguidelines-pro-bounds-pointer-arithmetic");
|
||||
CheckFactories.registerCheck<ProTypeConstCastCheck>(
|
||||
"cppcoreguidelines-pro-type-const-cast");
|
||||
CheckFactories.registerCheck<ProTypeCstyleCastCheck>(
|
||||
"cppcoreguidelines-pro-type-cstyle-cast");
|
||||
CheckFactories.registerCheck<ProTypeReinterpretCastCheck>(
|
||||
"cppcoreguidelines-pro-type-reinterpret-cast");
|
||||
CheckFactories.registerCheck<ProTypeStaticCastDowncastCheck>(
|
||||
|
||||
Reference in New Issue
Block a user