https://github.com/matts1 created https://github.com/llvm/llvm-project/pull/131569
I'm fairly certain that the options in this CL are benign, as I don't believe they affect the AST. * RTTI - shouldn't affect the AST, should only affect codegen * Trivial var init - also should only affect codegen * Stack protector - also codegen * Exceptions - Since exceptions do allow new things in the AST, but I'm pretty sure that they can differ in parent and child safely, I marked it as compatible instead. I welcome any input from someone more familiar with this than me, as I might be wrong. >From e32d927354eec4c9b029e84a45744f5fbf840b5f Mon Sep 17 00:00:00 2001 From: Matt Stark <m...@google.com> Date: Mon, 10 Mar 2025 12:09:49 +1100 Subject: [PATCH] [clang] Mark some language options as benign. I'm fairly certain that the options in this CL are benign, as I don't believe they affect the AST. * RTTI - shouldn't affect the AST, should only affect codegen * Trivial var init - also should only affect codegen * Stack protector - also codegen * Exceptions - Since exceptions do allow new things in the AST, but I'm pretty sure that they can differ in parent and child safely, I marked it as compatible instead. I welcome any input from someone more familiar with this than me, as I might be wrong. --- clang/docs/ReleaseNotes.rst | 1 + clang/include/clang/Basic/LangOptions.def | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 372a95c80717c..bcd5df2f2edc0 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -295,6 +295,7 @@ Bug Fixes to C++ Support - Clang no longer crashes when a coroutine is declared ``[[noreturn]]``. (#GH127327) - Clang now uses the parameter location for abbreviated function templates in ``extern "C"``. (#GH46386) - Clang now correctly parses ``if constexpr`` expressions in immediate function context. (#GH123524) +- Clang modules now allow a module and its user to have a larger variety of configurations. Improvements to C++ diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/include/clang/Basic/LangOptions.def b/clang/include/clang/Basic/LangOptions.def index 383440ddbc0ea..beefc944959a1 100644 --- a/clang/include/clang/Basic/LangOptions.def +++ b/clang/include/clang/Basic/LangOptions.def @@ -139,9 +139,9 @@ ENUM_LANGOPT(AltivecSrcCompat, AltivecSrcCompatKind, 2, LANGOPT(ConvergentFunctions, 1, 1, "Assume convergent functions") LANGOPT(AltiVec , 1, 0, "AltiVec-style vector initializers") LANGOPT(ZVector , 1, 0, "System z vector extensions") -LANGOPT(Exceptions , 1, 0, "exception handling") -LANGOPT(ObjCExceptions , 1, 0, "Objective-C exceptions") -LANGOPT(CXXExceptions , 1, 0, "C++ exceptions") +COMPATIBLE_LANGOPT(Exceptions , 1, 0, "exception handling") +COMPATIBLE_LANGOPT(ObjCExceptions , 1, 0, "Objective-C exceptions") +COMPATIBLE_LANGOPT(CXXExceptions , 1, 0, "C++ exceptions") LANGOPT(EHAsynch , 1, 0, "C/C++ EH Asynch exceptions") ENUM_LANGOPT(ExceptionHandling, ExceptionHandlingKind, 3, ExceptionHandlingKind::None, "exception handling") @@ -149,8 +149,8 @@ LANGOPT(IgnoreExceptions , 1, 0, "ignore exceptions") LANGOPT(ExternCNoUnwind , 1, 0, "Assume extern C functions don't unwind") LANGOPT(AssumeNothrowExceptionDtor , 1, 0, "Assume exception object's destructor is nothrow") LANGOPT(TraditionalCPP , 1, 0, "traditional CPP emulation") -LANGOPT(RTTI , 1, 1, "run-time type information") -LANGOPT(RTTIData , 1, 1, "emit run-time type information data") +BENIGN_LANGOPT(RTTI , 1, 1, "run-time type information") +BENIGN_LANGOPT(RTTIData , 1, 1, "emit run-time type information data") LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout") LANGOPT(MSVolatile , 1, 0, "Microsoft-compatible volatile loads and stores") LANGOPT(Freestanding, 1, 0, "freestanding implementation") @@ -397,13 +397,13 @@ BENIGN_ENUM_LANGOPT(ExternDeclNoDLLStorageClassVisibility, VisibilityFromDLLStor BENIGN_LANGOPT(SemanticInterposition , 1, 0, "semantic interposition") BENIGN_LANGOPT(HalfNoSemanticInterposition, 1, 0, "Like -fno-semantic-interposition but don't use local aliases") -ENUM_LANGOPT(StackProtector, StackProtectorMode, 2, SSPOff, +BENIGN_ENUM_LANGOPT(StackProtector, StackProtectorMode, 2, SSPOff, "stack protector mode") -ENUM_LANGOPT(TrivialAutoVarInit, TrivialAutoVarInitKind, 2, TrivialAutoVarInitKind::Uninitialized, +BENIGN_ENUM_LANGOPT(TrivialAutoVarInit, TrivialAutoVarInitKind, 2, TrivialAutoVarInitKind::Uninitialized, "trivial automatic variable initialization") -VALUE_LANGOPT(TrivialAutoVarInitStopAfter, 32, 0, +BENIGN_VALUE_LANGOPT(TrivialAutoVarInitStopAfter, 32, 0, "stop trivial automatic variable initialization after the specified number of instances. Must be greater than 0.") -VALUE_LANGOPT(TrivialAutoVarInitMaxSize, 32, 0, +BENIGN_VALUE_LANGOPT(TrivialAutoVarInitMaxSize, 32, 0, "stop trivial automatic variable initialization if var size exceeds the specified size (in bytes). Must be greater than 0.") ENUM_LANGOPT(SignedOverflowBehavior, SignedOverflowBehaviorTy, 2, SOB_Undefined, "signed integer overflow handling") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits