summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-08 01:08:28 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-08 01:08:28 +0000
commit8dbcfc39cd24ae785768044faf38b519fe769577 (patch)
tree6f0b60c79e6130d35c657ec86477437b247f673c /clang/lib/Serialization/ASTReader.cpp
parent0cf55e99c6810cb624486f2a6ff51886f6e23d2e (diff)
downloadbcm5719-llvm-8dbcfc39cd24ae785768044faf38b519fe769577.tar.gz
bcm5719-llvm-8dbcfc39cd24ae785768044faf38b519fe769577.zip
[libclang] Fix a crash when serializing a preprocessing record that contains
an #include entry that did not resolve to header file. Part of rdar://11007039 llvm-svn: 152275
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 5684949e7eb..03f3e278db7 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -3447,9 +3447,10 @@ PreprocessedEntity *ASTReader::ReadPreprocessedEntity(unsigned Index) {
case PPD_INCLUSION_DIRECTIVE: {
const char *FullFileNameStart = BlobStart + Record[0];
- const FileEntry *File
- = PP.getFileManager().getFile(StringRef(FullFileNameStart,
- BlobLen - Record[0]));
+ StringRef FullFileName(FullFileNameStart, BlobLen - Record[0]);
+ const FileEntry *File = 0;
+ if (!FullFileName.empty())
+ File = PP.getFileManager().getFile(FullFileName);
// FIXME: Stable encoding
InclusionDirective::InclusionKind Kind
OpenPOWER on IntegriCloud