]> granicus.if.org Git - clang/commitdiff
Fix a thinko with llvm::Optional, which is clearly the most dangerous class template...
authorDouglas Gregor <dgregor@apple.com>
Wed, 16 Feb 2011 19:09:24 +0000 (19:09 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 16 Feb 2011 19:09:24 +0000 (19:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125679 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/SourceManager.cpp

index 4b0a3925ca3c2b6a26c5bf1b760415b97e583f6d..044c88dd2bf79845bb7d66ba084a8ec144e64b13 100644 (file)
@@ -1156,10 +1156,14 @@ SourceLocation SourceManager::getLocation(const FileEntry *SourceFile,
         SourceFileName = llvm::sys::path::filename(SourceFile->getName());
         if (*SourceFileName == llvm::sys::path::filename(MainFile->getName())) {
           SourceFileInode = getActualFileInode(SourceFile);
-          if (SourceFileInode && 
-              *SourceFileInode == getActualFileInode(MainFile)) {
-            FirstFID = MainFileID;
-            SourceFile = MainFile;
+          if (SourceFileInode) {
+            if (llvm::Optional<ino_t> MainFileInode 
+                                               = getActualFileInode(MainFile)) {
+              if (*SourceFileInode == *MainFileInode) {
+                FirstFID = MainFileID;
+                SourceFile = MainFile;
+              }
+            }
           }
         }
       }