diff options
author | Malcolm Parsons <malcolm.parsons@gmail.com> | 2016-12-20 21:26:07 +0000 |
---|---|---|
committer | Malcolm Parsons <malcolm.parsons@gmail.com> | 2016-12-20 21:26:07 +0000 |
commit | d5508b4e89f8e3dcbf83d9eadbb77b2420ea5202 (patch) | |
tree | 75f689e0508a9a83803942bb3ca1ef7fb3fba693 /clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp | |
parent | e3be61c1393604e9e0efa98c4c2352c05b32f61e (diff) | |
download | bcm5719-llvm-d5508b4e89f8e3dcbf83d9eadbb77b2420ea5202.tar.gz bcm5719-llvm-d5508b4e89f8e3dcbf83d9eadbb77b2420ea5202.zip |
[clang-tidy] Add modernize-use-default-member-init check
Summary: Fixes PR18858
Reviewers: alexfh, hokein, aaron.ballman
Subscribers: JDevlieghere, Eugene.Zelenko, Prazek, mgorny, cfe-commits, modocache
Differential Revision: https://reviews.llvm.org/D26750
llvm-svn: 290202
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp new file mode 100644 index 00000000000..f280d12df3a --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init-assignment.cpp @@ -0,0 +1,184 @@ +// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- \ +// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: 1}]}" -- -std=c++11 + +struct S { +}; + +struct PositiveValueChar { + PositiveValueChar() : c0(), c1(), c2(), c3() {} + // CHECK-FIXES: PositiveValueChar() {} + const char c0; + // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: use default member initializer for 'c0' [modernize-use-default-member-init] + // CHECK-FIXES: const char c0 = '\0'; + wchar_t c1; + // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: use default member initializer for 'c1' + // CHECK-FIXES: wchar_t c1 = L'\0'; + char16_t c2; + // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: use default member initializer for 'c2' + // CHECK-FIXES: char16_t c2 = u'\0'; + char32_t c3; + // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: use default member initializer for 'c3' + // CHECK-FIXES: char32_t c3 = U'\0'; +}; + +struct PositiveChar { + PositiveChar() : d('a') {} + // CHECK-FIXES: PositiveChar() {} + char d; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'd' + // CHECK-FIXES: char d = 'a'; +}; + +struct PositiveValueInt { + PositiveValueInt() : i() {} + // CHECK-FIXES: PositiveValueInt() {} + const int i; + // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use default member initializer for 'i' + // CHECK-FIXES: const int i = 0; +}; + +struct PositiveInt { + PositiveInt() : j(1) {} + // CHECK-FIXES: PositiveInt() {} + int j; + // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use default member initializer for 'j' + // CHECK-FIXES: int j = 1; +}; + +struct PositiveUnaryMinusInt { + PositiveUnaryMinusInt() : j(-1) {} + // CHECK-FIXES: PositiveUnaryMinusInt() {} + int j; + // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use default member initializer for 'j' + // CHECK-FIXES: int j = -1; +}; + +struct PositiveUnaryPlusInt { + PositiveUnaryPlusInt() : j(+1) {} + // CHECK-FIXES: PositiveUnaryPlusInt() {} + int j; + // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use default member initializer for 'j' + // CHECK-FIXES: int j = +1; +}; + +struct PositiveValueComplexInt { + PositiveValueComplexInt() : i() {} + // CHECK-FIXES: PositiveValueComplexInt() {} + _Complex int i; + // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use default member initializer for 'i' + // CHECK-FIXES: _Complex int i = 0; +}; + +struct PositiveValueFloat { + PositiveValueFloat() : f() {} + // CHECK-FIXES: PositiveValueFloat() {} + float f; + // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use default member initializer for 'f' + // CHECK-FIXES: float f = 0.0f; +}; + +struct PositiveValueDouble { + PositiveValueDouble() : d() {} + // CHECK-FIXES: PositiveValueDouble() {} + double d; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use default member initializer for 'd' + // CHECK-FIXES: double d = 0.0; +}; + +struct PositiveDouble { + PositiveDouble() : f(2.5463e43) {} + // CHECK-FIXES: PositiveDouble() {} + double f; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use default member initializer for 'f' + // CHECK-FIXES: double f = 2.5463e43; +}; + +struct PositiveValueComplexFloat { + PositiveValueComplexFloat() : f() {} + // CHECK-FIXES: PositiveValueComplexFloat() {} + _Complex float f; + // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: use default member initializer for 'f' + // CHECK-FIXES: _Complex float f = 0.0f; +}; + +struct PositiveValueComplexDouble { + PositiveValueComplexDouble() : f() {} + // CHECK-FIXES: PositiveValueComplexDouble() {} + _Complex double f; + // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: use default member initializer for 'f' + // CHECK-FIXES: _Complex double f = 0.0; +}; + +struct PositiveUnaryMinusDouble { + PositiveUnaryMinusDouble() : f(-2.5463e43) {} + // CHECK-FIXES: PositiveUnaryMinusDouble() {} + double f; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use default member initializer for 'f' + // CHECK-FIXES: double f = -2.5463e43; +}; + +struct PositiveUnaryPlusDouble { + PositiveUnaryPlusDouble() : f(+2.5463e43) {} + // CHECK-FIXES: PositiveUnaryPlusDouble() {} + double f; + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use default member initializer for 'f' + // CHECK-FIXES: double f = +2.5463e43; +}; + +struct PositiveValueBool { + PositiveValueBool() : b() {} + // CHECK-FIXES: PositiveValueBool() {} + bool b; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'b' + // CHECK-FIXES: bool b = false; +}; + +struct PositiveBool { + PositiveBool() : a(true) {} + // CHECK-FIXES: PositiveBool() {} + bool a; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'a' + // CHECK-FIXES: bool a = true; +}; + +struct PositiveValuePointer { + PositiveValuePointer() : p() {} + // CHECK-FIXES: PositiveValuePointer() {} + int *p; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'p' + // CHECK-FIXES: int *p = nullptr; +}; + +struct PositiveNullPointer { + PositiveNullPointer() : q(nullptr) {} + // CHECK-FIXES: PositiveNullPointer() {} + int *q; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'q' + // CHECK-FIXES: int *q = nullptr; +}; + +enum Enum { Foo }; +struct PositiveEnum { + PositiveEnum() : e(Foo) {} + // CHECK-FIXES: PositiveEnum() {} + Enum e; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'e' + // CHECK-FIXES: Enum e = Foo; +}; + +struct PositiveString { + PositiveString() : s("foo") {} + // CHECK-FIXES: PositiveString() {} + const char *s; + // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: use default member initializer for 's' + // CHECK-FIXES: const char *s = "foo"; +}; + +template <typename T> +struct NegativeTemplate { + NegativeTemplate() : t() {} + T t; +}; + +NegativeTemplate<int> nti; +NegativeTemplate<double> ntd; |