Author: idrissrio Date: Tue Jul 17 07:35:15 2018 New Revision: 337286 URL: http://llvm.org/viewvc/llvm-project?rev=337286&view=rev Log: [clang-tidy: modernize] Fix modernize-use-equals-default with {} brackets list initialization: patch
Summary: Hello, i would like to suggest a fix for one of the checks in clang-tidy. The bug was reported in https://bugs.llvm.org/show_bug.cgi?id=38039 where you can find more information. ``` struct UOB{ UOB(const UOB &Other):j{Other.j}{} int j; }; ``` In this case the check modernize-use-equals-default does not detect copy constructors that can be defaulted; that should be: ``` struct UOB{ UOB(const UOB &Other) = default; int j; }; ``` Reviewers: aaron.ballman, hokein, alexfh Reviewed By: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D49356 Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDefaultCheck.cpp clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-default-copy.cpp Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDefaultCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDefaultCheck.cpp?rev=337286&r1=337285&r2=337286&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDefaultCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/modernize/UseEqualsDefaultCheck.cpp Tue Jul 17 07:35:15 2018 @@ -97,6 +97,7 @@ static bool isCopyConstructorAndCanBeDef isMemberInitializer(), forField(equalsNode(Field)), withInitializer(anyOf( AccessToFieldInParam, + initListExpr(has(AccessToFieldInParam)), cxxConstructExpr(allOf( hasDeclaration(cxxConstructorDecl(isCopyConstructor())), argumentCountIs(1), Modified: clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-default-copy.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-default-copy.cpp?rev=337286&r1=337285&r2=337286&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-default-copy.cpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-equals-default-copy.cpp Tue Jul 17 07:35:15 2018 @@ -497,3 +497,11 @@ STRUCT_WITH_COPY_CONSTRUCT(unsigned char STRUCT_WITH_COPY_ASSIGN(unsigned char, Hex8CopyAssign) // CHECK-MESSAGES: :[[@LINE-1]]:1: warning: use '= default' to define a trivial copy-assignment operator // CHECK-MESSAGES: :[[@LINE-9]]:40: note: + +// Use of braces +struct UOB{ + UOB(const UOB &Other):j{Other.j}{} + // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use '= default' to define a trivial copy constructor [modernize-use-equals-default] + // CHECK-FIXES: UOB(const UOB &Other)= default; + int j; +}; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits