xxl does not allow catch an inner thrown exception in outer catch blocks it prints "XXL: Exception thrown with no handler to catch it!" Reproducible: Always Steps to Reproduce: 1. extract xxl-1.0.1.tar.gz 2. configure && make check Actual Results: you'll see Testing simple exception catching ... Testing simple finally block execution ... Testing simple asset management ... Testing nested exception handling ... XXL: Exception thrown with no handler to catch it! /bin/sh: line 4: 19108 Aborted ${dir}$tst FAIL: xxltest ============================= 1 of 1 tests failed Please report to xxl@zork.org ============================= Expected Results: Testing simple exception catching ... Testing simple finally block execution ... Testing simple asset management ... Testing nested exception handling ... PASS: xxltest ================== All 1 tests passed ================== possible patch: diff -c xxl-1.0.1/xxl.c xxl-1.0.1.patched/xxl.c *** xxl-1.0.1/xxl.c 2004-12-22 19:42:52.000000000 +1000 --- xxl-1.0.1.patched/xxl.c 2007-02-05 22:26:52.000000000 +1000 *************** *** 380,385 **** --- 380,386 ---- if (!tsd->contexts) die("XXL: Exception thrown with no handler to catch it!\n"); tsd->contexts->exception = *exception; + how=XXL_SETJMP_TRY; xxl_leave_handler(how); return; }
Created attachment 109297 [details, diff] it helps
Kindly review http://bugs.gentoo.org/page.cgi?id=fields.html#bug_severity
Created attachment 109608 [details, diff] it helps in case of more than two nested try blocks
Created attachment 109610 [details] test for case of more than two nested try blocks
Commited by vapier who apparently can't be bothered to fix bugs on stuff he did dump into the tree... Treecleaners please remove this. Only used by dev-libs/safestr which isn't used by anything.
Fixed, thanks.