[llvm-commits] [llvm] r100798 - in /llvm/trunk: include/llvm/Analysis/Lint.h include/llvm/LinkAllPasses.h lib/Analysis/Lint.cpp test/Other/lint.ll

Dan Gohman gohman at apple.com
Thu Apr 8 15:59:11 PDT 2010


Right now the usage model is you just put

 PM->add(createLintPass());

in your front-end's code for setting up a pass manager. Or you run "opt -lint"
on LLVM IR files produced by your front-end. I'm open to ideas for how to
make it more usable.

There's nothing in Lint.cpp that's immune from false positive conditions. In
a way, it's this very property of having the potential to be spurious which
separates checks which must go in Lint.cpp from checks which can go in
Verifier.cpp.

Dan

On Apr 8, 2010, at 2:21 PM, Daniel Dunbar wrote:

> Can I turn that off? Or, what is the intended use case for this in the FE?
> 
> - Daniel
> 
> On Thu, Apr 8, 2010 at 12:51 PM, Dan Gohman <gohman at apple.com> wrote:
>> 
>> On Apr 8, 2010, at 12:01 PM, Daniel Dunbar wrote:
>> 
>>> Any reason not to put this under "AndVerify" and "VerifyEach" as part
>>> of the StandardPasses.h lists?
>> 
>> Yes; this comment in Lint.cpp:
>> 
>>>> +// Another limitation is that it assumes all code will be executed. A store
>>>> +// through a null pointer in a basic block which is never reached is harmless,
>>>> +// but this pass will warn about it anyway.
>> 
>> 
>> Dan
>> 
>> 
>> 





More information about the llvm-commits mailing list