| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
collecting function Decls.
llvm-svn: 152651
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AnalysisConsumer.
As a result:
- We now analyze the C++ methods which are defined within the
class body. These were completely skipped before.
- Ensure that AST checkers are called on functions in the
order they are defined in the Translation unit.
llvm-svn: 152650
|
|
|
|
|
|
| |
function.
llvm-svn: 152649
|
|
|
|
| |
llvm-svn: 152648
|
|
|
|
|
|
|
|
|
|
| |
(Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
|
|
|
|
|
|
|
|
|
|
|
| |
We do not reanalyze a function, which has already been analyzed as an
inlined callee. As per PRELIMINARY testing, this gives over
50% run time reduction on some benchmarks without decreasing of the
number of bugs found.
Turning the mode on by default.
llvm-svn: 152440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
analyzed.
The CallGraph is used when inlining is on, which is the current default.
This alone does not bring any performance improvement. It's a
stepping stone for the upcoming optimization in which we do not
re-analyze a function that has already been analyzed while inlined in
other functions. Using the call graph makes it easier to play with
the order of functions to minimize redundant analyzes.
llvm-svn: 152352
|
|
|
|
|
|
|
|
|
| |
- Remove -analyzer-inline-call.
- Add -analyzer-ipa=[none|inlining]
- Add -analyzer-inlining-mode to allow experimentation for
different performance tuning methods.
llvm-svn: 152351
|
|
|
|
| |
llvm-svn: 152059
|
|
|
|
|
|
|
|
|
|
|
| |
command line options for inlining tuning.
This adds the option for stack depth bound as well as function size
bound.
+ minor doxygenification
llvm-svn: 151930
|
|
|
|
|
|
| |
As in http://llvm.org/docs/ProgrammersManual.html#Statistic
llvm-svn: 151570
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operator overloads out of line.
This seems to negatively affect compile time onsome ObjC tests
(which use a lot of partial diagnostics I assume). I have to come
up with a way to keep them inline without including Diagnostic.h
everywhere. Now adding a new diagnostic requires a full rebuild
of e.g. the static analyzer which doesn't even use those diagnostics.
This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99.
This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789.
This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7.
This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f.
This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5.
llvm-svn: 150006
|
|
|
|
| |
llvm-svn: 149798
|
|
|
|
|
|
|
| |
- Move the offending methods out of line and fix transitive includers.
- This required changing an enum in the PPCallback API into an unsigned.
llvm-svn: 149782
|
|
|
|
|
|
| |
This allows -Wswitch-enum to find switches that need updating when these enums are modified.
llvm-svn: 148281
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A patch by Dmitri Gribenko!
The attached patch fixes a use-after-free in AnalysisConsumer::HandleTranslationUnit. The problem is that
BugReporter's destructor runs after AnalysisManager has been already
deleted. The fix introduces a scope to force correct destruction
order.
A crash happens only when reports have been added in AnalysisConsumer::HandleTranslationUnit's BugReporter. We don't have such checkers in clang so no test.
llvm-svn: 147732
|
|
|
|
| |
llvm-svn: 147338
|
|
|
|
|
|
| |
accurate, but it frees up the name AnalysisContext for other uses.
llvm-svn: 142782
|
|
|
|
|
|
|
|
| |
change clients to use AnalysisContext instead.
WIP to remove/reduce ExprEngine's usage of AnalysisManager.
llvm-svn: 142739
|
|
|
|
|
|
|
|
| |
of a pointer.
Passing a pointer was a bad idea as it collides with the overload for void*.
llvm-svn: 141971
|
|
|
|
|
|
| |
mechanism to lazily create analyses that are attached to AnalysisContext objects.
llvm-svn: 141425
|
|
|
|
|
|
| |
remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.)
llvm-svn: 140838
|
|
|
|
| |
llvm-svn: 140596
|
|
|
|
| |
llvm-svn: 140492
|
|
|
|
| |
llvm-svn: 140478
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
|
|
|
|
|
| |
methods match the name (not only the first one).
llvm-svn: 139439
|
|
|
|
|
|
| |
And with that, TransferFuncs is gone!
llvm-svn: 139003
|
|
|
|
|
|
|
|
|
|
| |
current analysis from CFRefCount to ExprEngine.
Remove TransferFuncs from ExprEngine and AnalysisConsumer.
Demote RetainReleaseChecker to a regular checker, and give it the name osx.cocoa.RetainCount (class name change coming shortly). Update tests accordingly.
llvm-svn: 138998
|
|
|
|
|
|
| |
its own method. No real functionality change.
llvm-svn: 138712
|
|
|
|
| |
llvm-svn: 137814
|
|
|
|
| |
llvm-svn: 137813
|
|
|
|
|
|
|
|
| |
via intptr_t.
This is ugly but ISO C++ doesn't allow direct casts.
llvm-svn: 137812
|
|
|
|
| |
llvm-svn: 137802
|
|
|
|
|
|
| |
support. Removes support for checker groups (we can add them back in later if we decide they are still useful), and -analyzer-checker-help output is a little worse for the time being (no packages).
llvm-svn: 137758
|
|
|
|
|
|
| |
and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at.
llvm-svn: 137537
|
|
|
|
|
|
|
|
| |
FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.
llvm-svn: 135914
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
|
|
| |
implementations.
llvm-svn: 131614
|
|
|
|
|
|
| |
entire TranslationUnit. Patch by Lei Zhang.
llvm-svn: 130913
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129559
|
|
|
|
|
|
| |
packages, and which packages/checkers are hidden.
llvm-svn: 128511
|
|
|
|
|
|
| |
headers.
llvm-svn: 126690
|
|
|
|
|
|
| |
misnomer award.
llvm-svn: 126676
|
|
|
|
|
|
| |
path-sensitive checkers.
llvm-svn: 126674
|
|
|
|
|
|
| |
'-warn-uninit-values'.
llvm-svn: 126673
|
|
|
|
|
|
|
|
| |
They cooperate in that NSErrorChecker listens for ImplicitNullDerefEvent events that
DereferenceChecker can dispatch.
ImplicitNullDerefEvent is when we dereferenced a location that may be null.
llvm-svn: 126659
|
|
|
|
|
|
|
|
|
| |
A checker can register as receiver/listener of "events" (basically it registers a callback
with a function getting called with an argument of the event type) and other checkers can
register as "dispatchers" and can pass an event object to all the listeners.
This allows cooperation amongst checkers but with very loose coupling.
llvm-svn: 126658
|
|
|
|
| |
llvm-svn: 126657
|