Exceptions during system initialization work only on targets which do not need a registration of exception frames during the global construction. In particular, targets which use the DWARF2 unwinder cannot use exceptions during system initialization. --- testsuites/samples/cdtest/main.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/testsuites/samples/cdtest/main.cc b/testsuites/samples/cdtest/main.cc index 44cdaf84bb..d5530a657d 100644 --- a/testsuites/samples/cdtest/main.cc +++ b/testsuites/samples/cdtest/main.cc @@ -238,6 +238,17 @@ rtems_task main_task( exit(0); } +/* + * Exceptions during system initialization work only on targets which do not + * need a registration of exception frames during the global construction. In + * particular, targets which use the DWARF2 unwinder cannot use exceptions + * during system initialization. + */ +#if defined(__arm__) || defined(__aarch64__) +#define CAN_DO_EXCEPTIONS_DURING_SYSINIT +#endif + +#ifdef CAN_DO_EXCEPTIONS_DURING_SYSINIT static void early_exception() { try @@ -250,11 +261,13 @@ static void early_exception() throw "early exception 2"; } } +#endif static void test_exceptions_during_system_init() { TEST_BEGIN(); +#ifdef CAN_DO_EXCEPTIONS_DURING_SYSINIT try { early_exception(); @@ -263,6 +276,7 @@ static void test_exceptions_during_system_init() { rtems_test_assert(strcmp(e, "early exception 2") == 0); } +#endif } RTEMS_SYSINIT_ITEM( -- 2.35.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel