[PATCH] D28973: Supresses misc-move-constructor-init warning for const fields.
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=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 &) : 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 &) : 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
[PATCH] D28973: Supresses misc-move-constructor-init warning for const fields.
alexfh accepted this revision. alexfh added a comment. This revision is now accepted and ready to land. LG. I'll commit the patch for you. https://reviews.llvm.org/D28973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D28973: Supresses misc-move-constructor-init warning for const fields.
lethalantidote updated this revision to Diff 87484. lethalantidote marked an inline comment as done. lethalantidote added a comment. - Addresses alexfh's comments. https://reviews.llvm.org/D28973 Files: clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp Index: clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp === --- clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,16 @@ N(N &) : 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/clang-tidy/misc/MoveConstructorInitCheck.cpp === --- clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/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/test/clang-tidy/misc-move-constructor-init.cpp === --- clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,16 @@ N(N &) : 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/clang-tidy/misc/MoveConstructorInitCheck.cpp === --- clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/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; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D28973: Supresses misc-move-constructor-init warning for const fields.
alexfh requested changes to this revision. alexfh added inline comments. This revision now requires changes to proceed. Comment at: clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp:88 +struct O { + O(O&& other) : b(other.b) {} // ok + const B b; The test is fine, but it would also pass, if the check verified constness of the field being initialized. I'd suggest adding another one that shows a const-qualified initializer used to initialize a non-const field. Comment at: clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp:90 + const B b; +} + Missing semicolon. I wonder how the test still passes. It passes, doesn't it? https://reviews.llvm.org/D28973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D28973: Supresses misc-move-constructor-init warning for const fields.
lethalantidote created this revision. Supresses misc-move-constructor init warning for const fields. https://reviews.llvm.org/D28973 Files: clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp Index: clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp === --- clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,11 @@ N(N &) : Mem(move(RHS.Mem)) {} }; +struct O { + O(O&& other) : b(other.b) {} // ok + const B b; +} + struct Movable { Movable(Movable &&) = default; Movable(const Movable &) = default; Index: clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp === --- clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/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/test/clang-tidy/misc-move-constructor-init.cpp === --- clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp +++ clang-tools-extra/test/clang-tidy/misc-move-constructor-init.cpp @@ -84,6 +84,11 @@ N(N &) : Mem(move(RHS.Mem)) {} }; +struct O { + O(O&& other) : b(other.b) {} // ok + const B b; +} + struct Movable { Movable(Movable &&) = default; Movable(const Movable &) = default; Index: clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp === --- clang-tools-extra/clang-tidy/misc/MoveConstructorInitCheck.cpp +++ clang-tools-extra/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; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits