GDC 9 and ARM Cortex-M
Timo Sintonen
t.sintonen at luukku.com
Sun Jul 7 06:24:06 UTC 2019
My little test program is nearly working now.
Some funny things I have found:
- When not using -O2 4 extra bytes appear in front of tdata init
values. With -O2 they disappear.
- I have my own calloc where I first allocate a block with malloc
and then use memset to zero it. GCC can see this and replaces
these two calls with a call to calloc...
>
> There were big changes in exception handling code about 2 years
> ago and my exception code stopped to work. What was changed
> back then? How can I get my code to work again? Could this be
> some struct alignment problem like some years ago?
The program dies somewhere in unwinding code. It looks like the
stack pointer is moved incorrectly and values are popped to wrong
registers in function return. There might be a size mismatch
between c and d side when function arguments are passed in stack.
Any idea where to look?
More information about the D.gnu
mailing list