diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 034bb07b05bc..eae369889ce0 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -3596,8 +3596,8 @@ class ARMTargetInfo : public TargetInfo { DoubleAlign = LongLongAlign = LongDoubleAlign = SuitableAlign = 64; const llvm::Triple &T = getTriple(); - // size_t is unsigned long on Darwin and NetBSD. - if (T.isOSDarwin() || T.getOS() == llvm::Triple::NetBSD) + // size_t is unsigned long on MachO-derived environments and NetBSD. + if (T.isOSBinFormatMachO() || T.getOS() == llvm::Triple::NetBSD) SizeType = UnsignedLong; else SizeType = UnsignedInt; diff --git a/clang/test/Sema/arm-darwin-aapcs.cpp b/clang/test/Sema/arm-darwin-aapcs.cpp index 1359a1dc15aa..3a6082ae40e2 100644 --- a/clang/test/Sema/arm-darwin-aapcs.cpp +++ b/clang/test/Sema/arm-darwin-aapcs.cpp @@ -1,4 +1,5 @@ // RUN: %clang_cc1 %s -triple thumbv7-apple-ios -target-abi aapcs -verify -fsyntax-only +// RUN: %clang_cc1 %s -triple thumbv7m-apple-macho -target-abi aapcs -verify -fsyntax-only // expected-no-diagnostics // ARM's AAPCS normally has size_t defined as unsigned int, but on Darwin