Author: dergachev Date: Mon Dec 17 13:07:38 2018 New Revision: 349394 URL: http://llvm.org/viewvc/llvm-project?rev=349394&view=rev Log: [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 Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MoveChecker.cpp Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MoveChecker.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MoveChecker.cpp?rev=349394&r1=349393&r2=349394&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/MoveChecker.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MoveChecker.cpp Mon Dec 17 13:07:38 2018 @@ -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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits