/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #pragma once #include #include #define __USING_WASM_EXCEPTIONS__ #include #include #include #include #include #include // , system/lib/libcxxabi/src/private_typeinfo.h: namespace __cxxabiv1 { class _LIBCXXABI_TYPE_VIS __shim_type_info : public std::type_info { public: /*MODIFIED:*/ __shim_type_info(char const* name) : type_info(name) { } _LIBCXXABI_HIDDEN virtual ~__shim_type_info(); _LIBCXXABI_HIDDEN virtual void noop1() const; _LIBCXXABI_HIDDEN virtual void noop2() const; _LIBCXXABI_HIDDEN virtual bool can_catch(const __shim_type_info* thrown_type, void*& adjustedPtr) const = 0; }; } #if !HAVE_CXXABI_H_CLASS_TYPE_INFO // , system/lib/libcxxabi/src/private_typeinfo.h: namespace __cxxabiv1 { class _LIBCXXABI_TYPE_VIS __class_type_info : public __shim_type_info { public: /*MODIFIED:*/ __class_type_info(char const* name) : __shim_type_info(name) { } _LIBCXXABI_HIDDEN virtual ~__class_type_info(); _LIBCXXABI_HIDDEN void process_static_type_above_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, const void*, int) const; _LIBCXXABI_HIDDEN void process_static_type_below_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, int) const; _LIBCXXABI_HIDDEN void process_found_base_class(void /*MODIFIED: __dynamic_cast_info*/*, void*, int) const; _LIBCXXABI_HIDDEN virtual void search_above_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, const void*, int, bool) const; _LIBCXXABI_HIDDEN virtual void search_below_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, int, bool) const; _LIBCXXABI_HIDDEN virtual bool can_catch(const __shim_type_info*, void*&) const; _LIBCXXABI_HIDDEN virtual void has_unambiguous_public_base(void /*MODIFIED: __dynamic_cast_info*/*, void*, int) const; }; } #endif #if !HAVE_CXXABI_H_SI_CLASS_TYPE_INFO // , // libstdc++-v3/libsupc++/cxxabi.h: namespace __cxxabiv1 { class _LIBCXXABI_TYPE_VIS __si_class_type_info : public __class_type_info { public: const __class_type_info* __base_type; /*MODIFIED:*/ __si_class_type_info(char const* name) : __class_type_info(name) { } _LIBCXXABI_HIDDEN virtual ~__si_class_type_info(); _LIBCXXABI_HIDDEN virtual void search_above_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, const void*, int, bool) const; _LIBCXXABI_HIDDEN virtual void search_below_dst(void /*MODIFIED: __dynamic_cast_info*/*, const void*, int, bool) const; _LIBCXXABI_HIDDEN virtual void has_unambiguous_public_base(void /*MODIFIED: __dynamic_cast_info*/*, void*, int) const; }; } #endif #if !HAVE_CXXABI_H_CXA_EH_GLOBALS // , system/lib/libcxxabi/src/cxa_exception.h: namespace __cxxabiv1 { struct __cxa_eh_globals { __cxa_exception* caughtExceptions; unsigned int uncaughtExceptions; #if defined _LIBCXXABI_ARM_EHABI __cxa_exception* propagatingExceptions; #endif }; } #endif #if !HAVE_CXXABI_H_CXA_GET_GLOBALS // , system/lib/libcxxabi/src/cxa_exception.h: namespace __cxxabiv1 { extern "C" __cxa_eh_globals* __cxa_get_globals(); } #endif namespace abi_wasm { enum class StructKind { Empty, I32, I64, F32, F64, General }; StructKind getKind(typelib_CompoundTypeDescription const* type); void mapException(__cxxabiv1::__cxa_exception* exception, std::type_info const* type, uno_Any* any, uno_Mapping* mapping); } /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */