Problem with extern function declarations

Jens Bauer via D.gnu d.gnu at puremagic.com
Wed Apr 22 02:21:24 PDT 2015


On Tuesday, 21 April 2015 at 14:10:36 UTC, Johannes Pfau wrote:
> Am Tue, 21 Apr 2015 11:42:40 +0000
> schrieb "Jens Bauer" <doctor at who.no>:
>
>> I'm still hoping for a solution to this. Should I file a 
>> bug-report ?
>
> Didn't this[1] commit fix the problem?

I can confirm that the problem is fixed.
-And the code generation is quite impressive.

In C I had ...

if(LowLevelInit) LowLevelInit();  /* generates a lot of redundant 
code: load register, compare, branch, branch+link */

In D, I only need:

LowLevelInit;

This generates a nop.w instruction if the LowLevelInit does not 
exist (this is definitely the desired behaviour, if the BL 
instruction can not be removed completely; but I believe we're 
speaking about code that's already generated, thus the optimizer 
is doing quite well).

I can now conclude my startup.d; which will be a "production 
ready" startup file, that can replace both startup.s and 
startup.c completely.
Thank you for making this possible!


More information about the D.gnu mailing list