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 &&RHS) : 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 &&RHS) : 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