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