bug covering other bug

Mariusz Gliwiński alienballance at gmail.com
Sat Aug 27 00:48:19 PDT 2011


bearophile wrote:
> Mariusz G.:
> 
>> So, on my Linux x64 dmd 2.53 & 2.54, while hunting another bug (i already
>> highly doubt it's my) - i've found this one:
> 
> I can't reproduce the problem on 2.055head on 32 bit Windows.
> DMD 64 bit is relatively recent, it contains several bugs still.
More - http://d.puremagic.com/issues/show_bug.cgi?id=6562

>> Another problem i'm searching for, is something with interfacing to C,
>> pointer to floats and properties and/or aliasing. NVM
> 
> I don't understand.
I'm passing address of float variables to external C function. dmd is 
passing 80bit (real) though.
<code>
   0x0000000000d4f139 <+441>: movss  -0xec(%rbp),%xmm7
   0x0000000000d4f141 <+449>: movss  -0xe8(%rbp),%xmm6
   0x0000000000d4f149 <+457>: movss  -0xe4(%rbp),%xmm5
   0x0000000000d4f151 <+465>: movss  -0xe0(%rbp),%xmm4
   0x0000000000d4f159 <+473>: movss  -0xdc(%rbp),%xmm3
   0x0000000000d4f161 <+481>: movss  -0xd8(%rbp),%xmm2
   0x0000000000d4f169 <+489>: movss  -0xd4(%rbp),%xmm1
   0x0000000000d4f171 <+497>: movss  -0xd0(%rbp),%xmm0
=> 0x0000000000d4f179 <+505>: callq  0x10b4b04
</code>
Well, actually my swig binding is casting from float* to void*, neverthless 
float is C float and real is 80bit, so it shouldn't be a problem?
So, it's a next bug i should report, yes?

> Creating the project of your life with 64 bit DMD is a not so good idea.
> Currently DMD 32 bit is more reliable if you want to create a large
> project.
You're right, I've pushed to D too much, because it's one of projects 
'features', and overall code design is driven by that. I'll just make my 
current D code working properly, and write C++ modules (so i could fallback 
to D soon).

Now question, is it generally worth to refactor quite big amounts of code

Thanks,
Mariusz



More information about the Digitalmars-d mailing list