summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-02-14 02:45:18 +0000
committerTed Kremenek <kremenek@apple.com>2010-02-14 02:45:18 +0000
commit184b3383bf2ade55a49c797d49b920102dca62ea (patch)
tree01b41aa693724e2bcb2d61a6bec68e0fbc06e002 /clang/lib/Frontend
parenteff72bb1347a78e8b97cfaae93f777d82857254a (diff)
downloadbcm5719-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.cpp8
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)
OpenPOWER on IntegriCloud