From 99520c4134a090947cacba4c0006be74400e19f4 Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:22:06 +0100 Subject: [PATCH 1/8] Add optimization flags for different build types in CMake configuration --- configs/arch/armv7/cortex-m7/tools-cfg.cmake | 24 ++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/configs/arch/armv7/cortex-m7/tools-cfg.cmake b/configs/arch/armv7/cortex-m7/tools-cfg.cmake index b92108a..5cf523e 100644 --- a/configs/arch/armv7/cortex-m7/tools-cfg.cmake +++ b/configs/arch/armv7/cortex-m7/tools-cfg.cmake @@ -73,6 +73,14 @@ endif() # ============================================================================== # CMake Configuration # ============================================================================== +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(OPTIMIZATION_FLAGS "-Og" CACHE STRING "Optimization flags" FORCE) +elseif(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + set(OPTIMIZATION_FLAGS "-O0" CACHE STRING "Optimization flags" FORCE) +else() + set(OPTIMIZATION_FLAGS "-O0" CACHE STRING "Optimization flags" FORCE) +endif() + set(DMOD_ARCH "armv7-cortex-m7" CACHE STRING "Target architecture") set(DMOD_CPU "cortex-m7" CACHE STRING "Target CPU") set(COMMON_DEFINE_FLAGS "-DDMOD_ARCH=\\\"${DMOD_ARCH}\\\" -DDMOD_CPU=\\\"${DMOD_CPU}\\\"") @@ -92,10 +100,18 @@ set(CMAKE_GDB "${ARM_GDB}" CACHE STRING "GDB") set(MAKE make CACHE STRING "Make") set(MKDIR mkdir CACHE STRING "Mkdir") set(RM rm CACHE STRING "Rm") -set(CMAKE_C_FLAGS "-Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") -set(CMAKE_CXX_FLAGS "-Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") -set(CMAKE_ASM_FLAGS "${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") -set(CMAKE_ASM_FLAGS_DEBUG "${CPUCONFIG_ASMFLAGS} -g" CACHE STRING "ASM compiler flags for Debug") +set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") +set(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the C compiler during DEBUG builds." FORCE) +set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELEASE builds." FORCE) +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") +set(CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the CXX compiler during DEBUG builds." FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELEASE builds." FORCE) +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_ASM_FLAGS "${OPTIMIZATION_FLAGS} ${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") +set(CMAKE_ASM_FLAGS_DEBUG "${CPUCONFIG_ASMFLAGS} -Og -g" CACHE STRING "ASM compiler flags for Debug" FORCE) +set(CMAKE_ASM_FLAGS_RELEASE "${CPUCONFIG_ASMFLAGS} -O2" CACHE STRING "ASM compiler flags for Release" FORCE) +set(CMAKE_ASM_FLAGS_RELWITHDEBINFO "${CPUCONFIG_ASMFLAGS} -O2 -g" CACHE STRING "ASM compiler flags for RelWithDebInfo" FORCE) set(CMAKE_EXE_LINKER_FLAGS "${CPUCONFIG_LDFLAGS}" CACHE STRING "Linker flags") set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY" CACHE STRING "Try compile target type") \ No newline at end of file From 9be9d5e5b7e0c5c2e01f8963068f17aee26a682b Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:25:53 +0100 Subject: [PATCH 2/8] Update compiler flags to disable optimization for RELEASE and RELWITHDEBINFO builds --- configs/arch/armv7/cortex-m7/tools-cfg.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configs/arch/armv7/cortex-m7/tools-cfg.cmake b/configs/arch/armv7/cortex-m7/tools-cfg.cmake index 5cf523e..643a815 100644 --- a/configs/arch/armv7/cortex-m7/tools-cfg.cmake +++ b/configs/arch/armv7/cortex-m7/tools-cfg.cmake @@ -102,12 +102,12 @@ set(MKDIR mkdir CACHE STRING "Mkdir") set(RM rm CACHE STRING "Rm") set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") set(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the C compiler during DEBUG builds." FORCE) -set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELEASE builds." FORCE) -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_C_FLAGS_RELEASE "-O0 -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELEASE builds." FORCE) +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 -g -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELWITHDEBINFO builds." FORCE) set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") set(CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the CXX compiler during DEBUG builds." FORCE) -set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELEASE builds." FORCE) -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-O0 -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELEASE builds." FORCE) +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 -g -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELWITHDEBINFO builds." FORCE) set(CMAKE_ASM_FLAGS "${OPTIMIZATION_FLAGS} ${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") set(CMAKE_ASM_FLAGS_DEBUG "${CPUCONFIG_ASMFLAGS} -Og -g" CACHE STRING "ASM compiler flags for Debug" FORCE) set(CMAKE_ASM_FLAGS_RELEASE "${CPUCONFIG_ASMFLAGS} -O2" CACHE STRING "ASM compiler flags for Release" FORCE) From 87f57526dd5c76bb06b25e1c5d3303c939ab0e1d Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:41:04 +0100 Subject: [PATCH 3/8] Update optimization flags for Debug, Release, and RelWithDebInfo builds in CMake configuration --- configs/arch/armv7/cortex-m4/tools-cfg.cmake | 17 ++++++++++++----- configs/arch/armv7/cortex-m7/tools-cfg.cmake | 14 +++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/configs/arch/armv7/cortex-m4/tools-cfg.cmake b/configs/arch/armv7/cortex-m4/tools-cfg.cmake index f2f55c4..7478fc2 100644 --- a/configs/arch/armv7/cortex-m4/tools-cfg.cmake +++ b/configs/arch/armv7/cortex-m4/tools-cfg.cmake @@ -73,11 +73,18 @@ endif() # ============================================================================== # CMake Configuration # ============================================================================== +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(OPTIMIZATION_FLAGS "-Og" CACHE STRING "Optimization flags" FORCE) +elseif(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + set(OPTIMIZATION_FLAGS "-O2" CACHE STRING "Optimization flags" FORCE) +else() + set(OPTIMIZATION_FLAGS "-O2" CACHE STRING "Optimization flags" FORCE) +endif() set(DMOD_ARCH "armv7-cortex-m4" CACHE STRING "Target architecture") set(DMOD_CPU "cortex-m4" CACHE STRING "Target CPU") set(COMMON_DEFINE_FLAGS "-DDMOD_ARCH=\\\"${DMOD_ARCH}\\\" -DDMOD_CPU=\\\"${DMOD_CPU}\\\"") set(FPU_FLAGS "-mfpu=fpv4-sp-d16 -mfloat-abi=hard" CACHE STRING "FPU configuration flags") -set(CPUCONFIG_CFLAGS "-mcpu=cortex-m4 -mthumb -mno-unaligned-access -DGCC_ARMCM4 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C compiler flags") +set(CPUCONFIG_CFLAGS "-fno-builtin-memset-mcpu=cortex-m4 -mthumb -mno-unaligned-access -DGCC_ARMCM4 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C compiler flags") set(CPUCONFIG_CXXFLAGS "-mcpu=cortex-m4 -mthumb -mno-unaligned-access -DGCC_ARMCM4 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C++ compiler flags") set(CPUCONFIG_ASMFLAGS "-mcpu=cortex-m4 -mthumb -mno-unaligned-access -DGCC_ARMCM4 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "ASM compiler flags") set(CPUCONFIG_LDFLAGS "-mcpu=cortex-m4 -mthumb -mno-unaligned-access -Wl,--gc-sections -Wl,-static -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "Linker flags") @@ -92,10 +99,10 @@ set(CMAKE_GDB "${ARM_GDB}" CACHE STRING "GDB") set(MAKE make CACHE STRING "Make") set(MKDIR mkdir CACHE STRING "Mkdir") set(RM rm CACHE STRING "Rm") -set(CMAKE_C_FLAGS "-Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") -set(CMAKE_CXX_FLAGS "-Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") -set(CMAKE_ASM_FLAGS "${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") -set(CMAKE_ASM_FLAGS_DEBUG "${CPUCONFIG_ASMFLAGS} -g" CACHE STRING "ASM compiler flags for Debug") +set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") +set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") +set(CMAKE_ASM_FLAGS "${OPTIMIZATION_FLAGS} ${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") +set(CMAKE_ASM_FLAGS_DEBUG "${OPTIMIZATION_FLAGS} ${CPUCONFIG_ASMFLAGS} -g" CACHE STRING "ASM compiler flags for Debug") set(CMAKE_EXE_LINKER_FLAGS "${CPUCONFIG_LDFLAGS}" CACHE STRING "Linker flags") set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY" CACHE STRING "Try compile target type") \ No newline at end of file diff --git a/configs/arch/armv7/cortex-m7/tools-cfg.cmake b/configs/arch/armv7/cortex-m7/tools-cfg.cmake index 643a815..bec8014 100644 --- a/configs/arch/armv7/cortex-m7/tools-cfg.cmake +++ b/configs/arch/armv7/cortex-m7/tools-cfg.cmake @@ -76,16 +76,16 @@ endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(OPTIMIZATION_FLAGS "-Og" CACHE STRING "Optimization flags" FORCE) elseif(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - set(OPTIMIZATION_FLAGS "-O0" CACHE STRING "Optimization flags" FORCE) + set(OPTIMIZATION_FLAGS "-O2" CACHE STRING "Optimization flags" FORCE) else() - set(OPTIMIZATION_FLAGS "-O0" CACHE STRING "Optimization flags" FORCE) + set(OPTIMIZATION_FLAGS "-O2" CACHE STRING "Optimization flags" FORCE) endif() set(DMOD_ARCH "armv7-cortex-m7" CACHE STRING "Target architecture") set(DMOD_CPU "cortex-m7" CACHE STRING "Target CPU") set(COMMON_DEFINE_FLAGS "-DDMOD_ARCH=\\\"${DMOD_ARCH}\\\" -DDMOD_CPU=\\\"${DMOD_CPU}\\\"") set(FPU_FLAGS "-mfpu=fpv5-sp-d16 -mfloat-abi=hard" CACHE STRING "FPU configuration flags") -set(CPUCONFIG_CFLAGS "-mcpu=cortex-m7 -mthumb -mno-unaligned-access -DGCC_ARMCM7 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C compiler flags") +set(CPUCONFIG_CFLAGS "-fno-builtin-memset -mcpu=cortex-m7 -mthumb -mno-unaligned-access -DGCC_ARMCM7 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C compiler flags") set(CPUCONFIG_CXXFLAGS "-mcpu=cortex-m7 -mthumb -mno-unaligned-access -DGCC_ARMCM7 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "C++ compiler flags") set(CPUCONFIG_ASMFLAGS "-mcpu=cortex-m7 -mthumb -mno-unaligned-access -DGCC_ARMCM7 ${COMMON_DEFINE_FLAGS} -mpic-data-is-text-relative -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "ASM compiler flags") set(CPUCONFIG_LDFLAGS "-mcpu=cortex-m7 -mthumb -mno-unaligned-access -Wl,--gc-sections -Wl,-static -mabi=aapcs ${FPU_FLAGS}" CACHE STRING "Linker flags") @@ -102,12 +102,12 @@ set(MKDIR mkdir CACHE STRING "Mkdir") set(RM rm CACHE STRING "Rm") set(CMAKE_C_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c11 ${CPUCONFIG_CFLAGS}" CACHE STRING "C compiler flags") set(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the C compiler during DEBUG builds." FORCE) -set(CMAKE_C_FLAGS_RELEASE "-O0 -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELEASE builds." FORCE) -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 -g -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELEASE builds." FORCE) +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the C compiler during RELWITHDEBINFO builds." FORCE) set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} -Wall -std=c++17 ${CPUCONFIG_CXXFLAGS}" CACHE STRING "C++ compiler flags") set(CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE STRING "Flags used by the CXX compiler during DEBUG builds." FORCE) -set(CMAKE_CXX_FLAGS_RELEASE "-O0 -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELEASE builds." FORCE) -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 -g -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELWITHDEBINFO builds." FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELEASE builds." FORCE) +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "Flags used by the CXX compiler during RELWITHDEBINFO builds." FORCE) set(CMAKE_ASM_FLAGS "${OPTIMIZATION_FLAGS} ${CPUCONFIG_ASMFLAGS}" CACHE STRING "ASM compiler flags") set(CMAKE_ASM_FLAGS_DEBUG "${CPUCONFIG_ASMFLAGS} -Og -g" CACHE STRING "ASM compiler flags for Debug" FORCE) set(CMAKE_ASM_FLAGS_RELEASE "${CPUCONFIG_ASMFLAGS} -O2" CACHE STRING "ASM compiler flags for Release" FORCE) From 61d37712458b6bacf07709b788034a76a77396bf Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:45:29 +0100 Subject: [PATCH 4/8] Add no-builtin attribute to memset function declaration --- src/module/string.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/module/string.c b/src/module/string.c index 47b3908..f7722ac 100644 --- a/src/module/string.c +++ b/src/module/string.c @@ -12,6 +12,7 @@ /** * @brief Set memory to a specified value */ +void *memset(void *s, int c, size_t n) __attribute__((optimize("no-builtin"))); void *memset(void *s, int c, size_t n) { unsigned char *p = (unsigned char *)s; @@ -25,6 +26,7 @@ void *memset(void *s, int c, size_t n) return s; } + /** * @brief Copy memory area * @note This function does not handle overlapping memory regions. Use memmove() for that. From 810daa03d5a7adf719a120cd85bcf62a6d50e6cf Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:47:50 +0100 Subject: [PATCH 5/8] Rename memset function to memset_impl and update __memset_chk to use the new implementation --- src/module/string.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/module/string.c b/src/module/string.c index f7722ac..f0eb116 100644 --- a/src/module/string.c +++ b/src/module/string.c @@ -12,8 +12,7 @@ /** * @brief Set memory to a specified value */ -void *memset(void *s, int c, size_t n) __attribute__((optimize("no-builtin"))); -void *memset(void *s, int c, size_t n) +void *memset_impl(void *s, int c, size_t n) { unsigned char *p = (unsigned char *)s; unsigned char value = (unsigned char)c; @@ -291,7 +290,7 @@ void *__memmove_chk(void *dest, const void *src, size_t n, size_t destlen) void *__memset_chk(void *s, int c, size_t n, size_t slen) { (void)slen; - return memset(s, c, n); + return memset_impl(s, c, n); } /** From 27e5246f81cd1bed4acd1334687c77ee48fb7bc8 Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:48:54 +0100 Subject: [PATCH 6/8] Rename memset_impl to memset and update __memset_chk to use the new name --- src/module/string.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/module/string.c b/src/module/string.c index f0eb116..47b3908 100644 --- a/src/module/string.c +++ b/src/module/string.c @@ -12,7 +12,7 @@ /** * @brief Set memory to a specified value */ -void *memset_impl(void *s, int c, size_t n) +void *memset(void *s, int c, size_t n) { unsigned char *p = (unsigned char *)s; unsigned char value = (unsigned char)c; @@ -25,7 +25,6 @@ void *memset_impl(void *s, int c, size_t n) return s; } - /** * @brief Copy memory area * @note This function does not handle overlapping memory regions. Use memmove() for that. @@ -290,7 +289,7 @@ void *__memmove_chk(void *dest, const void *src, size_t n, size_t destlen) void *__memset_chk(void *s, int c, size_t n, size_t slen) { (void)slen; - return memset_impl(s, c, n); + return memset(s, c, n); } /** From 7fd9b90a418d0a66f2000325af6b95ca0eabe625 Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:52:29 +0100 Subject: [PATCH 7/8] Add pragma to disable built-in optimizations in string.c --- src/module/string.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/module/string.c b/src/module/string.c index 47b3908..85cb5ad 100644 --- a/src/module/string.c +++ b/src/module/string.c @@ -9,6 +9,8 @@ #include +#pragma GCC optimize ("no-builtin") + /** * @brief Set memory to a specified value */ From f1c725c375c6bbae7f3d55d4e9dfc09abd2eb7f3 Mon Sep 17 00:00:00 2001 From: Patryk Kubiak Date: Sun, 22 Mar 2026 17:55:18 +0100 Subject: [PATCH 8/8] Refactor optimization pragmas in string.c to disable specific built-in optimizations --- src/module/string.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/module/string.c b/src/module/string.c index 85cb5ad..cd46530 100644 --- a/src/module/string.c +++ b/src/module/string.c @@ -9,7 +9,8 @@ #include -#pragma GCC optimize ("no-builtin") +#pragma GCC push_options +#pragma GCC optimize ("no-tree-loop-distribute-patterns") /** * @brief Set memory to a specified value @@ -340,3 +341,5 @@ char *__strcat_chk(char *dest, const char *src, size_t destlen) (void)destlen; return strcat(dest, src); } + +#pragma GCC pop_options \ No newline at end of file