]> granicus.if.org Git - clang/commitdiff
Fix use of invalidated iterator introduced by r369680.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 26 Aug 2019 17:31:06 +0000 (17:31 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 26 Aug 2019 17:31:06 +0000 (17:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@369932 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/FileManager.cpp

index 7138f6677e36942bf714b31f6d700d3c0d98ec7d..649e4d2239bc1b77e3c8c1060fcf3929012f9ff9 100644 (file)
@@ -263,15 +263,15 @@ FileManager::getFileRef(StringRef Filename, bool openFile, bool CacheFailure) {
   // If the name returned by getStatValue is different than Filename, re-intern
   // the name.
   if (Status.getName() != Filename) {
-    auto &NamedFileEnt =
+    auto &NewNamedFileEnt =
         *SeenFileEntries.insert({Status.getName(), &UFE}).first;
-    assert((*NamedFileEnt.second).get<FileEntry *>() == &UFE &&
+    assert((*NewNamedFileEnt.second).get<FileEntry *>() == &UFE &&
            "filename from getStatValue() refers to wrong file");
-    InterndFileName = NamedFileEnt.first().data();
+    InterndFileName = NewNamedFileEnt.first().data();
     // In addition to re-interning the name, construct a redirecting seen file
     // entry, that will point to the name the filesystem actually wants to use.
     StringRef *Redirect = new (CanonicalNameStorage) StringRef(InterndFileName);
-    SeenFileInsertResult.first->second = Redirect;
+    NamedFileEnt.second = Redirect;
   }
 
   if (UFE.isValid()) { // Already have an entry with this inode, return it.