r171828 introduces a regression where ARCMT uses a std::list iterator after invalidation. From the email thread: "The use of iterators here is problematic because handleProtectedScopeError can invalidate the iterators. This is causing a failed assertion in debug build of MSVC11 where there are checked iterators involved. From what I am seeing, handleProtectedScopeError has a Transaction object, which on destruction winds up calling CapturedDiagList::clearDiagnostic, and that calls erase on the list, which invalidates the iterators. Attempting to perform the comparison then fires the assert. I'm not entirely certain of the best way to solve this issue, but I figured I would mention that it causes problems. We have a test case already demonstrating the issue with test\ARCMT\protected-scope.m"
cloned to <rdar://problem/13411432>
Any updates?
Should be fixed in r178500