   let da = ba as! [Derived]
   expectCrashLater()
   _ = da[2]
+}
+
+func hasBackdeployedConcurrencyRuntime() -> Bool {
+  // If the stdlib we've loaded predates Swift 5.5, then we're running on a back
+  // deployed concurrency runtime, which has the side effect of disabling
+  // regular runtime exclusivity checks.
+  //
+  // This makes the two tests below fall back to older, higher-level exclusivity
+  // checks in the stdlib, which will still trap, but with a different message.
+  if #available(SwiftStdlib 5.5, *) { return false }
+  return true
 }
 
 var ArraySemanticOptzns = TestSuite("ArraySemanticOptzns" + testSuiteSuffix)

  .skip(.custom(
    { _isFastAssertConfiguration() },
    reason: "this trap is not guaranteed to happen in -Ounchecked"))
  .crashOutputMatches(_isDebugAssertConfiguration() ?
    "Fatal access conflict detected." : "")
  .code {
  let v = ViolateInoutSafetyNeedElementTypeCheck()
  expectCrashLater()

  .skip(.custom(
    { _isFastAssertConfiguration() },
    reason: "this trap is not guaranteed to happen in -Ounchecked"))
  .crashOutputMatches(
    !_isDebugAssertConfiguration() ? ""
    : hasBackdeployedConcurrencyRuntime() ? "inout rules were violated"
    : "Fatal access conflict detected."
  )
  .code {
  let v = ViolateInoutSafetySwitchToObjcBuffer()
  expectCrashLater()
