| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Again, I tried to update cmake but it is untested.
llvm-svn: 67605
|
|
|
|
|
|
|
| |
deletes all registered BugTypes from BugReporter, and thus we need to display
the graph first.
llvm-svn: 66623
|
|
|
|
|
|
| |
driver taking lib/Driver.
llvm-svn: 65811
|
|
|
|
|
|
|
|
|
|
|
| |
expressions of the form: 'short x = (y != 10);' While we handle 'int x = (y !=
10)' lazily, the cast to another integer type currently loses the symbolic
constraint. Eager evaluation of the constraint causes the paths to bifurcate and
eagerly evaluate 'y != 10' to a constant of 1 or 0. This should address
<rdar://problem/6619921> until we have a better (more lazy approach) for
handling promotions/truncations of symbolic integer values.
llvm-svn: 65480
|
|
|
|
| |
llvm-svn: 65173
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move all analyzer options logic to AnalysisConsumer.cpp.
- Unified specification of stores/constraints/output to be:
-analyzer-output=...
-analyzer-store=...
-analyzer-constraints=...
instead of -analyzer-range-constraints, -analyzer-store-basic, etc.
- Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new
interface
- Updated test cases to conform to new driver options
llvm-svn: 64737
|
|
|
|
| |
llvm-svn: 64638
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ConstraintManager:
- constify getSymVal()
BasicConstraintManager:
- Pull out logic that would be common to ConstraintManagers of a similar nature
and put them in a parent class called 'SimpleConstraintManager'.
RangeConstraintManager:
- Added a new prototype ConstraintManager to track ranges of variables! This
ConstraintManager keeps tracks of ranges of concrete integers that a symbolic
integer may have.
AnalysisConsumer:
- Add driver option to use RangeConstraintManager with GRExprEngine-based
analyses.
llvm-svn: 64558
|
|
|
|
|
|
| |
HandleTranslationUnit to ensure that the client's destructor is called even with --disable-free.
llvm-svn: 64422
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes,
and BugTypes are owned by the BugReporter object.
The major functionality change in this patch is that reports are not immediately
emitted by a call to BugReporter::EmitWarning (now called EmitReport), but
instead of queued up in report "equivalence classes". When
BugReporter::FlushReports() is called, it emits one diagnostic per report
equivalence class. This provides a nice cleanup with the caching of reports as
well as enables the BugReporter engine to select the "best" path for reporting a
path-sensitive bug based on all the locations in the ExplodedGraph that the same
bug could occur.
Along with this patch, Leaks are now coalesced into a common equivalence class
by their allocation site, and the "summary" diagnostic for leaks now reports the
allocation site as the location of the bug (this may later be augmented to also
provide an example location where the leak occurs).
llvm-svn: 63796
|
|
|
|
|
|
|
| |
- Pass "Actions" vector by reference.
- Remove guard against checking macro-generated code.
llvm-svn: 63546
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).
This patch also includes several cleanups along the way:
- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.
This patch is a prerequisite for #line, but does not actually provide
any #line functionality.
llvm-svn: 63098
|
|
|
|
|
|
| |
analyzer should output 'ANALYZE:' messages to display its progress on a source file.
llvm-svn: 62875
|
|
|
|
|
|
| |
contains no error reports.
llvm-svn: 62871
|
|
|
|
|
|
| |
us to measure the effect of this optimization.
llvm-svn: 61319
|
|
|
|
| |
llvm-svn: 60732
|
|
|
|
|
|
|
|
|
|
| |
- Creator function pointers are saved in ManagerRegistry.
- The Register* class is used to notify ManagerRegistry new module is
available.
- AnalysisManager queries ManagerRegistry for configurable module. Then it
passes them to GRExprEngine, in turn to GRStateManager.
llvm-svn: 60143
|
|
|
|
| |
llvm-svn: 59983
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a new NamedDecl::getAsString() method.
Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.
This also adds new formatters for objcinstance and objcclass
as described in the dox.
llvm-svn: 59933
|
|
|
|
|
|
| |
intermixing of 'ANALYZE' and the other diagnostics the clang driver emits to standard error.
llvm-svn: 59730
|
|
|
|
|
|
|
|
| |
the Backend output should be done in binary mode.
- I'd appreciate it if someone who has a Windows build could verify
this.
llvm-svn: 59221
|
|
|
|
| |
llvm-svn: 58831
|
|
|
|
| |
llvm-svn: 58766
|
|
|
|
|
|
| |
Fix Plist output.
llvm-svn: 58652
|
|
|
|
| |
llvm-svn: 58646
|
|
|
|
| |
llvm-svn: 58420
|
|
|
|
| |
llvm-svn: 58056
|
|
|
|
|
|
| |
end of the retain/release analysis.
llvm-svn: 56312
|
|
|
|
|
|
|
|
| |
"Method accepting NSError** argument should have non-void return value to indicate that an error occurred."
Test case written, but the header needs to be delta-debugged reduced. Will commit shortly.
llvm-svn: 56297
|
|
|
|
| |
llvm-svn: 55750
|
|
|
|
| |
llvm-svn: 55525
|
|
|
|
| |
llvm-svn: 55488
|
|
|
|
| |
llvm-svn: 55463
|
|
|
|
|
|
| |
Cleanup ubigraph files when don't drawing the graphs.
llvm-svn: 55459
|
|
|
|
| |
llvm-svn: 55446
|
|
|
|
|
|
| |
quality).
llvm-svn: 55442
|
|
|
|
| |
llvm-svn: 55274
|
|
|
|
|
|
| |
when in -fobjc-gc-only mode.
llvm-svn: 54319
|
|
|
|
| |
llvm-svn: 53942
|
|
|
|
|
|
| |
GRExprEngineInternalChecks.cpp.
llvm-svn: 53909
|
|
|
|
|
|
| |
declarations (bodies) or Objective-C @implementation blocks.
llvm-svn: 53584
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang.cpp now #include these definitions to create the command line options, and
AnalysisConsumer #includes this file to generate the switch statement to create
actions.
Renamed -check-objc-methodsigs to -warn-objc-methodsigs.
The "missing -dealloc" check is now optional: -warn-objc-missing-dealloc
llvm-svn: 53575
|
|
|
|
|
|
|
|
|
| |
ObjCImplementationDecls and sees if a ancestor class defines a method with the
same selector but with a different type signature. Right now it just compares
return types, and mainly looks at differences in primitive values. The checking
will be expanded in the future.
llvm-svn: 53482
|
|
|
|
|
|
| |
the code is compiled with GC.
llvm-svn: 53098
|
|
|
|
|
|
|
|
| |
instead of references, because they can both fail
on functions we cannot construct full CFGs for yet.
llvm-svn: 53081
|
|
|
|
|
|
| |
-dealloc, and whether or not that implementation calls [super dealloc].
llvm-svn: 53075
|
|
|
|
|
|
| |
BugReporter interface.
llvm-svn: 53054
|
|
|
|
|
|
|
|
| |
ASTContext&, PathDiagnosticClient*, can be provided by an external source.
Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism.
llvm-svn: 53048
|
|
|
|
|
|
|
|
| |
creator.
This allows an optimization in AnalysisConsumer where the same LiveVariables information is used between multiple analyses.
llvm-svn: 53046
|
|
|
|
|
|
|
|
| |
LiveVariables object.
Modified the DeadStores logic in AnalysisConsumer.cpp to use the LiveVariables object created by the AnalysisManager.
llvm-svn: 53043
|