The -Wformat compiler warning option (“Typecheck calls to printf/scanf”) complains about the use of NSIntegers as parameters to printf-style functions … but only on iOS. (Or maybe only on 32-bit builds?) This is a PITA when developing cross-platform code — I do most of my development targeting Mac OS because it’s easier to run, but then I’ll break the build when I accidentally do something like NSInteger code = …..; NSLog(@“Closed with code %ld”, code); which compiles fine for Mac OS, but causes an error on iOS:
/Couchbase/CouchbaseLite/Source/ChangeTracker/CBLWebSocketChangeTracker.m:256:78: error: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead [-Werror,-Wformat] LogTo(ChangeTracker, @"%@: closed with code %ld, reason '%@'", self, effectiveCode, reason); ~~~ ^~~~~~~~~~~~~ (long) I’ve got the exact same warning flags enabled for both platforms. Is there a way I can enable this warning consistently in a build for any platform/word-size? (To be clear: I understand why this behaves differently, due to the [awful] decision to make NSInteger different sizes in 32-bit vs 64-bit. But at a high level it’s an inconsistent warning, when you have multiple platforms to build for.) —Jens
_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (Xcode-users@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com This email sent to arch...@mail-archive.com