]> granicus.if.org Git - clang/commitdiff
Fix iterator invalidation. PR16935.
authorEli Friedman <eli.friedman@gmail.com>
Tue, 20 Aug 2013 22:01:43 +0000 (22:01 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Tue, 20 Aug 2013 22:01:43 +0000 (22:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188835 91177308-0d34-0410-b5e6-96231b3b80d8

tools/driver/driver.cpp

index 11fa4d289ebe198b2a43cabcf59ba6945af616b3..88863ab0661b3be4e112ca43d86b7dd19e27fa91 100644 (file)
@@ -269,9 +269,10 @@ static void ParseProgName(SmallVectorImpl<const char *> &ArgVector,
     SmallVectorImpl<const char *>::iterator it = ArgVector.begin();
     if (it != ArgVector.end())
       ++it;
-    ArgVector.insert(it, SaveStringInSet(SavedStrings, Prefix));
-    ArgVector.insert(it,
-      SaveStringInSet(SavedStrings, std::string("-target")));
+    const char* Strings[] =
+      { SaveStringInSet(SavedStrings, std::string("-target")),
+        SaveStringInSet(SavedStrings, Prefix) };
+    ArgVector.insert(it, Strings, Strings + llvm::array_lengthof(Strings));
   }
 }