View mode: basic / threaded / horizontal-split · Log in · Help
June 19, 2012
FWIW: results of cppcheck on dmd sources
http://trass3r.github.com/dmd-cppcheck/

Seems like the tool isn't dead after all so I tried it out with the dmd  
sources.
Some false positives but also some valid points.

E.g. http://trass3r.github.com/dmd-cppcheck/15.html#line-960 looks  
particularly interesting.
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
Trass3r:
> http://trass3r.github.com/dmd-cppcheck/

Beside the usual "Unused variable: xxxx", and the nice "Variable 
'xxx' is assigned a value that is never used", I see an uncommon 
class of suggestions, "The scope of the variable 'xxxxx' can be 
reduced." that is simple but useful.

Bye,
bearophile
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
On 6/19/2012 7:05 AM, Trass3r wrote:
> http://trass3r.github.com/dmd-cppcheck/
>
> Seems like the tool isn't dead after all so I tried it out with the dmd sources.
> Some false positives but also some valid points.
>
> E.g. http://trass3r.github.com/dmd-cppcheck/15.html#line-960 looks particularly
> interesting.

Thanks for posting this. I think these are worth correcting, although in my 
quick scan I didn't see any actual bugs.
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
On Tuesday, 19 June 2012 at 17:10:03 UTC, Walter Bright wrote:
> On 6/19/2012 7:05 AM, Trass3r wrote:
>> http://trass3r.github.com/dmd-cppcheck/
>>
>> Seems like the tool isn't dead after all so I tried it out 
>> with the dmd sources.
>> Some false positives but also some valid points.
>>
>> E.g. http://trass3r.github.com/dmd-cppcheck/15.html#line-960 
>> looks particularly
>> interesting.
>
> Thanks for posting this. I think these are worth correcting, 
> although in my quick scan I didn't see any actual bugs.

CppCheck is actually how I found the two bugs I fixed recently 
(CtfeStack::maxStackPointer and ComplexExp::toChars).  I spent a 
couple hours going through the results of CppCheck but only found 
those two actual problems (plus the third Globals thing that 
turned out to not be a problem).  That's not to say I thoroughly 
investigated every item.  There sure are a lot of unused 
variables in DMD :P.  I didn't feel qualified to submit a pull 
request removing them as I don't have a very strong understanding 
of DMD's source code yet.

One non-bug I thought about addressing but didn't end up doing 
was this:

http://trass3r.github.com/dmd-cppcheck/18.html#line-4259

I looked up the file history and it seems like that's just a 
result of Don doing some refactoring.

There are surprisingly few notices of memory leaks considering 
DMD uses a GC.

Regards,
Brad Anderson
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
> There are surprisingly few notices of memory leaks considering DMD uses  
> a GC.

This is news to me. Has the GC been re-enabled?
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
On 6/19/2012 10:54 AM, Trass3r wrote:
>> There are surprisingly few notices of memory leaks considering DMD uses a GC.
>
> This is news to me. Has the GC been re-enabled?

No, it's just that cppcheck doesn't (and cannot) detect global memory leaks - 
only very localized ones.
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
On 6/19/2012 10:29 AM, Brad Anderson wrote:
> CppCheck is actually how I found the two bugs I fixed recently
> (CtfeStack::maxStackPointer and ComplexExp::toChars). I spent a couple hours
> going through the results of CppCheck but only found those two actual problems
> (plus the third Globals thing that turned out to not be a problem). That's not
> to say I thoroughly investigated every item. There sure are a lot of unused
> variables in DMD :P. I didn't feel qualified to submit a pull request removing
> them as I don't have a very strong understanding of DMD's source code yet.

I think in general fixing cppcheck's complaints makes the code more 
understandable and maintainable, even if it doesn't actually fix anything.

A lot of the cruft in the code comes from the endless turmoil it undergoes :-)
June 19, 2012
And for completeness: results of HEAD clang analyzer
http://trass3r.github.com/dmd-clang/
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
> I think in general fixing cppcheck's complaints makes the code more  
> understandable and maintainable, even if it doesn't actually fix  
> anything.

+1
June 19, 2012
Re: FWIW: results of cppcheck on dmd sources
>> This is news to me. Has the GC been re-enabled?
>
> No, it's just that cppcheck doesn't (and cannot) detect global memory  
> leaks - only very localized ones.

btw, what is the stance on adding some manual memory freeing, at least for  
obvious local leaks?
« First   ‹ Prev
1 2
Top | Discussion index | About this forum | D home