diff --git a/CMakeLists.txt b/CMakeLists.txt index 453b1276a1..dfa3ece7cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -873,6 +873,18 @@ if(NOT MSVC) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111073 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-stringop-overflow") endif() + if(CMAKE_BUILD_TYPE STREQUAL "Release") + # Disable specific warnings due to GCC bug for version 12 + if(CMAKE_CXX_COMPILER_VERSION STREQUAL "12") + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-restrict") + endif() + # Disable specific warnings due to GCC bug for versions >= 13 + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13) + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105616 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized") + endif() + endif() endif() if(USE_SANITIZE_UB) diff --git a/opencl/test/unit_test/linux/CMakeLists.txt b/opencl/test/unit_test/linux/CMakeLists.txt index a055fd4b79..5c93cea112 100644 --- a/opencl/test/unit_test/linux/CMakeLists.txt +++ b/opencl/test/unit_test/linux/CMakeLists.txt @@ -44,6 +44,8 @@ endif() target_link_libraries(igdrcl_${target_name} ${NEO_MOCKABLE_LIB_NAME} ${NEO_SHARED_MOCKABLE_LIB_NAME} igdrcl_mocks ${NEO_EXTRA_LIBS} gmock-gtest) +target_compile_options(igdrcl_${target_name} PRIVATE -O0) + set_property(TARGET igdrcl_${target_name} APPEND_STRING PROPERTY COMPILE_FLAGS ${ASAN_FLAGS}) target_include_directories(igdrcl_${target_name} PRIVATE ${NEO_SHARED_TEST_DIRECTORY}/common/test_macros/header${BRANCH_DIR_SUFFIX} diff --git a/shared/test/unit_test/device_binary_format/ar/ar_decoder_tests.cpp b/shared/test/unit_test/device_binary_format/ar/ar_decoder_tests.cpp index 596ae6a2c6..c84091f06d 100644 --- a/shared/test/unit_test/device_binary_format/ar/ar_decoder_tests.cpp +++ b/shared/test/unit_test/device_binary_format/ar/ar_decoder_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -71,7 +71,14 @@ TEST(ArDecoderReadLongFileName, GivenOffsetThenParsesCorrectString) { auto name0 = readLongFileName(names, 0U); auto name1 = readLongFileName(names, 6U); auto name2 = readLongFileName(names, 10U); +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif auto name3 = readLongFileName(names, 40U); +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif EXPECT_EQ(names, name0.begin()); EXPECT_EQ(5U, name0.size()); diff --git a/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp b/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp index 5513db293a..0ff96f52bf 100644 --- a/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp +++ b/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp @@ -214,7 +214,14 @@ TEST(YamlConsumeNumberOrSign, GivenInvalidCharacterThenReturnCurrentParsePositio bool isSignOrNumber = NEO::Yaml::isSign(static_cast(c)) || NEO::Yaml::isNumber(static_cast(c)); char numberStr[2] = {static_cast(c), '\0'}; auto expected = numberStr + (isSignOrNumber ? 1 : 0); +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif EXPECT_EQ(expected, NEO::Yaml::consumeNumberOrSign(ConstStringRef::fromArray(numberStr), numberStr)) << c; +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif } } diff --git a/shared/test/unit_test/kernel/kernel_arg_metadata_tests.cpp b/shared/test/unit_test/kernel/kernel_arg_metadata_tests.cpp index dca4036939..1a15cf3d57 100644 --- a/shared/test/unit_test/kernel/kernel_arg_metadata_tests.cpp +++ b/shared/test/unit_test/kernel/kernel_arg_metadata_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -97,8 +97,15 @@ TEST(KernelArgMetadata, WhenParseTypeQualifiersIsCalledThenQualifierIsProperlyPa TEST(KernelArgMetadata, WhenParseLimitedStringIsCalledThenReturnedStringDoesntContainExcessiveTrailingZeroes) { char str1[] = "abcd\0\0\0after\0"; +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" +#endif EXPECT_STREQ("abcd", NEO::parseLimitedString(str1, sizeof(str1)).c_str()); EXPECT_EQ(4U, NEO::parseLimitedString(str1, sizeof(str1)).size()); +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif EXPECT_STREQ("ab", NEO::parseLimitedString(str1, 2).c_str()); EXPECT_EQ(2U, NEO::parseLimitedString(str1, 2).size());