diff options
author | Malcolm Parsons <malcolm.parsons@gmail.com> | 2019-02-08 19:44:42 +0000 |
---|---|---|
committer | Malcolm Parsons <malcolm.parsons@gmail.com> | 2019-02-08 19:44:42 +0000 |
commit | 297b6a2b6ea68a0a5cda92c785abf292ac571683 (patch) | |
tree | bb6be8a9fc3c55b5bd2be895482e9241e9d10507 /clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp | |
parent | 01e818a97d6afb1983983021c2029aafc4124170 (diff) | |
download | bcm5719-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.cpp | 8 |
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() {} |