[cfe-dev] GSOC Static Analyzer Proposal

Adam Schnitzer adamschn at umich.edu
Fri Apr 12 13:08:18 PDT 2013


Richard, This is very helpful. Thank you for sharing.

As John pointed out, looking at multiple modification of an lvalue over a
sequence
point seems interesting. And it doesn't look like something that UBSan is
currently
getting. Although it might be difficult to get all violations of that type,
catching
some simpler ones seems like a good goal.

Adam

On Fri, Apr 12, 2013 at 2:23 PM, Richard Smith <richard at metafoo.co.uk>wrote:

> On Wed, Apr 10, 2013 at 2:07 PM, Adam Schnitzer <adamschn at umich.edu>wrote:
>
>> John and Sean,
>>
>> Thank you very much for the feedback. I have a better idea of scope and
>> where to focus.
>>
>> John, I think you're absolutely right, with -fsanitize=undefined and
>> others, more behavior is being caught at runtime/compile time. I will start
>> working on a list of behaviors for which no diagnostics currently exist,
>> and select a subset to focus on.
>>
>
> I made such a list when I started UBSan, and have (mostly) kept it
> up-to-date with what we currently catch:
>
>
> https://docs.google.com/document/d/1o7Xw6dohIuHLOve3hxtTjCrrUbd2NHUgmq_WGrao6js/edit#heading=h.pgx8h2ru49tm
>
> This only covers core language undefined behavior; the standard library is
> another country ;)
>
>  Adam
>>
>> On Wed, Apr 10, 2013 at 1:54 PM, John Regehr <regehr at cs.utah.edu> wrote:
>>
>>> I would like to work on improving support for C++ in the static
>>>> analyzer. Specifically, I think it
>>>> would be valuable to improve the checkers for undefined behavior
>>>> including those already suggested.
>>>>
>>>
>>> I'd be happy to provide feedback on a more specific version of this part
>>> of the proposal.
>>>
>>> In particular, a useful starting point (maybe this already exists?)
>>> would be a list of all C/C++ undefined behaviors broken down by whether
>>> Clang/LLVM...
>>>
>>> - can reliably provide a compile-time diagnostic
>>>
>>> - can reliably provide a runtime diagnostic
>>>
>>> - cannot provide any diagnostic, but implements a predictable behavior
>>>
>>> - cannot provide any diagnostic and also implements unpredictable
>>> behavior
>>>
>>> Obviously the last category is the interesting place for future work.
>>>
>>> John
>>>
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130412/a11ed137/attachment.html>


More information about the cfe-dev mailing list