Author: sammccall Date: Fri Dec 1 20:15:55 2017 New Revision: 319608 URL: http://llvm.org/viewvc/llvm-project?rev=319608&view=rev Log: [clangd] Avoid enum in bitfields, can't satisfy old GCC and new MSVC
Modified: clang-tools-extra/trunk/clangd/FuzzyMatch.h Modified: clang-tools-extra/trunk/clangd/FuzzyMatch.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/FuzzyMatch.h?rev=319608&r1=319607&r2=319608&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/FuzzyMatch.h (original) +++ clang-tools-extra/trunk/clangd/FuzzyMatch.h Fri Dec 1 20:15:55 2017 @@ -45,7 +45,11 @@ private: constexpr static int MaxPat = 63, MaxWord = 127; enum CharRole : unsigned char; // For segmentation. enum CharType : unsigned char; // For segmentation. - enum Action : unsigned char { Miss = 0, Match = 1 }; + // Action should be an enum, but this causes bitfield problems: + // - for MSVC the enum type must be explicitly unsigned for correctness + // - GCC 4.8 complains not all values fit if the type is unsigned + using Action = bool; + constexpr static Action Miss = false, Match = true; bool init(llvm::StringRef Word); void buildGraph(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits