Exceptions in ARM

Johannes Pfau nospam at example.com
Wed Jan 1 11:29:08 PST 2014


Am Wed, 01 Jan 2014 14:02:42 +0000
schrieb "Timo Sintonen" <t.sintonen at luukku.com>:

> I started to update minlibd with gdc head from last saturday. 
> While testing if exceptions work, the program just stops and does 
> not reach catch or abort.
> 
> Before investigating further, I want to ask the status of arm 
> exceptions: are they known to work, known not to work or is the 
> status just unknown?

They work just as well on ARM/linux/glibc as on x86/glibc/linux.
(Exception chaining isn't working on any architecture, IIRC).

There's a problem with nothrow functions on ARM though: GDC currently
marks nothrow functions with TREE_NOTHROW. However, if such a functions
throws an Error (which is legal in D) the program crashes. The
solution is not setting TREE_NOTHROW, see here:
https://github.com/jpf91/GDC/commit/935198bda01ada89d946ee28819253cca872bea5

> 
> Does anybody know if there are any good articles of exceptions 
> and unwinding in gcc or in general?
> 
> 

The keywords here are 'dwarf exceptions' and 'sjlj exceptions' (or
setjump/longjump exceptions) and you probably want 'dwarf exceptions'.

http://gcc.gnu.org/ml/gcc/2002-07/msg00391.html


More information about the D.gnu mailing list