Index: clang/lib/Basic/Targets/AArch64.cpp
--- clang/lib/Basic/Targets/AArch64.cpp.orig
+++ clang/lib/Basic/Targets/AArch64.cpp
@@ -1256,13 +1256,16 @@ AArch64TargetInfo::checkCallingConvention(CallingConv 
   case CC_C:
   case CC_Swift:
   case CC_SwiftAsync:
-  case CC_PreserveMost:
-  case CC_PreserveAll:
-  case CC_PreserveNone:
   case CC_OpenCLKernel:
   case CC_AArch64VectorCall:
   case CC_AArch64SVEPCS:
   case CC_Win64:
+    return CCCR_OK;
+  case CC_PreserveMost:
+  case CC_PreserveAll:
+  case CC_PreserveNone:
+    if (getTriple().isOSOpenBSD())
+      return CCCR_Warning;
     return CCCR_OK;
   default:
     return CCCR_Warning;
