Clang static analysis results for dmd

Don nospam at nospam.com
Wed Jul 27 03:06:25 PDT 2011


Don wrote:
> Robert Clipsham wrote:
>> Hi all,
>>
>> I took the liberty of running dmd through clang's static analysis, and 
>> it's turned up quite a few (486) potential bugs in dmd:
>>
>> http://octarineparrot.com/assets/dmd/
>>
>> There's bound to be a few false positives in there (please feel free 
>> to report them to the nice folk over at llvm), and the dead code won't 
>> cause any problems (and most of the "dead code" in the backend is 
>> probably in use with dmc or something), but there are still a few 
>> hundred potential crashes in there.
>>
>> The link above is rather slow - if anyone wants a local copy to work 
>> with let me know and I'll see about getting one to you... The 
>> compressed source to those pages is ~206MB, it's about 2.8GB without 
>> compression!
>>
> 
> Here's a clang bug:
> http://octarineparrot.com/assets/dmd/report-vtxpYt.html#EndPath
> 
> 3436 if (!exp)
>     
>      <9> Taking false branch
> 3437    fd->nrvo_can = 0;
> 3438   
> 3439    if (exp)
>     
>      <10> Taking false branch
> 3440    {
> 
> 
> That is, (!exp) is false, and (exp) is also false.

Another one:
http://octarineparrot.com/assets/dmd/report-bksOGf.html#EndPath

Quite bizarre -- it seems to think the static member array 
Type::sizeTy[TMAX] is a null pointer.

I finally found one genuine DMD bug report: 
http://d.puremagic.com/issues/show_bug.cgi?id=6389

But it looks to me as though the reports show more bugs in clang, than 
in DMD.




More information about the Digitalmars-d mailing list