[PATCH] D89765: [LibTooling][Clang-cast] A Clang LibTool to convert C-style casts to C++ style casts and more.

Ray Zhang via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 19 22:54:42 PDT 2020


oneraynyday created this revision.
oneraynyday added reviewers: chandlerc, aaron.ballman, awarzynski, Quuxplusone.
Herald added subscribers: cfe-commits, jfb, mgorny.
Herald added a project: clang.
oneraynyday requested review of this revision.

Clang-cast is a clang tool that visits the clang AST to emit diagnostics about C style casts.
It classifies a C style cast as one that includes any combination of const/reinterpret/static casts,
one that can't be converted to a C++ cast, or a no-op cast. The tool can...

- Either warn or error on particular types of C-style casts listed above.
- Fix particular types of C-style casts listed above (in-place or in new files)
  - Can emit code that's -pedantic compliant (for e.x. VLA's are used in casting)
- Give a summary of statistics of C style casts in the translation unit.
- Warn on subtleties such as member-pointer casts of different classes and more.

The tool will stop at system headers and will not visit any headers if --no-includes is set.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D89765

Files:
  clang-tools-extra/CMakeLists.txt
  clang-tools-extra/clang-cast/CMakeLists.txt
  clang-tools-extra/clang-cast/Cast.h
  clang-tools-extra/clang-cast/CastOptions.h
  clang-tools-extra/clang-cast/CastUtils.h
  clang-tools-extra/clang-cast/ClangCast.cpp
  clang-tools-extra/clang-cast/Consumer.h
  clang-tools-extra/clang-cast/Matcher.h
  clang-tools-extra/unittests/CMakeLists.txt
  clang-tools-extra/unittests/clang-cast/CMakeLists.txt
  clang-tools-extra/unittests/clang-cast/ClangCXXCastTestCases.h
  clang-tools-extra/unittests/clang-cast/ClangCastTests.cpp
  clang-tools-extra/unittests/clang-cast/ClangChangeQualifierTestCases.h
  clang-tools-extra/unittests/clang-cast/ClangFunctionPtrTestCases.h
  clang-tools-extra/unittests/clang-cast/ClangQualifierTestCases.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D89765.299265.patch
Type: text/x-patch
Size: 113417 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201020/40452315/attachment-0001.bin>


More information about the cfe-commits mailing list