This revision was automatically updated to reflect the committed changes. Closed by commit rL294459: [clang-tidy] Supresses misc-move-constructor-init warning for const fields. (authored by alexfh).
Changed prior to commit: https://reviews.llvm.org/D28973?vs=87484&id=87655#toc Repository: rL LLVM https://reviews.llvm.org/D28973 Files: clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp Index: clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp @@ -57,6 +57,9 @@ if (QT.isTriviallyCopyableType(*Result.Context)) return; + if (QT.isConstQualified()) + return; + const auto *RD = QT->getAsCXXRecordDecl(); if (RD && RD->isTriviallyCopyable()) return; Index: clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,16 @@ N(N &&RHS) : Mem(move(RHS.Mem)) {} }; +struct O { + O(O&& other) : b(other.b) {} // ok + const B b; +}; + +struct P { + P(O&& other) : b(other.b) {} // ok + B b; +}; + struct Movable { Movable(Movable &&) = default; Movable(const Movable &) = default;
Index: clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/misc/MoveConstructorInitCheck.cpp @@ -57,6 +57,9 @@ if (QT.isTriviallyCopyableType(*Result.Context)) return; + if (QT.isConstQualified()) + return; + const auto *RD = QT->getAsCXXRecordDecl(); if (RD && RD->isTriviallyCopyable()) return; Index: clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/trunk/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,16 @@ N(N &&RHS) : Mem(move(RHS.Mem)) {} }; +struct O { + O(O&& other) : b(other.b) {} // ok + const B b; +}; + +struct P { + P(O&& other) : b(other.b) {} // ok + B b; +}; + struct Movable { Movable(Movable &&) = default; Movable(const Movable &) = default;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits