forked from OSchip/llvm-project
5f70c473c9
Summary: In contrast to Google C++, Objective-C often uses built-in integer types other than `int`. In fact, the Objective-C runtime itself defines the types NSInteger¹ and NSUInteger² which are variant types depending on the target architecture. The Objective-C style guide indicates that usage of system types with variant sizes is appropriate when handling values provided by system interfaces³. Objective-C++ is commonly the result of conversion from Objective-C to Objective-C++ for the purpose of integrating C++ functionality. The opposite of Objective-C++ being used to expose Objective-C functionality to C++ is less common, potentially because Objective-C has a signficantly more uneven presence on different platforms compared to C++. This generally predisposes Objective-C++ to commonly being more Objective-C than C++. Forcing Objective-C++ developers to perform conversions between variant system types and fixed size integer types depending on target architecture when Objective-C++ commonly uses variant system types from Objective-C is likely to lead to more bugs and overhead than benefit. For that reason, this change proposes to disable google-runtime-int in Objective-C++. [1] https://developer.apple.com/documentation/objectivec/nsinteger?language=objc [2] https://developer.apple.com/documentation/objectivec/nsuinteger?language=objc [3] "Types long, NSInteger, NSUInteger, and CGFloat vary in size between 32- and 64-bit builds. Use of these types is appropriate when handling values exposed by system interfaces, but they should be avoided for most other computations." https://github.com/google/styleguide/blob/gh-pages/objcguide.md#types-with-inconsistent-sizes Subscribers: xazax.hun, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D59336 llvm-svn: 356627 |
||
---|---|---|
.. | ||
AvoidCStyleCastsCheck.cpp | ||
AvoidCStyleCastsCheck.h | ||
AvoidThrowingObjCExceptionCheck.cpp | ||
AvoidThrowingObjCExceptionCheck.h | ||
AvoidUnderscoreInGoogletestNameCheck.cpp | ||
AvoidUnderscoreInGoogletestNameCheck.h | ||
CMakeLists.txt | ||
DefaultArgumentsCheck.cpp | ||
DefaultArgumentsCheck.h | ||
ExplicitConstructorCheck.cpp | ||
ExplicitConstructorCheck.h | ||
ExplicitMakePairCheck.cpp | ||
ExplicitMakePairCheck.h | ||
FunctionNamingCheck.cpp | ||
FunctionNamingCheck.h | ||
GlobalNamesInHeadersCheck.cpp | ||
GlobalNamesInHeadersCheck.h | ||
GlobalVariableDeclarationCheck.cpp | ||
GlobalVariableDeclarationCheck.h | ||
GoogleTidyModule.cpp | ||
IntegerTypesCheck.cpp | ||
IntegerTypesCheck.h | ||
NonConstReferences.cpp | ||
NonConstReferences.h | ||
OverloadedUnaryAndCheck.cpp | ||
OverloadedUnaryAndCheck.h | ||
TodoCommentCheck.cpp | ||
TodoCommentCheck.h | ||
UnnamedNamespaceInHeaderCheck.cpp | ||
UnnamedNamespaceInHeaderCheck.h | ||
UsingNamespaceDirectiveCheck.cpp | ||
UsingNamespaceDirectiveCheck.h |