Chromium代码里编撰定制的clang插件做C++函数的静态样式检查

Chromium代码里编写定制的clang插件做C++函数的静态样式检查

commit80f54dc1ab629289946237227e5706e19b7e7594
authordcheng Wed Jan 07 19:13:49 2015
committerCommit bot Wed Jan 07 19:15:28 2015

Implement the Clang plugin as a RecursiveASTVisitor.

The current ASTConsumer class checker can be non-deterministic
in its class verification. The exact reason isn't clear, but it's
kind of nice to have a deterministic checker.

Using RecursiveASTVisitor also makes it easier to write more
interesting checks if needed in the future, since it also visits
statements, etc. Since the RecursiveASTVisitor implementation
catches strictly more things than the ASTConsumer version, it's
gated behind a flag. This flag/the legacy ASTConsumer version
will be removed once Chromium code can compile cleanly with the
AST visitor.

BUG=436357

Review URL: https://codereview.chromium.org/751233002

Cr-Commit-Position: refs/heads/master@{#310331}
  • tools/clang/plugins/ChromeClassTester.h[diff]
  • tools/clang/plugins/FindBadConstructsAction.cpp[diff]
  • tools/clang/plugins/FindBadConstructsConsumer.cpp[diff]
  • tools/clang/plugins/FindBadConstructsConsumer.h[diff]
  • tools/clang/plugins/Options.h[diff]
  • tools/clang/plugins/tests/test.sh[diff]

使用clang插件做静态检查