From b4bde2acee9a58ef9c0aae8f63e31fe424d0ab36 Mon Sep 17 00:00:00 2001 From: Artem Dergachev Date: Mon, 17 Dec 2018 21:07:38 +0000 Subject: [PATCH] [analyzer] MoveChecker: Squash the bit field because it causes a GCC warning. The warning seems spurious (GCC bug 51242), but the bit field is simply not worth the hassle. rdar://problem/41349073 llvm-svn: 349394 --- clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp index 6436a6c6cba0..6efa2dfbe5b4 100644 --- a/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp @@ -63,9 +63,7 @@ public: private: enum MisuseKind { MK_FunCall, MK_Copy, MK_Move, MK_Dereference }; - // This needs to be unsigned in order to avoid undefined behavior - // when putting it into a tight bitfield. - enum StdObjectKind : unsigned { SK_NonStd, SK_Unsafe, SK_Safe, SK_SmartPtr }; + enum StdObjectKind { SK_NonStd, SK_Unsafe, SK_Safe, SK_SmartPtr }; enum AggressivenessKind { // In any case, don't warn after a reset. AK_Invalid = -1, @@ -81,9 +79,9 @@ private: struct ObjectKind { // Is this a local variable or a local rvalue reference? - bool IsLocal : 1; + bool IsLocal; // Is this an STL object? If so, of what kind? - StdObjectKind StdKind : 2; + StdObjectKind StdKind; }; // STL smart pointers are automatically re-initialized to null when moved