hanchenye-llvm-project/clang-tools-extra/docs
Stephane Moore 5f70c473c9 [clang-tidy] Disable google-runtime-int in Objective-C++ 🔓
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
2019-03-20 23:05:00 +00:00
..
_static Added more detailed documentation for clangd 2019-02-27 15:53:05 +00:00
_templates Added more detailed documentation for clangd 2019-02-27 15:53:05 +00:00
clang-tidy [clang-tidy] Add additional patterns to the abseil-duration-unnecessary-conversion check. 2019-03-14 13:38:16 +00:00
clangd [clangd] Fix a typo in doc. 2019-03-13 15:22:31 +00:00
CMakeLists.txt
ModularizeUsage.rst
README.txt Updated the documentation build instructions for the current CMake build system 2019-02-25 13:03:44 +00:00
ReleaseNotes.rst [clang-tidy] Disable google-runtime-int in Objective-C++ 🔓 2019-03-20 23:05:00 +00:00
clang-doc.rst [Documentation] Use HTTPS whenever possible. 2019-01-22 19:19:48 +00:00
clang-modernize.rst
clang-rename.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
clang-tidy.rst [Documentation] Use HTTPS whenever possible. 2019-01-22 19:19:48 +00:00
clangd.rst [clangd] Redirect clangd page. 2019-03-08 09:56:42 +00:00
conf.py Revert "[clang-format] [PR25010] AllowShortIfStatementsOnASingleLine not working if an "else" statement is present" 2019-03-13 08:15:03 +00:00
cpp11-migrate.rst
doxygen-mainpage.dox
doxygen.cfg.in [clang-tools-extra] Cleanup documentation routine 2018-07-04 10:18:03 +00:00
include-fixer.rst [Documentation] Use HTTPS whenever possible. 2019-01-22 19:19:48 +00:00
index.rst Added more detailed documentation for clangd 2019-02-27 15:53:05 +00:00
make.bat
modularize.rst [Documentation] Use HTTPS whenever possible. 2019-01-22 19:19:48 +00:00
pp-trace.rst [pp-trace] Delete -ignore and add a new option -callbacks 2019-03-18 13:30:17 +00:00

README.txt

----------------------------------
Documentation in clang-tools-extra
----------------------------------

To generate documentation in HTML format from files in clang-tools-extra/docs,
build the docs-clang-tools-html target.

To generate documentation from the source code using Doxygen, build the
doxygen-clang-tools target.