Fix use-of-invalid-memory found by Valgrind and Windows buildbots. We were inserting a value into a std::vector<> while iterating over it, which could cause the underlying memory to get deallocated and reallocated.  While not the best solution, use an llvm::ImmutableList for now as it is safely supports insertions during iteration.
Fix use-of-invalid-memory found by Valgrind and Windows buildbots.
We were inserting a value into a std::vector<> while iterating over
it, which could cause the underlying memory to get deallocated
and reallocated.  While not the best solution, use an llvm::ImmutableList
for now as it is safely supports insertions during iteration.

git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@99058 91177308-0d34-0410-b5e6-96231b3b80d8

llvm-mirror/clang,apple/swift-clang,apple/swift-clang,llvm-mirror/clang,apple/swift-clang,llvm-mirror/clang,apple/swift-clang,llvm-mirror/clang,llvm-mirror/clang,apple/swift-clang,apple/swift-clang,llvm-mirror/clang,apple/swift-clang,apple/swift-clang,llvm-mirror/clang,apple/swift-clang,llvm-mirror/clang,llvm-mirror/clang,llvm-mirror/clang,apple/swift-clang