diff options
| author | Ted Kremenek <kremenek@apple.com> | 2010-02-14 02:45:18 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2010-02-14 02:45:18 +0000 |
| commit | 184b3383bf2ade55a49c797d49b920102dca62ea (patch) | |
| tree | 01b41aa693724e2bcb2d61a6bec68e0fbc06e002 /clang/lib/Frontend | |
| parent | eff72bb1347a78e8b97cfaae93f777d82857254a (diff) | |
| download | bcm5719-llvm-184b3383bf2ade55a49c797d49b920102dca62ea.tar.gz bcm5719-llvm-184b3383bf2ade55a49c797d49b920102dca62ea.zip | |
Add new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm-conventions
Currently these checks are intended to be largely syntactical, but may get more
sophisticated over time.
As an initial foray into this brave new world, emit a static analyzer warning
when binding a temporary 'std::string' to an 'llvm::StringRef' where the
lifetime of the 'std::string' does not outlive the 'llvm::StringRef'.
llvm-svn: 96147
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/AnalysisConsumer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Frontend/AnalysisConsumer.cpp b/clang/lib/Frontend/AnalysisConsumer.cpp index 62073269c1b..64fa1d24f73 100644 --- a/clang/lib/Frontend/AnalysisConsumer.cpp +++ b/clang/lib/Frontend/AnalysisConsumer.cpp @@ -446,6 +446,14 @@ static void ActionSecuritySyntacticChecks(AnalysisConsumer &C, CheckSecuritySyntaxOnly(D, BR); } +static void ActionLLVMConventionChecker(AnalysisConsumer &C, + AnalysisManager &mgr, + Decl *D) { + C.DisplayFunction(D); + BugReporter BR(mgr); + CheckLLVMConventions(D, BR); +} + static void ActionWarnObjCDealloc(AnalysisConsumer &C, AnalysisManager& mgr, Decl *D) { if (mgr.getLangOptions().getGCMode() == LangOptions::GCOnly) |

