summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-02-17 22:35:26 +0000
committerAnna Zaks <ganna@apple.com>2012-02-17 22:35:26 +0000
commit6348a810fe0d64f7ec99e31a97c1761c0e2d6f8f (patch)
treeec7827b3371a243fc0ae778447f1e7a0909e41e8 /clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
parentd268b0cabaa5fde7b1647940a639f6c26c939004 (diff)
downloadbcm5719-llvm-6348a810fe0d64f7ec99e31a97c1761c0e2d6f8f.tar.gz
bcm5719-llvm-6348a810fe0d64f7ec99e31a97c1761c0e2d6f8f.zip
[analyzer] Generalize function name checking in CString checker.
(Ex: It was not treating __inline_strcpy as strcpy. Will add tests that rely on this later on.) llvm-svn: 150845
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/CheckerContext.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Core/CheckerContext.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp b/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
index 6ad4162b8f0..19942b85909 100644
--- a/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
+++ b/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
@@ -60,10 +60,14 @@ bool CheckerContext::isCLibraryFunction(const FunctionDecl *FD,
return false;
StringRef FName = II->getName();
- if (FName.startswith("__inline"))
- return (FName.find(Name) != StringRef::npos);
+ if (FName.equals(Name))
+ return true;
+
+ if (FName.startswith("__inline") && (FName.find(Name) != StringRef::npos))
+ return true;
- if (FD->isExternC() && FName.equals(Name))
+ if (FName.startswith("__") && FName.endswith("_chk") &&
+ FName.find(Name) != StringRef::npos)
return true;
return false;
OpenPOWER on IntegriCloud