On 8 January 2014 08:37, Timo Sintonen <t.sinto...@luukku.com> wrote: > On Sunday, 5 January 2014 at 10:21:36 UTC, Timo Sintonen wrote: >> >> On Sunday, 5 January 2014 at 10:06:48 UTC, Johannes Pfau wrote: >> >>> I should really start pushing my local ARM changes upstream. Here's a >>> fix for the EABI unwinder: >>> >>> https://github.com/jpf91/GDC/commit/262e432e95cbe31a6764cd337f64022a56011eda >>> >>> IIRC I also thought the code in gcc/deh.d wasn't correct. As it wouldn't >>> work for the eabi unwinder anyway (no Phase1Info member) I didn't >>> investigate that though. >> >> >> Meanwhile I got it to pass with this: >> align(8) int _pad; >> > Exceptions still not working. The code call the unwind routine in libgcc but > that never calls back to personality routine. Neither it resumes to the > error callback nor abort. >
Hmm, could maybe try some alignment test: struct test { byte space; byte[0] end; } struct OurUnwindException { ... enum UNWIND_PAD = (Object.sizeof < test.sizeof) ? test.sizeof - Object.sizeof : 0; byte[UNWIND_PAD] _pad; Object obj; ... } Will have to take a relook at the unwind code again sometime incase there has been changes since it was last updated. Regards Iain