summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndexUSRs.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-04-29 21:35:23 +0000
committerTed Kremenek <kremenek@apple.com>2011-04-29 21:35:23 +0000
commit491da68ef9feec71a75feab4b4f092680309f300 (patch)
tree5a2b4509eb3112665b5cafb11cf6d74661a51eeb /clang/tools/libclang/CIndexUSRs.cpp
parentdd937843d3237ae9f09a7ffe77e81433bbb7788f (diff)
downloadbcm5719-llvm-491da68ef9feec71a75feab4b4f092680309f300.tar.gz
bcm5719-llvm-491da68ef9feec71a75feab4b4f092680309f300.zip
Guard in USRGenerator::GenLoc() against null Decl* from invalid code.
llvm-svn: 130541
Diffstat (limited to 'clang/tools/libclang/CIndexUSRs.cpp')
-rw-r--r--clang/tools/libclang/CIndexUSRs.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndexUSRs.cpp b/clang/tools/libclang/CIndexUSRs.cpp
index 68871e94951..9917d2ad210 100644
--- a/clang/tools/libclang/CIndexUSRs.cpp
+++ b/clang/tools/libclang/CIndexUSRs.cpp
@@ -470,6 +470,12 @@ bool USRGenerator::GenLoc(const Decl *D) {
if (generatedLoc)
return IgnoreResults;
generatedLoc = true;
+
+ // Guard against null declarations in invalid code.
+ if (!D) {
+ IgnoreResults = true;
+ return true;
+ }
const SourceManager &SM = AU->getSourceManager();
SourceLocation L = D->getLocStart();
OpenPOWER on IntegriCloud