From b4d1ddb99e1305f6ea6217e7570dda2a94b16e51 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sat, 1 Aug 2026 13:01:07 +0800 Subject: [CMake] Match LLVM EH and RTTI defaults Disable C++ exceptions and RTTI by default while retaining explicit, validated opt-in switches. Replace the arena's exception syntax with an RAII construction guard so both configurations share one implementation. --- backend/cmake/modules/RCCBackendBuild.cmake | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'backend/cmake/modules') diff --git a/backend/cmake/modules/RCCBackendBuild.cmake b/backend/cmake/modules/RCCBackendBuild.cmake index 79e7bb1..52e3a71 100644 --- a/backend/cmake/modules/RCCBackendBuild.cmake +++ b/backend/cmake/modules/RCCBackendBuild.cmake @@ -70,6 +70,18 @@ function(rcc_backend_configure_target Target) -Wformat=2 ) + if(RCC_BACKEND_ENABLE_EH) + target_compile_options("${Target}" PRIVATE -fexceptions) + else() + target_compile_options("${Target}" PRIVATE -fno-exceptions) + endif() + + if(RCC_BACKEND_ENABLE_RTTI) + target_compile_options("${Target}" PRIVATE -frtti) + else() + target_compile_options("${Target}" PRIVATE -fno-rtti) + endif() + if(RCC_BACKEND_WARNINGS_AS_ERRORS) target_compile_options("${Target}" PRIVATE -Werror) endif() -- cgit v1.2.3