diff options
Diffstat (limited to 'gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h b/gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h index 105c5629d50..15d6f46dcb5 100644 --- a/gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h +++ b/gnu/llvm/tools/clang/lib/CodeGen/CGCleanup.h @@ -230,7 +230,7 @@ public: }; /// A cleanup scope which generates the cleanup blocks lazily. -class LLVM_ALIGNAS(/*alignof(uint64_t)*/ 8) EHCleanupScope : public EHScope { +class alignas(8) EHCleanupScope : public EHScope { /// The nearest normal cleanup scope enclosing this one. EHScopeStack::stable_iterator EnclosingNormal; @@ -509,7 +509,7 @@ class EHScopeStack::iterator { public: iterator() : Ptr(nullptr) {} - EHScope *get() const { + EHScope *get() const { return reinterpret_cast<EHScope*>(Ptr); } @@ -627,16 +627,21 @@ struct EHPersonality { static const EHPersonality MSVC_except_handler; static const EHPersonality MSVC_C_specific_handler; static const EHPersonality MSVC_CxxFrameHandler3; + static const EHPersonality GNU_Wasm_CPlusPlus; /// Does this personality use landingpads or the family of pad instructions /// designed to form funclets? - bool usesFuncletPads() const { return isMSVCPersonality(); } + bool usesFuncletPads() const { + return isMSVCPersonality() || isWasmPersonality(); + } bool isMSVCPersonality() const { return this == &MSVC_except_handler || this == &MSVC_C_specific_handler || this == &MSVC_CxxFrameHandler3; } + bool isWasmPersonality() const { return this == &GNU_Wasm_CPlusPlus; } + bool isMSVCXXPersonality() const { return this == &MSVC_CxxFrameHandler3; } }; } |
