Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trass3r | 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trass3r | 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Anderson | > 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trass3r | 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brad Anderson | 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Trass3r | http://trass3r.github.com/dmd-clang/ |
June 19, 2012 Re: FWIW: results of cppcheck on dmd sources | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | > 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 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | >> 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?
|
Copyright © 1999-2021 by the D Language Foundation