This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGf24e58df7ddf: [clang][cli] Create accessors for exception models in LangOptions (authored by jansvoboda11).
Changed prior to commit: https://reviews.llvm.org/D93214?vs=311577&id=311830#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D93214/new/ https://reviews.llvm.org/D93214 Files: clang/include/clang/Basic/LangOptions.h clang/lib/CodeGen/BackendUtil.cpp clang/lib/CodeGen/CGException.cpp clang/lib/Frontend/InitPreprocessor.cpp
Index: clang/lib/Frontend/InitPreprocessor.cpp =================================================================== --- clang/lib/Frontend/InitPreprocessor.cpp +++ clang/lib/Frontend/InitPreprocessor.cpp @@ -753,12 +753,12 @@ if (LangOpts.GNUCVersion && LangOpts.RTTI) Builder.defineMacro("__GXX_RTTI"); - if (LangOpts.SjLjExceptions) + if (LangOpts.hasSjLjExceptions()) Builder.defineMacro("__USING_SJLJ_EXCEPTIONS__"); - else if (LangOpts.SEHExceptions) + else if (LangOpts.hasSEHExceptions()) Builder.defineMacro("__SEH__"); - else if (LangOpts.DWARFExceptions && - (TI.getTriple().isThumb() || TI.getTriple().isARM())) + else if (LangOpts.hasDWARFExceptions() && + (TI.getTriple().isThumb() || TI.getTriple().isARM())) Builder.defineMacro("__ARM_DWARF_EH__"); if (LangOpts.Deprecated) Index: clang/lib/CodeGen/CGException.cpp =================================================================== --- clang/lib/CodeGen/CGException.cpp +++ clang/lib/CodeGen/CGException.cpp @@ -121,11 +121,11 @@ const llvm::Triple &T = Target.getTriple(); if (T.isWindowsMSVCEnvironment()) return EHPersonality::MSVC_CxxFrameHandler3; - if (L.SjLjExceptions) + if (L.hasSjLjExceptions()) return EHPersonality::GNU_C_SJLJ; - if (L.DWARFExceptions) + if (L.hasDWARFExceptions()) return EHPersonality::GNU_C; - if (L.SEHExceptions) + if (L.hasSEHExceptions()) return EHPersonality::GNU_C_SEH; return EHPersonality::GNU_C; } @@ -149,9 +149,9 @@ LLVM_FALLTHROUGH; case ObjCRuntime::GCC: case ObjCRuntime::ObjFW: - if (L.SjLjExceptions) + if (L.hasSjLjExceptions()) return EHPersonality::GNU_ObjC_SJLJ; - if (L.SEHExceptions) + if (L.hasSEHExceptions()) return EHPersonality::GNU_ObjC_SEH; return EHPersonality::GNU_ObjC; } @@ -165,13 +165,13 @@ return EHPersonality::MSVC_CxxFrameHandler3; if (T.isOSAIX()) return EHPersonality::XL_CPlusPlus; - if (L.SjLjExceptions) + if (L.hasSjLjExceptions()) return EHPersonality::GNU_CPlusPlus_SJLJ; - if (L.DWARFExceptions) + if (L.hasDWARFExceptions()) return EHPersonality::GNU_CPlusPlus; - if (L.SEHExceptions) + if (L.hasSEHExceptions()) return EHPersonality::GNU_CPlusPlus_SEH; - if (L.WasmExceptions) + if (L.hasWasmExceptions()) return EHPersonality::GNU_Wasm_CPlusPlus; return EHPersonality::GNU_CPlusPlus; } @@ -476,7 +476,7 @@ // In wasm we currently treat 'throw()' in the same way as 'noexcept'. In // case of throw with types, we ignore it and print a warning for now. // TODO Correctly handle exception specification in wasm - if (CGM.getLangOpts().WasmExceptions) { + if (CGM.getLangOpts().hasWasmExceptions()) { if (EST == EST_DynamicNone) EHStack.pushTerminate(); else @@ -564,7 +564,7 @@ // In wasm we currently treat 'throw()' in the same way as 'noexcept'. In // case of throw with types, we ignore it and print a warning for now. // TODO Correctly handle exception specification in wasm - if (CGM.getLangOpts().WasmExceptions) { + if (CGM.getLangOpts().hasWasmExceptions()) { if (EST == EST_DynamicNone) EHStack.popTerminate(); return; Index: clang/lib/CodeGen/BackendUtil.cpp =================================================================== --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -497,13 +497,13 @@ // Set EABI version. Options.EABIVersion = TargetOpts.EABIVersion; - if (LangOpts.SjLjExceptions) + if (LangOpts.hasSjLjExceptions()) Options.ExceptionModel = llvm::ExceptionHandling::SjLj; - if (LangOpts.SEHExceptions) + if (LangOpts.hasSEHExceptions()) Options.ExceptionModel = llvm::ExceptionHandling::WinEH; - if (LangOpts.DWARFExceptions) + if (LangOpts.hasDWARFExceptions()) Options.ExceptionModel = llvm::ExceptionHandling::DwarfCFI; - if (LangOpts.WasmExceptions) + if (LangOpts.hasWasmExceptions()) Options.ExceptionModel = llvm::ExceptionHandling::Wasm; Options.NoInfsFPMath = LangOpts.NoHonorInfs; Index: clang/include/clang/Basic/LangOptions.h =================================================================== --- clang/include/clang/Basic/LangOptions.h +++ clang/include/clang/Basic/LangOptions.h @@ -380,6 +380,11 @@ bool isSignReturnAddressScopeAll() const { return getSignReturnAddressScope() == SignReturnAddressScopeKind::All; } + + bool hasSjLjExceptions() const { return SjLjExceptions; } + bool hasSEHExceptions() const { return SEHExceptions; } + bool hasDWARFExceptions() const { return DWARFExceptions; } + bool hasWasmExceptions() const { return WasmExceptions; } }; /// Floating point control options
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits