| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
helper function for path display.
- Created private class CFGReachabilityAnalysis, which provides cached reachability lookups in the CFG
- Simplified PathWasCompletelyAnalyzed to use the new reachability class
- Added getLastRelevantNodes function for future use with path displaying in BugReporter
llvm-svn: 113465
|
| |
|
|
|
|
| |
consider default case live if all enum values are covered
llvm-svn: 113457
|
| |
|
|
| |
llvm-svn: 113444
|
| |
|
|
|
|
| |
and simplify surrounding checking logic.
llvm-svn: 113282
|
| |
|
|
|
|
| |
added a test case.
llvm-svn: 113269
|
| |
|
|
|
|
|
|
|
| |
should probably be removed if it has no purpose, but I just #if'd it out
in case it's usefulIdempotentOperationChecker::isTruncationExtensionAssignment
should probably be removed if it has no purpose, but I just #if'd it out
in case it's useful
llvm-svn: 112949
|
| |
|
|
| |
llvm-svn: 112932
|
| |
|
|
| |
llvm-svn: 112931
|
| |
|
|
|
|
| |
analyzing loads/stores, we lose the location SVal, which makes it difficult to recover in some cases (e.g., for post diagnostics). This is prep for pending changes to GRExprEngine.
llvm-svn: 112930
|
| |
|
|
|
|
|
|
| |
symbol -> constant folding. This isn't used yet, but
is prep for some pending optimizations in GRExprEngine.
llvm-svn: 112929
|
| |
|
|
|
|
| |
struct. Clang would zero out the enum and pointer in the struct in some conditions, but GCC would never zero out the values.
llvm-svn: 112909
|
| |
|
|
|
|
| |
well-intentioned but completely unused code.
llvm-svn: 112868
|
| |
|
|
| |
llvm-svn: 112857
|
| |
|
|
| |
llvm-svn: 112850
|
| |
|
|
|
|
|
|
|
| |
- SourceRange highlighting is only given for the relevant side of the operator (assignments give both)
- Added PostVisitBinaryOperator hook to retrieve the ExplodedNode for an operator
- Added a BugReporterVisitor to display the last store to every VarDecl in a Stmt
- Changed bug reporting to use the new BugReporterVisitor
llvm-svn: 112839
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 112784
|
| |
|
|
|
|
| |
case for follow-on work). This patch adds a bandaid for RegionStore's limited reasoning about symbolic array values.
llvm-svn: 112766
|
| |
|
|
|
|
| |
function's address. Fixes PR 8052.
llvm-svn: 112761
|
| |
|
|
|
|
| |
type. Fixes PR 8050.
llvm-svn: 112738
|
| |
|
|
|
|
| |
Goodnow II!
llvm-svn: 112569
|
| |
|
|
|
|
|
|
|
|
| |
- Fixed a regression where assigning '0' would be reported
- Changed the way self assignments are filtered to allow constant testing
- Added a test case for assign ops
- Fixed one test case where a function pointer was not considered constant
- Fixed test cases relating to 0 assignment
llvm-svn: 112501
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 112414
|
| |
|
|
|
|
| |
updated test cases flagged by it.
llvm-svn: 112313
|
| |
|
|
|
|
|
|
|
|
|
| |
increase the coverage of bugs. Primarily affects IdempotentOperationChecker.
- Migrated a temporarily separated test back to its original file (bug has been fixed, null-deref-ps-temp.c -> null-deref-ps.c)
- Changed SymbolManager to use relaxed LiveVariables
- Updated several test cases that the IdempotentOperationChecker class now flags
- Added test case to test relaxed LiveVariables use by the IdempotentOperationChecker
llvm-svn: 112312
|
| |
|
|
|
|
| |
in other checkers.
llvm-svn: 112310
|
| |
|
|
|
|
| |
updated properly.
llvm-svn: 112309
|
| |
|
|
|
|
| |
statements would cause the path to get prematurely aborted. Fixes <rdar://problem/8360854>.
llvm-svn: 112233
|
| |
|
|
| |
llvm-svn: 112229
|
| |
|
|
|
|
| |
This lets us remove Sema.h's dependency on Expr.h and Decl.h.
llvm-svn: 112156
|
| |
|
|
| |
llvm-svn: 112132
|
| |
|
|
|
|
| |
to the new constants.
llvm-svn: 112047
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Added wasReferenced function to PseudoConstantAnalysis to determine if a variable was ever referenced in a function (outside of a self-assignment)
- BlockDeclRefExpr referenced variables are now explicitly added to the non-constant list
- Remove unnecessary ignore of implicit casts
- Generalized parameter self-assign detection to detect deliberate self-assigns of variables to avoid unused variable warnings
- Updated test cases with deliberate self-assignments
- Fixed bug with C++ references and pseudoconstants
- Added test case for C++ references and pseudoconstants
llvm-svn: 111965
|
| |
|
|
| |
llvm-svn: 111897
|
| |
|
|
|
|
|
|
|
|
|
|
| |
IdempotentOperationChecker uses it.
- Psuedo -> Pseudo (doh...)
- C++ reference support
- Added pseudoconstant test case for __block vars
- Separated out static local checking from pseudoconstant analysis and generalized to non-local checking
- Added missing test cases for storage false positives
llvm-svn: 111832
|
| |
|
|
| |
llvm-svn: 111790
|
| |
|
|
| |
llvm-svn: 111768
|
| |
|
|
| |
llvm-svn: 111737
|
| |
|
|
| |
llvm-svn: 111736
|
| |
|
|
| |
llvm-svn: 111735
|
| |
|
|
|
|
|
|
| |
with the same binding key. The only trick here is that sometimes the Symbolic
region is stored in with an LocAsInteger wrapper. We unwrap that in
SVal::getAsLocSymbol().
llvm-svn: 111734
|
| |
|
|
|
|
| |
region and its base region as the same binding key.
llvm-svn: 111732
|
| |
|
|
| |
llvm-svn: 111731
|
| |
|
|
|
|
|
| |
relavant any more, because we set its default value to a symbol, and the type of
default symbolic value is irrelavant.
llvm-svn: 111730
|
| |
|
|
| |
llvm-svn: 111616
|
| |
|
|
|
|
| |
Fixes PR7945.
llvm-svn: 111602
|
| |
|
|
| |
llvm-svn: 111541
|