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
// 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;
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;
}
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;
}
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;
}
// 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
// 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;
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)