| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
|
| |
|
|
| |
llvm-svn: 116473
|
| |
|
|
|
|
| |
VisitCXXMemberCallExpr(). Ideally we should unify these code paths as much as possible, since they only differ by a few details.
llvm-svn: 114628
|
| |
|
|
|
|
| |
the assumption that EndNode == ErrorNode, but upcoming changes will break this.
llvm-svn: 114065
|
| |
|
|
|
|
| |
and discussions with Ted and Jordy.
llvm-svn: 114056
|
| |
|
|
|
|
| |
that we aborted analysis may not necessarily be due to a loop.
llvm-svn: 113862
|
| |
|
|
| |
llvm-svn: 113627
|
| |
|
|
|
|
| |
mutex can be nil
llvm-svn: 113573
|
| |
|
|
|
|
| |
for checkers).
llvm-svn: 113572
|
| |
|
|
| |
llvm-svn: 113482
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The end result is now we eagarly constant-fold symbols in the analyzer that are perfectly constrained
to be a constant value. This allows us to recover some path-sensitivity in some cases by lowering
the required level of reasoning power needed to evaluate some expressions.
The net win from this change is that the false positive in PR 8015 is fixed, and we also
find more idempotent operations bugs.
We do, however, regress with the BugReporterVisitors, which need to be modified to understand
this constant folding (and look past it). This causes some diagnostic regressions in plist-output.m
which will get addressed in a future patch. plist-output.m is now marked XFAIL, while
plist-output-alternate.m now tests that the plist output is working, but with the suboptimal
diagnostics. This second test file will eventually be removed.
llvm-svn: 113477
|
| |
|
|
|
|
| |
consider default case live if all enum values are covered
llvm-svn: 113457
|
| |
|
|
| |
llvm-svn: 113444
|
| |
|
|
|
|
| |
well-intentioned but completely unused code.
llvm-svn: 112868
|
| |
|
|
| |
llvm-svn: 112796
|
| |
|
|
|
|
| |
AssignE. Now StoreE (const Stmt*) represents the expression where the store took place, which is the assignment expression if it takes place in an assignment. This removes some conceptual dissidence as well as removes an extra parameter from the Checker::PreVisitBind() visitor. It also improves ranges and source location information in analyzer diagnostics.
llvm-svn: 112789
|
| |
|
|
|
|
| |
some issues being sorted out.
llvm-svn: 112493
|
| |
|
|
|
|
|
|
|
|
| |
The extra data stored on user-defined literal Tokens is stored in extra
allocated memory, which is managed by the PreprocessorLexer because there isn't
a better place to put it that makes sure it gets deallocated, but only after
it's used up. My testing has shown no significant slowdown as a result, but
independent testing would be appreciated.
llvm-svn: 112458
|
| |
|
|
|
|
| |
statements would cause the path to get prematurely aborted. Fixes <rdar://problem/8360854>.
llvm-svn: 112233
|
| |
|
|
| |
llvm-svn: 112229
|
| |
|
|
|
|
| |
to the new constants.
llvm-svn: 112047
|
| |
|
|
| |
llvm-svn: 111768
|
| |
|
|
|
|
| |
work-in-progress, but working! Effect on clients: all changes to a store now go through GRState.
llvm-svn: 111078
|
| |
|
|
|
|
| |
associated with a region and will be collected if the region dies or its checker fails to mark it as in use.
llvm-svn: 111076
|
| |
|
|
| |
llvm-svn: 110996
|
| |
|
|
| |
llvm-svn: 110904
|
| |
|
|
| |
llvm-svn: 110784
|
| |
|
|
|
|
|
|
| |
an lvalue of another, compatible Objective-C object type (e.g., a
subclass). Introduce a new initialization sequence step kind to
describe this binding, along with a new cast kind. Fixes PR7741.
llvm-svn: 110513
|
| |
|
|
|
|
|
|
|
| |
to a flag (-analyzer-check-idempotent-operations)
- Added IdempotentOperationChecker to experimental analyses for testing purposes
- Updated test cases to explictly call the checker
llvm-svn: 110482
|
| |
|
|
|
|
| |
checkersEvaluated really meaningful.
llvm-svn: 110430
|
| |
|
|
| |
llvm-svn: 110330
|
| |
|
|
| |
llvm-svn: 110317
|
| |
|
|
|
|
|
|
| |
IMHO a little easier to understand), and add the same sort of caching for EvalAssume (tied for least-used callback), mostly as proof-of-concept.
Before we go further with these, we should figure out a way to reuse the visit-and-cache code in CheckerVisit.
llvm-svn: 110191
|
| |
|
|
|
|
|
|
| |
changes through GRState instead of directly accessing the StoreManager. Also adds cover methods for InvalidateRegion(s) and EnterStackFrame to GRState.
This is in preparation for proposed region change notifications. No functionality change.
llvm-svn: 110137
|
| |
|
|
|
|
|
|
|
| |
doing postanalysis. This allows the checker to gather information about the state of the engine when it has finished.
- Exposed the worklist and BlockAborted flag in GRCoreEngine
- Changed postanalysis checkers to use the new infrastructure
llvm-svn: 110095
|
| |
|
|
|
|
| |
and CharacterLiteral. Fixes an assertion failure reported in PR 7675.
llvm-svn: 109719
|
| |
|
|
|
|
| |
checks are already done within getConjuredSymbolVal() itself.
llvm-svn: 109707
|
| |
|
|
| |
llvm-svn: 109211
|
| |
|
|
| |
llvm-svn: 109210
|
| |
|
|
| |
llvm-svn: 108811
|
| |
|
|
| |
llvm-svn: 108800
|
| |
|
|
| |
llvm-svn: 108668
|
| |
|
|
| |
llvm-svn: 108621
|
| |
|
|
|
|
|
| |
Let AnalysisContext contain a TranslationUnit.
Let CallEnter refer to an AnalysisContext instead of a FunctionDecl.
llvm-svn: 108617
|
| |
|
|
|
|
| |
removing a bogus assertion.
llvm-svn: 108602
|
| |
|
|
|
|
|
|
|
|
| |
it into the default path-sensitive analysis options.
- Added checks for static local variables, self assigned parameters, and truncating/extending self assignments
- Removed command line option (now default with --analyze)
- Updated test cases to pass with idempotent operation warnings
llvm-svn: 108550
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reinterpret_casts (possibly indirectly via C-style/functional casts)
on values, e.g.,
int i;
reinterpret_cast<short&>(i);
The IR generated for this is essentially the same as for
*reinterpret_cast<short*>(&i).
Fixes PR6437, PR7593, and PR7344.
llvm-svn: 108294
|
| |
|
|
|
|
| |
suppressing copies of objects with trivial copy constructors.
llvm-svn: 107857
|
| |
|
|
|
|
| |
breaking bootstrap on Linux.
llvm-svn: 107837
|
| |
|
|
|
|
| |
newly-narrowed scope. No functionality change.
llvm-svn: 107828
|