Use the `%target-swift-5.1-abi-triple` substitution to compile the tests for
deployment to the minimum OS versions required for use of _Concurrency APIs,
instead of disabling availability checking.
These were previously disabled due to the UB that caused the tests to
fail. Now that this has been fixed, restore these tests to running
state in line with the other targets.
Rather than blanket-disabling concurrency tests when we aren't using a
just-built concurrency library, enable them whenever we have a
suitable concurrency runtime, either just-built, in the OS, or via the
back-deployment libraries.
The VS2017 started to succeed while executing
test/IRGen/async/throwing.swift, but it is marked as XFAIL for
OS=windows-msvc. To avoid failing the test in VS2019, only mark it as
unsupported in MSVC_VER=15.0 (VS2017), which will avoid running the
test.
`async_task_detached.swift` seems to fail with an `ACCESS_VIOLATION`
exit status, but seems to pass in VS2019, so also mark it as
`UNSUPPORTED` for VS2017 only.
All these problems are tracked in SR-14333.
Previously, the error stored in the async context was of type SwiftError
*. In order to enable the context to be callee released, make it
indirect and change its type to SwiftError **.
rdar://71378532