summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
diff options
context:
space:
mode:
authorMalcolm Parsons <malcolm.parsons@gmail.com>2019-02-08 19:44:42 +0000
committerMalcolm Parsons <malcolm.parsons@gmail.com>2019-02-08 19:44:42 +0000
commit297b6a2b6ea68a0a5cda92c785abf292ac571683 (patch)
treebb6be8a9fc3c55b5bd2be895482e9241e9d10507 /clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
parent01e818a97d6afb1983983021c2029aafc4124170 (diff)
downloadbcm5719-llvm-297b6a2b6ea68a0a5cda92c785abf292ac571683.tar.gz
bcm5719-llvm-297b6a2b6ea68a0a5cda92c785abf292ac571683.zip
[clang-tidy] Don't use assignment for value-initialized enums
Summary: The modernize-use-default-member-init check crashes when trying to create an assignment value for a value-initialized enum because it isn't a BuiltinType. An enum cannot be initialized by assigning 0 to it unless a cast is added. It could be initialized with an enumerator with the value 0, but there might not be one. Avoid these issues by ignoring the UseAssignment setting for value-initialized enums. Fixes PR35050. Reviewers: aaron.ballman, alexfh, JonasToth Reviewed By: JonasToth Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57852 llvm-svn: 353554
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
index d35ad330c56..825bfa0bfbe 100644
--- a/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
+++ b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
@@ -165,6 +165,14 @@ struct PositiveEnum {
// CHECK-FIXES: Enum e{Foo};
};
+struct PositiveValueEnum {
+ PositiveValueEnum() : e() {}
+ // CHECK-FIXES: PositiveValueEnum() {}
+ Enum e;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use default member initializer for 'e'
+ // CHECK-FIXES: Enum e{};
+};
+
struct PositiveString {
PositiveString() : s("foo") {}
// CHECK-FIXES: PositiveString() {}
OpenPOWER on IntegriCloud