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)
llvm-svn: 188835

clang/tools/driver/driver.cpp

index 11fa4d2..88863ab 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));
   }
 }