diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h index 8fde16c7..dc402397 100644 --- a/include/rapidjson/document.h +++ b/include/rapidjson/document.h @@ -30,6 +30,7 @@ RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant #ifdef __clang__ RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) #endif #ifdef __GNUC__ @@ -724,9 +725,7 @@ public: else return data_.n.u64 == rhs.data_.n.u64; - case kNullType: - case kFalseType: - case kTrueType: + default: return true; } } @@ -2106,10 +2105,7 @@ GenericValue::GenericValue(const GenericValue(&rhs.data_); break; diff --git a/include/rapidjson/reader.h b/include/rapidjson/reader.h index 4cb7d507..b7041540 100644 --- a/include/rapidjson/reader.h +++ b/include/rapidjson/reader.h @@ -42,6 +42,7 @@ RAPIDJSON_DIAG_OFF(4702) // unreachable code #ifdef __clang__ RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) #endif #ifdef __GNUC__ @@ -1417,9 +1418,7 @@ private: } } - case IterativeParsingStartState: - case IterativeParsingFinishState: - case IterativeParsingValueState: + default: // This branch is for IterativeParsingValueState actually. // Use `default:` rather than // `case IterativeParsingValueState:` is for code coverage. @@ -1456,13 +1455,7 @@ private: case IterativeParsingMemberKeyState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell()); return; case IterativeParsingMemberValueState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); return; case IterativeParsingElementState: RAPIDJSON_PARSE_ERROR(kParseErrorArrayMissCommaOrSquareBracket, is.Tell()); return; - case IterativeParsingErrorState: - case IterativeParsingKeyValueDelimiterState: - case IterativeParsingObjectFinishState: - case IterativeParsingArrayInitialState: - case IterativeParsingElementDelimiterState: - case IterativeParsingArrayFinishState: - case IterativeParsingValueState: RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); return; + default: RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); return; } } diff --git a/test/unittest/unittest.h b/test/unittest/unittest.h index 2aaa8cdf..60624107 100644 --- a/test/unittest/unittest.h +++ b/test/unittest/unittest.h @@ -19,8 +19,10 @@ #ifndef __STDC_CONSTANT_MACROS #ifdef __clang__ #pragma GCC diagnostic push +#if __has_warning("-Wreserved-id-macro") #pragma GCC diagnostic ignored "-Wreserved-id-macro" #endif +#endif # define __STDC_CONSTANT_MACROS 1 // required by C++ standard