arphaman marked an inline comment as done. arphaman added a comment. In https://reviews.llvm.org/D48852#1153415, @aaron.ballman wrote:
> > This is acceptable because Darwin guarantees that, despite the watchOS ABI > > differences, sizeof(ptrdiff_t) == sizeof(NS[U]Integer) > > Can you describe these ABI differences please? Also, does Darwin guarantee > that alignof(ptrdiff_t) == alignof(NS[U]Integer)? The ABI difference boils down to the following: Regular 32-bit Darwin targets (like armv7) use 'ptrdiff_t' of type 'int', which matches 'NSInteger'. WatchOS arm iOS target (armv7k) uses 'ptrdiff_t' of type 'long', which doesn't match 'NSInteger' of type 'int'. > Also, does Darwin guarantee that alignof(ptrdiff_t) == alignof(NS[U]Integer)? Yes. ================ Comment at: include/clang/Analysis/Analyses/FormatString.h:265 + enum class TypeKind { Unspecified, SizeT, PtrdiffT }; + TypeKind TK = TypeKind::Unspecified; ---------------- jfb wrote: > "unspecified" seems odd because it *is* specified, we just don't care. How > about something like "NothingSpecial" or "DontCare"? Thanks. Changed to "DontCare". ================ Comment at: test/SemaObjC/format-size-spec-nsinteger.m:4 +// RUN: %clang_cc1 -triple thumbv7k-apple-watchos2.0.0 -fsyntax-only -fblocks -verify %s +// RUN: %clang_cc1 -triple thumbv7k-apple-watchos2.0.0 -fsyntax-only -fblocks -verify -Wformat-pedantic -DPEDANTIC %s ---------------- jfb wrote: > We use a bunch of different triples to test WatchOS: > > 5 thumbv7k-apple-watchos2.0 > 3 i386-apple-watchos4 > 2 x86_64-apple-watchos > 2 thumbv7k-apple-watchos > 2 armv7k-apple-watchos3.0.0 > 2 armv7k-apple-watchos2.0 > 2 armv7k-apple-watchos > 1 x86_64-apple-watchos-simulator > 1 thumbv7k-apple-watchos1.0 > 1 i686-apple-watchos > 1 i386-apple-watchos3.0-simulator > 1 i386-apple-watchos3 > 1 i386-apple-watchos2.1 > 1 i386-apple-watchos2.0-simulator > 1 i386-apple-watchos2.0 > 1 i386-apple-watchos-simulator > 1 i386-apple-watchos > 1 armv7k-apple-watchos2.1 > 1 armv7-apple-watchos > 1 arm64-apple-watchos > 1 aarch64-apple-watchos > > Do we care about v7k only for this test? Yes. armv7k is used to generate thumbv7k . i386 is used by simulator, and doesn't have this ABI issue. We don't support other arches for watches. Repository: rC Clang https://reviews.llvm.org/D48852 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits