On Mon, May 2, 2011 at 8:21 AM, Bert Huijben <bert_at_qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Hyrum K Wright [mailto:hyrum_at_hyrumwright.org]
>> Sent: maandag 2 mei 2011 14:46
>> To: Daniel Shahaf
>> Cc: dev_at_subversion.apache.org
>> Subject: Re: svn commit: r1098204 -
>> /subversion/trunk/subversion/libsvn_wc/questions.c
>>
>> On Sun, May 1, 2011 at 2:38 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name>
>> wrote:
>> > Nice series of patches tonight --- what tool / gcc flags did you use
>> > to catch them?
>>
>> I've been playing around with clang-analyzer, a static analyzer that
>> is part of llvm:
>> http://clang-analyzer.llvm.org/
>>
>> There are still a lot of false positives (it has trouble grokking our
>> SVN_ERR_ASSERT() macro), but it's been useful to find the kinds of
>> problems fixed in my patches the last few days.
>>
>> At some point, it might be useful to set up a nightly buildbot to
>> automatically run static analysis on a regular basis.
>
> Maybe you can #define SVN_ERR_ASSERT() to assert() for clang?
> (It might even use assert() as a hint to improve results)
That's a good idea.
We can condition it upon the __clang__ preprocessor macro, but that
would change the definition for people building with clang and not
running the analyzer. I'm not quite sure if clang has a special flag
for when the analyzer is running.
I also found this section in the clang-analyzer docs, talking about
custom assertion handlers:
http://clang-analyzer.llvm.org/annotations.html#custom_assertions
However, it seemed to imply it best dealt with handlers that wouldn't
return, rather than our current method sending errors back up the
stack.
-Hyrum
Received on 2011-05-02 16:04:23 CEST