1
0
mirror of https://github.com/fluencelabs/wasmer synced 2025-06-15 01:41:21 +00:00
Files
.circleci
.github
examples
integration_tests
lib
clif-backend
dynasm-backend
emscripten
build
emtests
FS_exports.cpp
FS_exports.txt
FS_exports.wasm
FS_exports_2.txt
FS_exports_assert.txt
FS_exports_assert_2.txt
README.md
clock_gettime.c
clock_gettime.out
clock_gettime.wasm
closebitcasts.c
closebitcasts.txt
closebitcasts.wasm
dyncall.c
dyncall.txt
dyncall.wasm
dyncall_specific.c
dyncall_specific.txt
dyncall_specific.wasm
emscripten_get_compiler_setting.c
emscripten_get_compiler_setting.out
emscripten_get_compiler_setting.wasm
env.c
env.out
env.wasm
fnmatch.c
fnmatch.out
getValue_setValue.cpp
getValue_setValue.txt
getValue_setValue.wasm
getValue_setValue_assert.txt
ignores.txt
legacy_exported_runtime_numbers.cpp
legacy_exported_runtime_numbers.txt
legacy_exported_runtime_numbers.wasm
legacy_exported_runtime_numbers_assert.txt
localtime.c
localtime.out
localtime.wasm
modularize_closure_pre.c
modularize_closure_pre.out
modularize_closure_pre.wasm
printf.c
printf.out
printf.wasm
puts.c
puts.out
puts.wasm
stackAlloc.cpp
stackAlloc.txt
stackAlloc.wasm
stack_overflow.cpp
stack_overflow.wasm
test_addr_of_stacked.c
test_addr_of_stacked.out
test_addr_of_stacked.wasm
test_alloca.c
test_alloca.out
test_alloca.wasm
test_alloca_stack.c
test_alloca_stack.out
test_alloca_stack.wasm
test_array2.c
test_array2.out
test_array2.wasm
test_array2b.c
test_array2b.out
test_array2b.wasm
test_assert.c
test_assert.out
test_atexit.c
test_atexit.out
test_atoX.c
test_atoX.out
test_atoX.wasm
test_atomic.c
test_atomic.out
test_atomic.wasm
test_atomic_cxx.cpp
test_atomic_cxx.txt
test_atomic_cxx.wasm
test_bigarray.c
test_bigarray.out
test_bitfields.c
test_bitfields.out
test_bsearch.c
test_bsearch.out
test_bsearch.wasm
test_bswap64.c
test_bswap64.out
test_ccall.cpp
test_ccall.out
test_ccall.wasm
test_class.c
test_class.out
test_complex.c
test_complex.out
test_complex.wasm
test_constglobalstructs.c
test_constglobalstructs.out
test_conststructs.c
test_conststructs.out
test_copyop.c
test_copyop.out
test_cxx03_do_run.c
test_cxx03_do_run.out
test_demangle_stacks.cpp
test_demangle_stacks.out
test_demangle_stacks.wasm
test_demangle_stacks_noassert.cpp
test_demangle_stacks_noassert.out
test_demangle_stacks_noassert.wasm
test_direct_string_constant_usage.c
test_direct_string_constant_usage.out
test_dlfcn_self.c
test_dlfcn_self.out
test_dlmalloc_partial_2.c
test_dlmalloc_partial_2.out
test_dlmalloc_partial_2.wasm
test_double_i64_conversion.c
test_double_i64_conversion.out
test_double_varargs.c
test_double_varargs.out
test_double_varargs.wasm
test_dynamic_cast.c
test_dynamic_cast.out
test_dynamic_cast_2.c
test_dynamic_cast_2.out
test_dynamic_cast_b.c
test_dynamic_cast_b.out
test_em_asm.cpp
test_em_asm.out
test_em_asm.wasm
test_em_asm_2.cpp
test_em_asm_2.out
test_em_asm_2.wasm
test_em_asm_parameter_pack.cpp
test_em_asm_parameter_pack.out
test_em_asm_parameter_pack.wasm
test_em_asm_signatures.cpp
test_em_asm_signatures.out
test_em_asm_signatures.wasm
test_em_asm_unicode.cpp
test_em_asm_unicode.out
test_em_asm_unicode.wasm
test_em_asm_unused_arguments.cpp
test_em_asm_unused_arguments.out
test_em_asm_unused_arguments.wasm
test_em_js.cpp
test_em_js.out
test_em_js.wasm
test_embind_5.cpp
test_embind_5.out
test_emmalloc.cpp
test_emmalloc.txt
test_emptyclass.c
test_emptyclass.out
test_emscripten_api.cpp
test_emscripten_api.out
test_emscripten_api.wasm
test_emulate_function_pointer_casts.cpp
test_emulate_function_pointer_casts.wasm
test_erf.c
test_erf.out
test_erf.wasm
test_errar.c
test_errar.out
test_errar.wasm
test_exceptions_2.cpp
test_exceptions_2.out
test_exceptions_2.wasm
test_exceptions_alias.c
test_exceptions_alias.out
test_exceptions_convert.cpp
test_exceptions_convert.txt
test_exceptions_convert.wasm
test_exceptions_destroy_virtual.cpp
test_exceptions_destroy_virtual.txt
test_exceptions_destroy_virtual.wasm
test_exceptions_libcxx.cpp
test_exceptions_libcxx.txt
test_exceptions_libcxx.wasm
test_exceptions_multi.cpp
test_exceptions_multi.out
test_exceptions_multi.wasm
test_exceptions_multiple_inherit.cpp
test_exceptions_multiple_inherit.txt
test_exceptions_multiple_inherit.wasm
test_exceptions_multiple_inherit_rethrow.cpp
test_exceptions_multiple_inherit_rethrow.txt
test_exceptions_multiple_inherit_rethrow.wasm
test_exceptions_primary.cpp
test_exceptions_primary.txt
test_exceptions_primary.wasm
test_exceptions_refcount.cpp
test_exceptions_refcount.txt
test_exceptions_refcount.wasm
test_exceptions_resume.cpp
test_exceptions_resume.txt
test_exceptions_resume.wasm
test_exceptions_rethrow.cpp
test_exceptions_rethrow.txt
test_exceptions_rethrow.wasm
test_exceptions_simplify_cfg.cpp
test_exceptions_simplify_cfg.txt
test_exceptions_simplify_cfg.wasm
test_exceptions_std.cpp
test_exceptions_std.out
test_exceptions_std.wasm
test_exceptions_typed.c
test_exceptions_typed.out
test_exceptions_virtual_inheritance.cpp
test_exceptions_virtual_inheritance.txt
test_exceptions_virtual_inheritance.wasm
test_exceptions_white_list.cpp
test_exceptions_white_list.out
test_exceptions_white_list.wasm
test_exceptions_white_list_2.c
test_exceptions_white_list_2.out
test_exceptions_white_list_empty.out
test_execvp.c
test_execvp.out
test_execvp.wasm
test_execvp_windows.c
test_execvp_windows.wasm
test_fakestat.c
test_fakestat.out
test_fast_math.c
test_fast_math.out
test_fast_math.wasm
test_fcvt.c
test_fcvt.out
test_flexarray_struct.c
test_flexarray_struct.out
test_flexarray_struct.wasm
test_float32_precise.c
test_float32_precise.out
test_float32_precise.wasm
test_float_builtins.c
test_float_builtins.out
test_float_builtins.wasm
test_floatvars.c
test_floatvars.out
test_frexp.c
test_frexp.out
test_frexp.wasm
test_funcptr.c
test_funcptr.out
test_funcptr.wasm
test_funcptr_import_type.cpp
test_funcptr_import_type.out
test_funcptr_namecollide.c
test_funcptr_namecollide.out
test_funcptr_namecollide.wasm
test_funcptrfunc.c
test_funcptrfunc.out
test_funcptrfunc.wasm
test_funcs.c
test_funcs.out
test_funcs.wasm
test_functionpointer_libfunc_varargs.c
test_functionpointer_libfunc_varargs.out
test_functionpointer_libfunc_varargs.wasm
test_fwrite_0.c
test_fwrite_0.out
test_fwrite_0.wasm
test_getcwd.c
test_getcwd.out
test_getcwd.wasm
test_getgep.c
test_getgep.out
test_getgep.wasm
test_getloadavg.c
test_getloadavg.out
test_getloadavg.wasm
test_getopt.c
test_getopt.out
test_getopt.wasm
test_getopt_long.c
test_getopt_long.out
test_getopt_long.wasm
test_globaldoubles.c
test_globaldoubles.out
test_globaldoubles.wasm
test_globals.c
test_globals.out
test_globals.wasm
test_gmtime.c
test_gmtime.out
test_gmtime.wasm
test_hello_world.c
test_hello_world.out
test_hello_world.wasm
test_i16_emcc_intrinsic.c
test_i16_emcc_intrinsic.out
test_i16_emcc_intrinsic.wasm
test_i32_mul_precise.c
test_i32_mul_precise.out
test_i32_mul_precise.wasm
test_i64.c
test_i64.out
test_i64.wasm
test_i64_2.c
test_i64_2.out
test_i64_3.c
test_i64_3.out
test_i64_4.c
test_i64_4.out
test_i64_4.wasm
test_i64_7z.c
test_i64_7z.out
test_i64_7z.wasm
test_i64_b.c
test_i64_b.out
test_i64_cmp.c
test_i64_cmp.out
test_i64_cmp2.c
test_i64_cmp2.out
test_i64_cmp2.wasm
test_i64_double.c
test_i64_double.out
test_i64_i16.c
test_i64_i16.out
test_i64_i16.wasm
test_i64_llabs.c
test_i64_llabs.out
test_i64_llabs.wasm
test_i64_precise.c
test_i64_precise.out
test_i64_precise.wasm
test_i64_precise_needed.c
test_i64_precise_needed.out
test_i64_precise_needed.wasm
test_i64_precise_unneeded.c
test_i64_precise_unneeded.out
test_i64_precise_unneeded.wasm
test_i64_qdouble.c
test_i64_qdouble.out
test_i64_qdouble.wasm
test_i64_umul.c
test_i64_umul.out
test_i64_umul.wasm
test_i64_varargs.c
test_i64_varargs.out
test_i64_varargs.wasm
test_i64_zextneg.c
test_i64_zextneg.out
test_i64_zextneg.wasm
test_if.c
test_if.out
test_if.wasm
test_if_else.c
test_if_else.out
test_if_else.wasm
test_indirectbr.c
test_indirectbr.out
test_indirectbr.wasm
test_indirectbr_many.c
test_indirectbr_many.out
test_indirectbr_many.wasm
test_inherit.c
test_inherit.out
test_inlinejs.c
test_inlinejs.out
test_inlinejs2.c
test_inlinejs2.out
test_inlinejs3.c
test_inlinejs3.out
test_intentional_fault.c
test_intentional_fault.wasm
test_intvars.c
test_intvars.out
test_isdigit_l.c
test_isdigit_l.out
test_isnan.c
test_isnan.out
test_isnan.wasm
test_istream.c
test_istream.out
test_iswdigit.c
test_iswdigit.out
test_libcextra.c
test_libcextra.out
test_libcextra.wasm
test_libgen.c
test_libgen.out
test_libgen.wasm
test_linked_list.c
test_linked_list.out
test_literal_negative_zero.c
test_literal_negative_zero.out
test_literal_negative_zero.wasm
test_llrint.c
test_llrint.out
test_llrint.wasm
test_llvm_fabs.c
test_llvm_fabs.out
test_llvm_fabs.wasm
test_llvm_intrinsics.cpp
test_llvm_intrinsics.out
test_llvm_intrinsics.wasm
test_llvm_used.c
test_llvm_used.out
test_llvmswitch.c
test_llvmswitch.out
test_llvmswitch.wasm
test_longjmp.c
test_longjmp.out
test_longjmp.wasm
test_longjmp2.c
test_longjmp2.out
test_longjmp2.wasm
test_longjmp3.c
test_longjmp3.out
test_longjmp3.wasm
test_longjmp4.c
test_longjmp4.out
test_longjmp4.wasm
test_longjmp_exc.c
test_longjmp_exc.out
test_longjmp_exc.wasm
test_longjmp_funcptr.c
test_longjmp_funcptr.out
test_longjmp_funcptr.wasm
test_longjmp_repeat.c
test_longjmp_repeat.out
test_longjmp_repeat.wasm
test_longjmp_stacked.c
test_longjmp_stacked.out
test_longjmp_stacked.wasm
test_longjmp_throw.cpp
test_longjmp_throw.out
test_longjmp_throw.wasm
test_longjmp_unwind.c
test_longjmp_unwind.out
test_longjmp_unwind.wasm
test_loop.c
test_loop.out
test_loop.wasm
test_lower_intrinsics.c
test_lower_intrinsics.out
test_lower_intrinsics.wasm
test_main_module_static_align.cpp
test_main_module_static_align.txt
test_main_module_static_align.wasm
test_main_thread_async_em_asm.cpp
test_main_thread_async_em_asm.out
test_main_thread_async_em_asm.wasm
test_mainenv.c
test_mainenv.out
test_mainenv.wasm
test_math.c
test_math.out
test_mathfuncptr.c
test_mathfuncptr.out
test_mathfuncptr.wasm
test_memcpy2.c
test_memcpy2.out
test_memcpy2.wasm
test_memcpy3.c
test_memcpy3.out
test_memcpy3.wasm
test_memcpy_memcmp.c
test_memcpy_memcmp.out
test_memcpy_memcmp.wasm
test_memmove.c
test_memmove.out
test_memmove.wasm
test_memmove2.c
test_memmove2.out
test_memmove2.wasm
test_memmove3.c
test_memmove3.out
test_memmove3.wasm
test_memorygrowth.c
test_memorygrowth.wasm
test_memorygrowth_2.c
test_memorygrowth_2.wasm
test_memorygrowth_3.c
test_memorygrowth_3.txt
test_memorygrowth_3.wasm
test_memorygrowth_wasm_mem_max.c
test_memorygrowth_wasm_mem_max.txt
test_memorygrowth_wasm_mem_max.wasm
test_memset.c
test_memset.out
test_memset.wasm
test_mmap.c
test_mmap.out
test_mmap.wasm
test_mod_globalstruct.c
test_mod_globalstruct.out
test_negative_zero.c
test_negative_zero.out
test_negative_zero.wasm
test_nested_struct_varargs.c
test_nested_struct_varargs.out
test_nested_struct_varargs.wasm
test_nl_types.c
test_nl_types.out
test_nl_types.wasm
test_perrar.c
test_perrar.out
test_perrar.wasm
test_phiundef.c
test_phiundef.out
test_phiundef.wasm
test_pipe.c
test_pipe.out
test_pipe.wasm
test_poll.c
test_poll.out
test_poll.wasm
test_polymorph.c
test_polymorph.out
test_posixtime.c
test_posixtime.out
test_posixtime.wasm
test_posixtime_no_monotonic.out
test_printf_2.c
test_printf_2.out
test_printf_2.wasm
test_printf_more.c
test_printf_more.out
test_printf_more.wasm
test_ptrtoint.out
test_random_device.cpp
test_random_device.txt
test_regex.c
test_regex.out
test_regex.wasm
test_reinterpreted_ptrs.c
test_reinterpreted_ptrs.out
test_relocatable_void_function.c
test_relocatable_void_function.out
test_relocatable_void_function.wasm
test_rounding.c
test_rounding.out
test_rounding.wasm
test_runtime_stacksave.c
test_runtime_stacksave.wasm
test_set_align.c
test_set_align.out
test_set_align.wasm
test_siglongjmp.c
test_siglongjmp.out
test_siglongjmp.wasm
test_simd.c
test_simd.out
test_simd10.c
test_simd10.out
test_simd11.c
test_simd11.out
test_simd12.c
test_simd12.out
test_simd13.c
test_simd13.out
test_simd14.c
test_simd14.out
test_simd15.c
test_simd15.out
test_simd16.c
test_simd16.out
test_simd2.c
test_simd2.out
test_simd3.c
test_simd3.out
test_simd4.c
test_simd4.out
test_simd5.c
test_simd5.out
test_simd6.c
test_simd6.out
test_simd7.c
test_simd7.out
test_simd8.c
test_simd8.out
test_simd9.c
test_simd9.out
test_simd_dyncall.cpp
test_simd_dyncall.txt
test_simd_float32x4.c
test_simd_float32x4.out
test_simd_float64x2.c
test_simd_float64x2.out
test_simd_int16x8.c
test_simd_int16x8.out
test_simd_int32x4.c
test_simd_int32x4.out
test_simd_int8x16.c
test_simd_int8x16.out
test_simd_set_epi64x.c
test_simd_set_epi64x.out
test_simd_shift_right.c
test_simd_shift_right.out
test_simd_sitofp.c
test_simd_sitofp.out
test_sintvars.c
test_sintvars.out
test_sintvars.wasm
test_sizeof.cpp
test_sizeof.out
test_sizeof.wasm
test_sscanf.c
test_sscanf.out
test_sscanf.wasm
test_sscanf_3.c
test_sscanf_3.out
test_sscanf_3.wasm
test_sscanf_4.c
test_sscanf_4.out
test_sscanf_4.wasm
test_sscanf_5.c
test_sscanf_5.out
test_sscanf_5.wasm
test_sscanf_6.c
test_sscanf_6.out
test_sscanf_6.wasm
test_sscanf_caps.c
test_sscanf_caps.out
test_sscanf_caps.wasm
test_sscanf_float.c
test_sscanf_float.out
test_sscanf_float.wasm
test_sscanf_hex.cpp
test_sscanf_hex.out
test_sscanf_hex.wasm
test_sscanf_n.c
test_sscanf_n.out
test_sscanf_n.wasm
test_sscanf_other_whitespace.c
test_sscanf_other_whitespace.out
test_sscanf_other_whitespace.wasm
test_sscanf_skip.c
test_sscanf_skip.out
test_sscanf_skip.wasm
test_sscanf_whitespace.c
test_sscanf_whitespace.out
test_sscanf_whitespace.wasm
test_stack.c
test_stack.out
test_stack_align.cpp
test_stack_align.wasm
test_stack_byval.c
test_stack_byval.out
test_stack_restore.c
test_stack_restore.out
test_stack_varargs.c
test_stack_varargs.out
test_stack_varargs.wasm
test_stack_void.c
test_stack_void.out
test_stack_void.wasm
test_static_variable.c
test_static_variable.out
test_statics.c
test_statics.out
test_statvfs.c
test_statvfs.out
test_statvfs.wasm
test_std_cout_new.cpp
test_std_cout_new.out
test_std_cout_new.wasm
test_stdlibs.c
test_stdlibs.out
test_stdvec.c
test_stdvec.out
test_strcasecmp.c
test_strcasecmp.out
test_strcasecmp.wasm
test_strcmp_uni.c
test_strcmp_uni.out
test_strcmp_uni.wasm
test_strftime.cpp
test_strftime.out
test_strftime.wasm
test_strings.c
test_strings.out
test_strings.wasm
test_strndup.c
test_strndup.out
test_strndup.wasm
test_strptime_days.c
test_strptime_days.out
test_strptime_days.wasm
test_strptime_reentrant.c
test_strptime_reentrant.out
test_strptime_reentrant.wasm
test_strptime_tm.c
test_strptime_tm.out
test_strstr.c
test_strstr.out
test_strstr.wasm
test_strtod.c
test_strtod.out
test_strtod.wasm
test_strtok.c
test_strtok.out
test_strtok.wasm
test_strtol_bin.c
test_strtol_bin.out
test_strtol_bin.wasm
test_strtol_dec.c
test_strtol_dec.out
test_strtol_dec.wasm
test_strtol_hex.c
test_strtol_hex.out
test_strtol_hex.wasm
test_strtol_oct.c
test_strtol_oct.out
test_strtol_oct.wasm
test_strtold.c
test_strtold.out
test_strtold.wasm
test_strtoll_bin.c
test_strtoll_bin.out
test_strtoll_bin.wasm
test_strtoll_dec.c
test_strtoll_dec.out
test_strtoll_dec.wasm
test_strtoll_hex.c
test_strtoll_hex.out
test_strtoll_hex.wasm
test_strtoll_oct.c
test_strtoll_oct.out
test_strtoll_oct.wasm
test_struct_varargs.c
test_struct_varargs.out
test_struct_varargs.wasm
test_structs.c
test_structs.out
test_time_c.c
test_time_c.out
test_time_c.wasm
test_timeb.c
test_timeb.out
test_tinyfuncstr.c
test_tinyfuncstr.out
test_tracing.c
test_tracing.out
test_tracing.wasm
test_transtrcase.c
test_transtrcase.out
test_transtrcase.wasm
test_trickystring.c
test_trickystring.out
test_trickystring.wasm
test_typeid.c
test_typeid.out
test_uname.c
test_uname.out
test_uname.wasm
test_unary_literal.cpp
test_unary_literal.out
test_unary_literal.wasm
test_utf.c
test_utf.out
test_utf.wasm
test_varargs.c
test_varargs.out
test_varargs.wasm
test_varargs_multi.c
test_varargs_multi.out
test_varargs_multi.wasm
test_vfs.c
test_vfs.md
test_vfs.out
test_vfs.wasm
test_vfs_bundle.wasm
test_vfs_data.txt
test_vprintf.c
test_vprintf.out
test_vprintf.wasm
test_vsnprintf.c
test_vsnprintf.out
test_vsnprintf.wasm
test_wprintf.cpp
test_wprintf.out
test_wprintf.wasm
test_write_stdout_fileno.c
test_write_stdout_fileno.out
test_write_stdout_fileno.wasm
test_zero_multiplication.c
test_zero_multiplication.out
test_zero_multiplication.wasm
test_zerodiv.c
test_zerodiv.out
test_zerodiv.wasm
src
tests
Cargo.toml
llvm-backend
runtime
runtime-abi
runtime-c-api
runtime-core
spectests
win-exception-handler
.gitignore
README.md
scripts
src
.appveyor.yml
.gitattributes
.gitignore
ARCHITECTURE.md
ATTRIBUTIONS.md
Cargo.lock
Cargo.toml
LICENSE
Makefile
README.md
binary-name.sh
bors.toml
install.sh
logo.png
rustfmt.toml
sqlite.wasm
wasmer/lib/emscripten/emtests/test_exceptions_destroy_virtual.cpp

49 lines
1.1 KiB
C++
Raw Normal View History

2018-12-27 01:46:41 -06:00
// Copyright 2014 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
#include <stdexcept>
#include <iostream>
namespace
{
// An exception that can be derived virtually or not based on macro
// definition.
class test_exception
: virtual public std::runtime_error
{
public:
test_exception()
: std::runtime_error("test_exception")
{}
};
// Test class that logs its construction and destruction.
class TestClass
{
public:
TestClass()
{ std::cout << "TestClass::Construction" << std::endl; }
~TestClass()
{ std::cout << "TestClass::Destruction" << std::endl; }
};
}
int main()
{
try {
TestClass testClass;
throw test_exception();
}
catch (const std::exception& ex) {
std::cout << "Caught exception: " << ex.what() << std::endl;
}
// Something goes very wrong between handling the exception and resuming
// normal execution when the exception is virtually derived.
return 0;
}