Fix gcc build
This commit is contained in:
@@ -49,11 +49,20 @@ target_include_directories(mytest PRIVATE include)
|
|||||||
target_link_libraries(mytest PRIVATE doctest nanobench simdjson)
|
target_link_libraries(mytest PRIVATE doctest nanobench simdjson)
|
||||||
doctest_discover_tests(mytest)
|
doctest_discover_tests(mytest)
|
||||||
|
|
||||||
|
include(CMakePushCheckState)
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
|
cmake_push_check_state()
|
||||||
|
set(CMAKE_REQUIRED_LINK_OPTIONS -fsanitize=fuzzer-no-link)
|
||||||
|
check_cxx_compiler_flag(-fsanitize=fuzzer-no-link HAS_LIB_FUZZER)
|
||||||
|
cmake_pop_check_state()
|
||||||
|
|
||||||
|
if(HAS_LIB_FUZZER)
|
||||||
add_executable(fuzz src/fuzz.cpp)
|
add_executable(fuzz src/fuzz.cpp)
|
||||||
target_include_directories(fuzz PRIVATE include)
|
target_include_directories(fuzz PRIVATE include)
|
||||||
target_link_libraries(fuzz PRIVATE simdjson)
|
target_link_libraries(fuzz PRIVATE simdjson)
|
||||||
target_compile_options(fuzz PRIVATE -fsanitize=fuzzer)
|
target_compile_options(fuzz PRIVATE -fsanitize=fuzzer)
|
||||||
target_link_options(fuzz PRIVATE -fsanitize=fuzzer)
|
target_link_options(fuzz PRIVATE -fsanitize=fuzzer)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(validate src/validate.cpp)
|
add_executable(validate src/validate.cpp)
|
||||||
target_include_directories(validate PRIVATE include)
|
target_include_directories(validate PRIVATE include)
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ inline WeaselJsonStatus n_string2(Parser3 *self) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
__m128 x;
|
__m128i x;
|
||||||
memcpy(&x, self->buf, 16);
|
memcpy(&x, self->buf, 16);
|
||||||
const uint32_t dubquote =
|
const uint32_t dubquote =
|
||||||
_mm_movemask_epi8(_mm_cmpeq_epi8(_mm_set1_epi8('"'), x));
|
_mm_movemask_epi8(_mm_cmpeq_epi8(_mm_set1_epi8('"'), x));
|
||||||
@@ -493,6 +493,8 @@ inline WeaselJsonStatus n_string2(Parser3 *self) {
|
|||||||
case Tables::CONTINUATION_BYTE:
|
case Tables::CONTINUATION_BYTE:
|
||||||
case Tables::INVALID:
|
case Tables::INVALID:
|
||||||
[[unlikely]] return WeaselJson_REJECT;
|
[[unlikely]] return WeaselJson_REJECT;
|
||||||
|
default:
|
||||||
|
__builtin_unreachable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1085,6 +1087,8 @@ inline WeaselJsonStatus Parser3::keepGoing(Parser3 *self) {
|
|||||||
case T_EOF:
|
case T_EOF:
|
||||||
case N_SYMBOL_COUNT:
|
case N_SYMBOL_COUNT:
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
__builtin_unreachable();
|
||||||
}
|
}
|
||||||
return WeaselJson_AGAIN;
|
return WeaselJson_AGAIN;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user