From: Argyrios Kyrtzidis Date: Fri, 24 May 2013 23:47:43 +0000 (+0000) Subject: Make isBeforeInTranslationUnit consistent in the face of failures to get a valid... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ecdbbfa1cd26c0b0f322366973c7dae51c1e83df;p=clang Make isBeforeInTranslationUnit consistent in the face of failures to get a valid FileID. Suggested by Jordan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182695 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index a4f4f9d366..dfd2a1baf4 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -2039,8 +2039,11 @@ bool SourceManager::isBeforeInTranslationUnit(SourceLocation LHS, std::pair LOffs = getDecomposedLoc(LHS); std::pair ROffs = getDecomposedLoc(RHS); + // getDecomposedLoc may have failed to return a valid FileID because, e.g. it + // is a serialized one referring to a file that was removed after we loaded + // the PCH. if (LOffs.first.isInvalid() || ROffs.first.isInvalid()) - return false; + return LOffs.first.isInvalid(); // If the source locations are in the same file, just compare offsets. if (LOffs.first == ROffs.first)