diff options
author | Alexander Kornienko <alexfh@google.com> | 2016-04-13 11:35:47 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2016-04-13 11:35:47 +0000 |
commit | 855d97e30caedfa0dea3adf8928f71b16dd8a907 (patch) | |
tree | 675cf9ce2fd58594116ad39ec522b37920e95942 /clang-tools-extra/docs/ReleaseNotes.rst | |
parent | 4191b90c7560c500cb67defbb10c9ab3bc0563c7 (diff) | |
download | bcm5719-llvm-855d97e30caedfa0dea3adf8928f71b16dd8a907.tar.gz bcm5719-llvm-855d97e30caedfa0dea3adf8928f71b16dd8a907.zip |
Complete support for C++ Core Guidelines Type.6: Always initialize a member variable.
Summary: Added the remaining features needed to satisfy C++ Core Guideline Type.6: Always initialize a member variable to cppcoreguidelines-pro-type-member-init. The check now flags all default-constructed uses of record types without user-provided default constructors that would leave their memory in an undefined state. The check suggests value initializing them instead.
Reviewers: flx, alexfh, aaron.ballman
Subscribers: klimek, aaron.ballman, LegalizeAdulthood, cfe-commits
Patch by Michael Miller!
Differential Revision: http://reviews.llvm.org/D18584
llvm-svn: 266191
Diffstat (limited to 'clang-tools-extra/docs/ReleaseNotes.rst')
-rw-r--r-- | clang-tools-extra/docs/ReleaseNotes.rst | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index b4c79199b81..bbf893c5cb6 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -276,6 +276,22 @@ The 3.8 release didn't include release notes for :program:`clang-tidy`. In the * `readability-uniqueptr-delete-release <http://llvm.org/releases/3.8.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-uniqueptr-delete-release.html>`_ +- Updated ``cppcoreguidelines-pro-member-type-member-init`` check + + This check now conforms to C++ Core Guidelines rule Type.6: Always Initialize + a Member Variable. The check examines every record type where construction + might result in an undefined memory state. These record types needing + initialization have at least one default-initialized built-in, pointer, + array or record type matching these criteria or a default-initialized + direct base class of this kind. + + The check has two complementary aspects: + 1. Ensure every constructor for a record type needing initialization + value-initializes all members and direct bases via a combination of + in-class initializers and the member initializer list. + 2. Value-initialize every non-member instance of a record type needing + initialization that lacks a user-provided default constructor, e.g. + a POD. Improvements to modularize -------------------------- |