Exceptions in ARM

Timo Sintonen t.sintonen at luukku.com
Fri Feb 28 13:18:04 PST 2014


On Wednesday, 8 January 2014 at 19:13:36 UTC, Timo Sintonen wrote:
> On Wednesday, 8 January 2014 at 15:52:25 UTC, Johannes Pfau 
> wrote:
>
>>
>> Stupid question, but are C++ exceptions working for you? I 
>> think we
>> don't change anything inthe compiler related to exception 
>> handling, so
>> if C++ worked and D didn't it could only be a problem with the 
>> runtime
>> code?
>

I investigated this a little. It seems that the processor gets a 
fault interrupt when calling _Unwind_RaiseException in _d_throw. 
The status bits indicate an invalid instruction code.
When looking at the disassembly I see that the call is a blx 
instruction with address. In Cortex-m4 blx can only take a 
register argument.
Is this a bug in gdc or gcc?



More information about the D.gnu mailing list