llvm-project/clang/test/Analysis
Gabor Marton 806329da07 [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants
D103314 introduced symbol simplification when a new constant constraint is
added. Currently, we simplify existing equivalence classes by iterating over
all existing members of them and trying to simplify each member symbol with
simplifySVal.

At the end of such a simplification round we may end up introducing a
new constant constraint. Example:
```
  if (a + b + c != d)
    return;
  if (c + b != 0)
    return;
  // Simplification starts here.
  if (b != 0)
    return;
```
The `c == 0` constraint is the result of the first simplification iteration.
However, we could do another round of simplification to reach the conclusion
that `a == d`. Generally, we could do as many new iterations until we reach a
fixpoint.

We can reach to a fixpoint by recursively calling `State->assume` on the
newly simplified symbol. By calling `State->assume` we re-ignite the
whole assume machinery (along e.g with adjustment handling).

Why should we do this? By reaching a fixpoint in simplification we are capable
of discovering infeasible states at the moment of the introduction of the
**first** constant constraint.
Let's modify the previous example just a bit, and consider what happens without
the fixpoint iteration.
```
  if (a + b + c != d)
    return;
  if (c + b != 0)
    return;
  // Adding a new constraint.
  if (a == d)
    return;
  // This brings in a contradiction.
  if (b != 0)
    return;
  clang_analyzer_warnIfReached(); // This produces a warning.
              // The path is already infeasible...
  if (c == 0) // ...but we realize that only when we evaluate `c == 0`.
    return;
```
What happens currently, without the fixpoint iteration? As the inline comments
suggest, without the fixpoint iteration we are doomed to realize that we are on
an infeasible path only after we are already walking on that. With fixpoint
iteration we can detect that before stepping on that. With fixpoint iteration,
the `clang_analyzer_warnIfReached` does not warn in the above example b/c
during the evaluation of `b == 0` we realize the contradiction. The engine and
the checkers do rely on that either `assume(Cond)` or `assume(!Cond)` should be
feasible. This is in fact assured by the so called expensive checks
(LLVM_ENABLE_EXPENSIVE_CHECKS). The StdLibraryFuncionsChecker is notably one of
the checkers that has a very similar assertion.

Before this patch, we simply added the simplified symbol to the equivalence
class. In this patch, after we have added the simplified symbol, we remove the
old (more complex) symbol from the members of the equivalence class
(`ClassMembers`). Removing the old symbol is beneficial because during the next
iteration of the simplification we don't have to consider again the old symbol.

Contrary to how we handle `ClassMembers`, we don't remove the old Sym->Class
relation from the `ClassMap`. This is important for two reasons: The
constraints of the old symbol can still be found via it's equivalence class
that it used to be the member of (1). We can spare one removal and thus one
additional tree in the forest of `ClassMap` (2).

Performance and complexity: Let us assume that in a State we have N non-trivial
equivalence classes and that all constraints and disequality info is related to
non-trivial classes. In the worst case, we can simplify only one symbol of one
class in each iteration. The number of symbols in one class cannot grow b/c we
replace the old symbol with the simplified one. Also, the number of the
equivalence classes can decrease only, b/c the algorithm does a merge operation
optionally. We need N iterations in this case to reach the fixpoint. Thus, the
steps needed to be done in the worst case is proportional to `N*N`. Empirical
results (attached) show that there is some hardly noticeable run-time and peak
memory discrepancy compared to the baseline. In my opinion, these differences
could be the result of measurement error.
This worst case scenario can be extended to that cases when we have trivial
classes in the constraints and in the disequality map are transforming to such
a State where there are only non-trivial classes, b/c the algorithm does merge
operations. A merge operation on two trivial classes results in one non-trivial
class.

Differential Revision: https://reviews.llvm.org/D106823
2021-11-12 11:44:49 +01:00
..
Checkers [Analyzer][WebKit] UncountedLocalVarsChecker 2020-09-22 11:05:04 -07:00
Inputs [analyzer] Add std::string checker 2021-10-25 11:15:40 +02:00
cert [analyzer] Add InvalidPtrChecker 2021-10-04 17:08:34 +02:00
copypaste [clang][Frontend] Fix a crash in DiagnosticRenderer. 2021-02-17 09:02:49 +01:00
diagnostics [analyzer] Add std::string checker 2021-10-25 11:15:40 +02:00
engine
exploded-graph-rewriter [NFC] Disallow unused prefixes in clang/test/Analysis 2021-01-25 15:53:00 -08:00
exploration_order
html_diagnostics [analyzer] Highlight arrows for currently selected event 2021-08-02 19:15:01 +03:00
inlining Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
objc [analyzer][DirectIvarAssignment] Turn DirectIvarAssignmentForAnnotatedFunctions into a checker option 2020-05-19 15:41:43 +02:00
scan-build [analyzer] Fix scan-build report deduplication. 2021-08-26 13:34:29 -07:00
unified-sources
z3 [analyzer] Fix a crash for dereferencing an empty llvm::Optional variable in SMTConstraintManager.h. 2021-05-04 16:50:21 +02:00
CFContainers-invalid.c
CFContainers.mm [analyzer] ObjCContainers: Track index values. 2018-12-15 02:06:13 +00:00
CFNumber.c
CFRetainRelease_NSAssertionHandler.m
CGColorSpace.c
CheckNSError.m [analyzer] Do not report CFError null dereference for nonnull params. 2020-04-20 12:33:01 +03:00
CheckThatArraySubsciptNodeIsNotCollected.cpp [analyzer] Consider array subscripts to be interesting lvalues. 2020-04-23 19:52:45 +03:00
DeallocMissingRelease.m
DeallocUseAfterFreeErrors.m
DeleteWithNonVirtualDtor.cpp
DynamicTypePropagation.m
MPIMock.h
Malloc+MismatchedDeallocator+NewDelete.cpp Revert rC349281 '[analyzer][MallocChecker][NFC] Document and reorganize some functions' 2018-12-17 12:07:57 +00:00
Malloc+MismatchedDeallocator_intersections.cpp
MemRegion.cpp
MismatchedDeallocator-checker-test.mm
MismatchedDeallocator-path-notes.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
MissingDealloc.m [analyzer] ObjCDealloc: Fix a crash when a class attempts to deallocate a class. 2018-12-15 02:09:02 +00:00
NSContainers.m [analyzer] Fix skipping the call during inlined defensive check suppression. 2019-11-08 18:27:14 -08:00
NSPanel.m
NSString.m
NSWindow.m
NewDelete+MismatchedDeallocator_intersections.cpp [analyzer] Reimplement dependencies between checkers 2019-01-26 20:06:54 +00:00
NewDelete-atomics.cpp
NewDelete-checker-test.cpp [analyzer] Fix non-obvious analyzer warning: Use of zero-allocated memory. 2021-10-12 10:41:00 -07:00
NewDelete-custom.cpp [analyzer] pr39348: MallocChecker: Realize that sized delete isn't custom delete. 2018-11-01 00:43:35 +00:00
NewDelete-intersections.mm [Sema] turns -Wfree-nonheap-object on by default 2021-01-15 21:38:47 +00:00
NewDelete-path-notes.cpp [analyzer] Correctly propagate ConstructionContextLayer thru ParenExpr 2021-05-24 10:16:52 +02:00
NewDelete-sized-deallocation.cpp [analyzer] pr39348: MallocChecker: Realize that sized delete isn't custom delete. 2018-11-01 00:43:35 +00:00
NewDelete-variadic.cpp
NewDeleteLeaks-PR18394.cpp
NewDeleteLeaks-PR19102.cpp [analyzer] Correctly propagate ConstructionContextLayer thru ParenExpr 2021-05-24 10:16:52 +02:00
NewDeleteLeaks.cpp [analyzer] MallocChecker: Add notes from NoOwnershipChangeVisitor only when a function "intents", but doesn't change ownership, enable by default 2021-09-13 15:01:20 +02:00
NoReturn.m
OSAtomic_mac.c [analyzer] Unbreak body farms in presence of multiple declarations. 2019-04-23 02:56:00 +00:00
OSAtomic_mac.cpp
ObjCProperties.m [analyzer] Fix property access kind detection inside parentheses. 2021-10-14 21:07:19 -07:00
ObjCPropertiesSyntaxChecks.m
ObjCRetSigs.m
PR2978.m
PR3991.m
PR7218.c
PR9741.cpp
PR12905.c
PR24184.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
PR35418.cpp [analyzer] Introduce reasoning about symbolic remainder operator 2020-05-28 18:56:38 +03:00
PR37855.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
PR38208.c
PR40625.cpp [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
PR46264.cpp [analyzer] Move test case to existing test file and remove duplicated test file. 2021-08-10 19:11:21 +03:00
PR47511.cpp revert test commit 2021-08-10 19:19:27 +03:00
PR49490.cpp [analyzer][solver] Prevent infeasible states (PR49490) 2021-03-12 15:56:48 +03:00
PR49642.c [analyzer][solver] Fix infeasible constraints (PR49642) 2021-03-22 11:02:02 +03:00
PR50268.c [analyzer][solver] Prevent use of a null state 2021-05-13 20:16:29 +03:00
SpecialFunctionsCFError.cpp [analyzer] Fix NSErrorChecker false positives on constructors. 2020-04-06 20:33:38 +03:00
UserNullabilityAnnotations.m [analyzer] Fix crash for non-pointers annotated as nonnull 2020-05-13 13:36:49 +03:00
_Bool-increment-decrement.c
a_flaky_crash.cpp A test commit as a new contributor to verify commit access is OK. 2020-05-04 21:36:18 +03:00
additive-folding-range-constraints.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
additive-folding.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
aggrinit-cfg-output.cpp [CFG] Add an option to expand CXXDefaultInitExpr into aggregate initialization 2019-12-17 17:56:06 -08:00
analyzeOneFunction.m
analyzer-checker-config.c [analyzer] Add CheckerManager::getChecker, make sure that a registry function registers no more than 1 checker 2019-01-26 21:41:50 +00:00
analyzer-checker-option-help.c [analyzer] List checker/plugin options in 3 categories: released, alpha, developer 2019-05-23 22:52:09 +00:00
analyzer-config.c [analyzer] Introduce the assume-controlled-environment config option 2021-10-13 10:50:26 +02:00
analyzer-display-progress.cpp [analyzer] Print time taken to analyze each function 2021-07-13 04:52:47 +00:00
analyzer-display-progress.m
analyzer-enabled-checkers.c [analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite 2020-09-15 16:35:39 +02:00
analyzer-list-configs.c [analyzer] Add a new frontend flag to display all checker options 2019-05-23 20:47:28 +00:00
analyzer-stats.c
analyzer_test.py
arc-zero-init.m
array-struct-region.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
array-struct-region.cpp Merge and improve code that detects same value in comparisons. 2019-09-21 03:02:26 +00:00
array-struct.c
asm-goto.cpp Re-check in clang support gun asm goto after fixing tests. 2019-06-03 15:57:25 +00:00
asm.cpp [AST, analyzer] Transform rvalue cast outputs to lvalues (fheinous-gnu-extensions) 2018-10-20 22:49:23 +00:00
assume-controlled-environment.c [analyzer] Introduce the assume-controlled-environment config option 2021-10-13 10:50:26 +02:00
atomics.c [analyzer] Fix crash when reasoning about C11 atomics (PR49422) 2021-03-30 16:04:19 +03:00
auto-obj-dtors-cfg-output.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
autoreleasewritechecker_test.m [analyzer] ObjCAutoreleaseWriteChecker: Support explicit autoreleasepools. 2020-06-03 19:06:04 +03:00
base-init.cpp
bitwise-ops.c
block-in-critical-section.cpp
block-in-critical-section.m
blocks-no-inline.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
blocks-nrvo.c [clang] disable implicit moves when not in CPlusPLus 2021-09-14 11:29:47 +02:00
blocks.m [analyzer] Fix false positive on introspection of a block's internal layout. 2019-12-06 13:24:20 -08:00
blocks.mm Defer capture initialization for blocks until after we've left the 2019-05-31 00:45:09 +00:00
bool-assignment.c
bool-increment.cpp
bsd-string.c [analyzer] NFCi: Refactor CStringChecker: use strongly typed internal API 2020-04-09 16:06:32 +02:00
bstring.c [analyzer] NFCi: Refactor CStringChecker: use strongly typed internal API 2020-04-09 16:06:32 +02:00
bstring.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
bug_hash_test.cpp
bug_hash_test.m
builtin-functions.cpp [analyzer] When failing to evaluate a __builtin_constant_p, presume it's false. 2019-04-03 01:53:40 +00:00
builtin_bitcast.cpp [analyzer] LValueToRValueBitCasts should evaluate to an r-value 2021-07-01 10:54:22 +02:00
builtin_signbit.cpp
c11lock.c [analyzer] Add FuchsiaLockChecker and C11LockChecker 2020-01-27 13:55:56 -08:00
call-and-message.c [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
call-and-message.cpp [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
call-and-message.m [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
call-and-message.mm [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
call-invalidation.cpp Revert "[analyzer] Toning down invalidation a bit". 2019-04-03 18:21:16 +00:00
call_once.cpp
cast-to-struct.cpp
cast-value-logic.cpp [analyzer] pr47037: CastValueChecker: Support for the new variadic isa<>. 2020-08-27 12:15:25 -07:00
cast-value-notes.cpp [analyzer] pr47037: CastValueChecker: Support for the new variadic isa<>. 2020-08-27 12:15:25 -07:00
cast-value-state-dump.cpp [analyzer] NFC: Store the pointee/referenced type for dynamic type tracking. 2020-08-27 12:15:23 -07:00
cast-value-weird.cpp [analyzer] pr43179: Make CallDescription defensive against C variadic functions. 2019-09-06 20:55:24 +00:00
castexpr-callback.c
casts.c [analyzer][NFC] Inline ExprEngine::handleLVectorSplat() 2021-07-01 10:54:28 +02:00
casts.cpp [analyzer] pr38668: Do not attempt to cast loaded integers to floats. 2018-12-22 02:06:51 +00:00
casts.m
cfg-indirect-goto-determinism.cpp
cfg-openmp.cpp Add map-type check for target and target data directive, by Chi Chun 2020-04-07 07:15:52 -04:00
cfg-rich-constructors.cpp [NFC] Disallow unused prefixes in clang/test/Analysis 2021-01-25 15:53:00 -08:00
cfg-rich-constructors.mm [NFC] Disallow unused prefixes in clang/test/Analysis 2021-01-25 15:53:00 -08:00
cfg.c [NFC] Disallow unused prefixes in clang/test/Analysis 2021-01-25 15:53:00 -08:00
cfg.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
cfref_PR2519.c
cfref_rdar6080742.c
check-analyzer-fixit.py [analyzer] decode() a bytes object to make Python3 happy 2020-03-04 17:12:48 +00:00
check-deserialization.cpp
checker-dependencies.c [analyzer] Fix an assertion failure if plugins added dependencies 2019-04-19 11:01:35 +00:00
checker-plugins.c [Support] Fix formatted_raw_ostream for UTF-8 2020-07-06 16:18:15 +01:00
chroot.c
class-object-state-dump.m [analyzer] Track runtime types represented by Obj-C Class objects 2020-04-29 13:35:53 +03:00
comparison-implicit-casts.cpp
complex-init-list.cpp
complex.c [analyzer] PR41753: Include complex integer types in NonLoc::isCompoundType 2019-05-18 12:34:08 +00:00
compound-literals.c [analyzer] Allow bindings of the CompoundLiteralRegion 2020-05-28 14:11:57 +03:00
concrete-address.c
conditional-operator.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
conditional-path-notes.c Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
const-method-call.cpp [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
constant-folding.c Revert "[analyzer][solver] Introduce reasoning for not equal to operator" 2021-10-23 21:01:59 +02:00
constraint-assignor.c [Analyzer][solver] Handle adjustments in constraint assignor remainder 2021-10-27 17:14:34 +02:00
constraint_manager_conditions.cpp [analyzer][solver] Fix CmpOpTable handling bug 2021-10-06 18:28:03 +02:00
constraint_manager_negate_difference.c [analyzer] Improved RangeSet::Negate support of unsigned ranges 2020-05-25 18:52:22 +03:00
container-modeling-no-aggressive-binary-operation-simplification-warn.cpp [Analyzer] Fix for incorrect use of container and iterator checkers 2020-03-30 09:14:45 +02:00
container-modeling.cpp [Analyzer] Only add container note tags to the operations of the affected container 2020-03-26 09:44:16 +01:00
conversion-tracking-notes.c [Analyzer] ConversionChecker: track back the cast expression 2021-09-16 11:42:54 +02:00
conversion.c [Analyzer] ConversionChecker: track back the cast expression 2021-09-16 11:42:54 +02:00
copy-elision.cpp [analyzer] Catch leaking stack addresses via stack variables 2021-08-27 11:31:16 +02:00
copy-elision.mm [analyzer] Fix a crash when doing RVO from within blocks. 2019-05-07 22:33:13 +00:00
coverage.c
crash-trace.c [analyzer][NFC] Display the correct function name even in crash dumps 2021-07-12 09:06:46 +02:00
cstring-plist.c [analyzer][NFC] Prettify some RUN: lines in test files. 2019-05-23 15:49:04 +00:00
cstring-ranges.c [analyzer] CStringChecker: Improve warning messages. 2019-12-11 11:22:36 -08:00
cstring-syntax-cxx.cpp
cstring-syntax-weird.c [analyzer] Fix analyzer warnings on analyzer. 2019-08-28 18:44:38 +00:00
cstring-syntax-weird2.c [analyzer] Fix analyzer warnings on analyzer. 2019-08-28 18:44:38 +00:00
cstring-syntax.c [analyzer] Fix analyzer warnings on analyzer. 2019-08-28 18:44:38 +00:00
ctor.mm [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
ctu-different-triples.cpp [analyzer] On-demand parsing capability for CTU 2020-06-11 10:56:59 +02:00
ctu-hdr.h
ctu-implicit.c [ASTImporter] Add Visitor for TypedefNameDecl's 2020-07-28 11:52:29 -05:00
ctu-import-threshold.c [analyzer] Add CTUImportCppThreshold for C++ files 2020-07-09 15:36:33 +02:00
ctu-inherited-default-ctor.cpp [analyzer][CTU][NFC] Fix "Add an extra regression test" 2021-03-10 13:07:49 +01:00
ctu-main.c [AST][PCH][ASTImporter] Fix UB caused by uninited SwitchStmt member 2021-03-04 15:10:04 +01:00
ctu-main.cpp [analyzer] On-demand parsing capability for CTU 2020-06-11 10:56:59 +02:00
ctu-on-demand-parsing.c [analyzer] ctu-on-demand-parsing tests: replace linux -> system-linux 2020-07-13 14:29:47 +02:00
ctu-on-demand-parsing.cpp [analyzer] ctu-on-demand-parsing tests: replace linux -> system-linux 2020-07-13 14:29:47 +02:00
ctu-unknown-parts-in-triples.cpp [analyzer] On-demand parsing capability for CTU 2020-06-11 10:56:59 +02:00
cxx-callgraph.cpp [CallGraph] Take into accound calls that aren't within any function bodies. 2019-08-20 02:22:37 +00:00
cxx-crashes.cpp
cxx-dynamic-memory-analysis-order.cpp [analyzer][NFC] Introduce CXXDeallocatorCall, deploy it in MallocChecker 2020-05-19 00:18:38 +02:00
cxx-for-range-cfg.cpp
cxx-for-range.cpp Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
cxx-inherited-ctor-init-expr.cpp [analyzer] Skip analysis of inherited ctor as top-level function 2020-03-09 12:05:11 +01:00
cxx-inherited-ctor-is-skipped-as-top-level.cpp [analyzer] Skip analysis of inherited ctor as top-level function 2020-03-09 12:05:11 +01:00
cxx-method-names.cpp
cxx-uninitialized-object-inheritance.cpp [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
cxx-uninitialized-object-no-dereference.cpp [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
cxx-uninitialized-object-notes-as-warnings.cpp [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
cxx-uninitialized-object-ptr-ref.cpp [analyzer] Catch leaking stack addresses via stack variables 2021-08-27 11:31:16 +02:00
cxx-uninitialized-object-unguarded-access.cpp [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
cxx-uninitialized-object-unionlike-constructs.cpp [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
cxx-uninitialized-object.cpp [analyzer] PR41753: Include complex integer types in NonLoc::isCompoundType 2019-05-18 12:34:08 +00:00
cxx11-crashes.cpp
cxxctr-evalcall-analysis-order.cpp [analyzer] Enable constructor support in evalCall event. 2020-06-25 09:47:13 -07:00
cxxnewexpr-callback-inline.cpp
cxxnewexpr-callback-noinline.cpp
dead-stores.c Diagnose -Wunused-value based on CFG reachability 2021-09-28 10:00:15 -07:00
dead-stores.cpp [analyzer] Add a checker option to detect nested dead stores 2019-09-03 15:22:43 +00:00
dead-stores.m [analyzer] Add a checker option to detect nested dead stores 2019-09-03 15:22:43 +00:00
deadstores-driverkit.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
debug-CallGraph.cpp [[Clang CallGraph]] CallGraph should still record calls to decls. 2020-03-20 08:55:23 -07:00
debug-container-modeling.cpp [Analyzer] Split container modeling from iterator modeling 2020-01-29 16:10:45 +01:00
debug-exprinspection-istainted.c [analyzer][taint] Add isTainted debug expression inspection check 2020-03-03 14:40:23 +01:00
debug-iterator-modeling.cpp [Analyzer] Split container modeling from iterator modeling 2020-01-29 16:10:45 +01:00
default-analyze.m
default-diagnostic-visitors.c
delayed-template-parsing-crash.cpp
delegates.m
derived-to-base.cpp
designated-initializer-values.c [analyzer] Do not cache out on some shared implicit AST nodes 2019-12-11 17:15:12 -08:00
designated-initializer.c [analyzer] Do not cache out on some shared implicit AST nodes 2019-12-11 17:15:12 -08:00
disable-all-checks.c [analyzer][NFC] Reimplement checker options 2019-04-19 12:32:10 +00:00
dispatch-once.m [analyzer] Display the checker name in the text output 2020-04-09 16:21:45 +02:00
div-zero.cpp
division-by-zero-track-zero.c [Analyzer] Track RValue expressions 2021-03-30 14:48:38 +02:00
division-by-zero-track-zero.cpp [Analyzer] Track RValue expressions 2021-03-30 14:48:38 +02:00
division-by-zero.c
domtest.c [analyzer][IDF] Add a control dependency calculator + a new debug checker 2019-07-05 12:17:44 +00:00
domtest.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
double-ranges-bug.c [analyzer] Refactor range inference for symbolic expressions 2020-05-28 18:54:52 +03:00
dtor-cxx11.cpp
dtor.cpp [analyzer] Fix a crash when destroying a non-region. 2019-08-20 21:41:17 +00:00
dtors-in-dtor-cfg-output.cpp
dump_egraph.c [analyzer] exploded-graph-rewriter: Unforget to censor stmt_ids in the test. 2019-10-18 20:48:21 +00:00
dump_egraph.cpp [analyzer] Fix FieldRegion dumps. 2019-10-18 20:15:39 +00:00
dynamic-cast.cpp
dynamic_type_check.m
edges-new.mm [analyzer] Add minimal support for fix-it hints. 2019-09-06 20:55:29 +00:00
egraph-asm-goto-no-crash.cpp [analyzer] Fix clang-tidy crash on GCCAsmStmt 2019-06-27 22:46:40 +00:00
elementtype.c
end-function-return-stmt.cpp
enum-cast-out-of-range.c [analyzer] Avoid unnecessary enum range check on LValueToRValue casts 2019-08-23 14:21:13 +00:00
enum-cast-out-of-range.cpp [analyzer] Avoid unnecessary enum range check on LValueToRValue casts 2019-08-23 14:21:13 +00:00
enum.cpp
equality_tracking.c [analyzer][solver][NFC] Refactor how we detect (dis)equalities 2021-07-13 21:00:30 +03:00
eval-predefined-exprs.cpp Add type information to integral template argument if required. 2021-05-12 19:00:08 +00:00
exceptions.mm
exercise-ps.c [analyzer][CallAndMessage] Add checker options for each bug type 2020-05-21 15:31:37 +02:00
explain-svals.c [Analyzer] [NFC] Parameter Regions 2020-06-09 12:08:56 +02:00
explain-svals.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
explain-svals.m [Analyzer] [NFC] Parameter Regions 2020-06-09 12:08:56 +02:00
expr-inspection-printState-diseq-info.c [Analyzer][solver] Add dump methods for (dis)equality classes. 2021-07-14 13:45:02 +02:00
expr-inspection-printState-eq-classes.c [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
expr-inspection.c [Analyzer][solver] Add dump methods for (dis)equality classes. 2021-07-14 13:45:02 +02:00
expr-inspection.cpp [analyzer] DynamicSize: Debug facility 2021-04-05 19:17:52 +02:00
fields.c
find-binop-constraints.cpp [Analyzer][solver] Simplify existing eq classes and constraints when a new constraint is added 2021-06-14 12:19:09 +02:00
flexible-array-members.c [analyzer] Ignore single element arrays in getStaticSize() conditionally 2021-09-04 10:19:57 +02:00
free.c [clang] removes check against integral-to-pointer conversion... 2021-03-04 17:00:54 +00:00
free.cpp [clang] removes check against integral-to-pointer conversion... 2021-03-04 17:00:54 +00:00
fuchsia_handle.cpp [analyzer] Update Fuchsia checker to catch releasing unowned handles. 2021-01-06 16:23:49 -08:00
fuchsia_lock.c [analyzer] Move fuchsia.Lock checker to alpha 2020-02-05 16:11:06 -08:00
fuchsia_lock_impl.c [analyzer] Move fuchsia.Lock checker to alpha 2020-02-05 16:11:06 -08:00
func-mapping-test.cpp [CrossTU] Handle case when no USR could be generated during Decl search. 2019-08-06 12:10:16 +00:00
func.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
gcdantipatternchecker_test.m
generics.m Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
global-region-invalidation.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
global_region_invalidation.mm [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
globals.cpp [c++20] Implement semantic restrictions for C++20 designated 2019-08-30 22:52:55 +00:00
gmalloc.c
gtest.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
handle_constructors_for_default_arguments.cpp [analyzer] Add test cases for the unsupported C++ constructor modeling. 2019-11-07 17:15:53 -08:00
handle_constructors_with_new_array.cpp [analyzer] Add test cases for the unsupported C++ constructor modeling. 2019-11-07 17:15:53 -08:00
hangs.c [analyzer] Introduce reasoning about symbolic remainder operator 2020-05-28 18:56:38 +03:00
html-diag-singlefile.c
html-diag-singlefile.h
html-diags-analyze-headers.c
html-diags-analyze-headers.h
html-diags-multifile.c
html-diags-multifile.h
html-diags.c
identical-expressions.cpp
implicit-ctor-undef-value.cpp
incorrect-checker-names.cpp [analyzer][StackAddressEscape] Tie warnings to the diagnostic checkers rather then core.StackAddrEscapeBase 2020-05-20 02:26:40 +02:00
incorrect-checker-names.mm [analyzer][RetainCount] Tie diagnostics to osx.cocoa.RetainCount rather then RetainCountBase, for the most part 2020-05-27 00:01:47 +02:00
index-type.c
initialization.c [analyzer] Retrieve a value from list initialization of multi-dimensional array declaration. 2021-11-08 16:17:55 +02:00
initialization.cpp [analyzer] Retrieve a value from list initialization of multi-dimensional array declaration. 2021-11-08 16:17:55 +02:00
initializer.cpp [CFG] Add branch to skip vbase inits when they're handled by superclass. 2019-05-24 23:37:08 +00:00
initializers-cfg-output.cpp [analyzer] Do not cache out on some shared implicit AST nodes 2019-12-11 17:15:12 -08:00
inline-if-constexpr.cpp [analyzer] Treat functions without run-time branches as "small". 2019-04-30 03:01:02 +00:00
inline-not-supported.c
inline-plist.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
inline-unique-reports.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
inline.c
inline.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
inline2.c
inline3.c
inline4.c
inner-pointer.cpp [analyzer] Fix false positives in inner pointer checker (PR49628) 2021-04-08 20:30:12 +03:00
invalid-a-na-ly-zer-con-fig-value.c [driver] [analyzer] Fix --analyze -Xanalyzer after r349863. 2018-12-21 01:11:21 +00:00
invalid-analyzer-config-value.c [driver] [analyzer] Fix --analyze -Xanalyzer after r349863. 2018-12-21 01:11:21 +00:00
invalid-checker-option.c [analyzer] Remove the default value arg from getChecker*Option 2019-05-17 15:52:13 +00:00
invalid-deref.c [Analyzer] Improve invalid dereference bug reporting in DereferenceChecker. 2020-08-11 10:10:13 +02:00
invalidated-iterator.cpp [Analyzer] Handle pointer implemented as iterators in iterator checkers 2020-07-01 09:04:28 +02:00
iterator-modeling-no-aggressive-binary-operation-simplification-no-crash.cpp [Analyzer] Fix for incorrect use of container and iterator checkers 2020-03-30 09:14:45 +02:00
iterator-modeling.cpp [analyzer] Model iterator random incrementation symmetrically 2020-08-04 11:04:12 +02:00
iterator-range.cpp [analyzer] Crash fix for alpha.cplusplus.IteratorRange 2021-03-10 12:42:24 +01:00
ivars.m [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
keychainAPI-diagnostic-visitor.m
keychainAPI.m [analyzer] Fix the "Zombie Symbols" bug. 2018-11-30 03:27:50 +00:00
kmalloc-linux.c [Analyzer][MallocChecker] No warning for kfree of ZERO_SIZE_PTR. 2020-03-30 10:33:14 +02:00
lambda-notes.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
lambdas-generalized-capture.cpp
lambdas.cpp
lambdas.mm
left-shift-cxx2a.cpp [cxx2a] P1236R1: the validity of a left shift does not depend on the 2019-06-25 01:45:26 +00:00
lifetime-cfg-output.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
lifetime-extension.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
lifetime-extension.mm
lit.local.cfg [test] Default clang/test to FileCheck --allow-unused-prefixes=false 2021-02-02 11:22:46 -08:00
live-bindings-test.cpp
live-stmts.cpp [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist 2020-09-15 17:43:02 +02:00
live-stmts.mm [analyzer][Liveness][NFC] Get rid of statement liveness, because such a thing doesn't exist 2020-09-15 17:43:02 +02:00
live-variables.cpp
live-variables.m
llvm-conventions.cpp Replace llvm::isPodLike<...> by llvm::is_trivially_copyable<...> 2019-01-20 21:19:56 +00:00
localization-aggressive.m [analyzer] LocalizationChecker: Fix a crash on synthesized accessor stubs. 2019-12-11 11:22:36 -08:00
localization.m
logical-ops.c [analyzer] PR37501: Disable assertion for logical op short circuit evaluation. 2019-03-29 22:43:34 +00:00
loop-block-counts.c [analyzer] Catch leaking stack addresses via stack variables 2021-08-27 11:31:16 +02:00
loop-unrolling.cpp [analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda by reference 2021-07-12 17:06:07 +03:00
loop-widening-ignore-static-methods.cpp
loop-widening-notes.cpp [Analyzer] Fix for incorrect use of container and iterator checkers 2020-03-30 09:14:45 +02:00
loop-widening-preserve-reference-type.cpp [analyzer] LoopWidening: fix crash by avoiding aliased references invalidation 2020-06-09 12:55:54 +03:00
loop-widening.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
loop-widening.cpp [analyzer] PR43102: Fix an assertion and an out-of-bounds error for diagnostic location construction 2019-09-18 22:24:26 +00:00
loopexit-cfg-output.cpp
lvalue.cpp
main.c [analyzer] Trust global initializers when analyzing main(). 2019-08-28 18:44:32 +00:00
main.cpp [analyzer] Trust global initializers when analyzing main(). 2019-08-28 18:44:32 +00:00
malloc-annotations.c [analyzer] Reimplement dependencies between checkers 2019-01-26 20:06:54 +00:00
malloc-annotations.cpp [analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription 2020-02-25 15:43:33 +01:00
malloc-custom.c
malloc-fnptr-plist.c adds more checks to -Wfree-nonheap-object 2021-02-25 19:25:00 +00:00
malloc-free-after-return.cpp [analyzer] Associate diagnostics created in checkEndFunction with a return statement, if possible 2018-09-21 20:36:41 +00:00
malloc-interprocedural.c
malloc-overflow.c [analyzer] MallocOverflow should consider comparisons only preceding malloc 2021-08-27 14:41:26 +02:00
malloc-overflow.cpp
malloc-overflow2.c
malloc-plist.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
malloc-protoype.c
malloc-sizeof.c Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
malloc-sizeof.cpp
malloc-three-arg.c
malloc.c [analyzer] Fix non-obvious analyzer warning: Use of zero-allocated memory. 2021-10-12 10:41:00 -07:00
malloc.cpp [analyzer] Check the checker name, rather than the ProgramPointTag when silencing a checker 2021-05-19 12:40:09 +02:00
malloc.m
malloc.mm [analyzer] Teach MismatchedDealloc about initWithBytesNoCopy with deallocator. 2019-12-18 14:19:17 -08:00
max-nodes-suppress-on-sink.c
max-nodes-suppress-on-sink.cpp
member-expr.cpp [analyzer] [tests] [quickfix] Make more test more resilient for non-defaut -std. 2018-10-03 22:48:00 +00:00
memory-model.cpp [analyzer] DynamicSize: Debug facility 2021-04-05 19:17:52 +02:00
method-arg-decay.m
method-call-intra-p.cpp
method-call-path-notes.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
method-call.cpp
mig.mm [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
misc-ps-64.m
misc-ps-arm.m
misc-ps-cxx0x.cpp
misc-ps-eager-assume.m [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
misc-ps-ranges.m
misc-ps-region-store-i386.m
misc-ps-region-store-x86_64.m
misc-ps-region-store.cpp
misc-ps-region-store.m [clang][analyzer] Improve bug report in alpha.security.ReturnPtrRange 2021-08-11 13:04:55 +02:00
misc-ps-region-store.mm
misc-ps.c [Sema] Adds the pointer-to-int-cast diagnostic 2020-02-16 15:38:25 +01:00
misc-ps.m [Sema] Adds the pointer-to-int-cast diagnostic 2020-02-16 15:38:25 +01:00
mismatched-iterator.cpp [Analyzer] Handle pointer implemented as iterators in iterator checkers 2020-07-01 09:04:28 +02:00
missing-bind-temporary.cpp [CFG] Make representation of destructor calls more accurate. 2019-08-28 18:44:42 +00:00
mmap-writeexec.c
model-file.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
more-dtors-cfg-output.cpp [Coroutines] [Frontend] Lookup in std namespace first 2021-11-04 11:53:47 +08:00
mpichecker.cpp
mpicheckernotes.cpp
ms-seh.cpp [analyzer] Engine: fix crash with SEH __leave keyword 2021-05-17 20:10:26 +02:00
mutually_exclusive_null_fp.cpp [analyzer][solver] Track symbol disequalities 2020-07-22 13:02:39 +03:00
new-aligned.cpp [analyzer] Teach CallEvent about C++17 aligned operator new(). 2018-10-15 17:53:18 +00:00
new-ctor-conservative.cpp [analyzer] Enable constructor support in evalCall event. 2020-06-25 09:47:13 -07:00
new-ctor-inlined.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
new-ctor-malloc.cpp [clang] Annotating C++'s `operator new` with more attributes 2020-02-26 01:37:17 +03:00
new-ctor-null-throw.cpp [clang] Annotating C++'s `operator new` with more attributes 2020-02-26 01:37:17 +03:00
new-ctor-null.cpp [clang] Annotating C++'s `operator new` with more attributes 2020-02-26 01:37:17 +03:00
new-ctor-recursive.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
new-ctor-symbolic.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
new-dynamic-types.cpp
new-with-exceptions.cpp
new.cpp [analyzer][MallocChecker] Make NewDeleteLeaks depend on DynamicMemoryModeling rather than NewDelete 2020-05-27 00:03:53 +02:00
nil-receiver-undefined-larger-than-voidptr-ret-region.m
nil-receiver-undefined-larger-than-voidptr-ret.m Fixed more -Wreturn-type tests 2019-11-09 18:13:51 +01:00
nil-receiver.mm [analyzer] Fix crash when returning C++ objects from ObjC messages-to-nil. 2019-04-26 02:05:12 +00:00
no-exit-cfg.c
no-outofbounds.c
no-store-suppression.cpp [analyzer] NoStoreFuncVisitor: Suppress reports with no-store in system headers. 2019-04-05 20:18:53 +00:00
no-unreachable-dtors.cpp
non-diagnosable-assumptions.c
nonnull-global-constants.mm [analyzer] NonnullGlobalConstants: Add support for kCFNull. 2019-12-18 12:08:15 -08:00
nonnull.cpp [analyzer] Do not report CFError null dereference for nonnull params. 2020-04-20 12:33:01 +03:00
nonnull.m
nonnullparamchecker-crash.cpp
novoidtypecrash.c [analyzer] PR43551: Do not dereferce void* in UndefOrNullArgVisitor. 2019-10-19 01:50:46 +00:00
null-deref-offsets.c
null-deref-path-notes.c [analyzer] CStringChecker: Improve warning messages. 2019-12-11 11:22:36 -08:00
null-deref-path-notes.cpp [analyzer] ConditionBRVisitor: MemberExpr support 2019-05-29 20:29:02 +00:00
null-deref-path-notes.m Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
null-deref-ps-region.c [analyzer] NFCi: Refactor CStringChecker: use strongly typed internal API 2020-04-09 16:06:32 +02:00
null-deref-ps.c [analyzer] NonNullParamChecker and CStringChecker parameter number in checker message 2019-09-03 17:57:01 +00:00
null-deref-static.m
nullability-arc.mm Re-apply r347954 "[analyzer] Nullability: Don't detect post factum violation..." 2018-12-03 21:04:30 +00:00
nullability-no-arc.mm
nullability-notes.m [analyzer] Fix Objective-C accessor body farms after 2073dd2d. 2019-11-21 18:59:46 -08:00
nullability.c
nullability.m [analyzer] Nullability: Don't infer nullable when passing as nullable parameter. 2019-11-08 18:27:14 -08:00
nullability.mm Re-apply r347954 "[analyzer] Nullability: Don't detect post factum violation..." 2018-12-03 21:04:30 +00:00
nullability_nullonly.mm
nullptr.cpp [Analyzer] Track RValue expressions 2021-03-30 14:48:38 +02:00
number-object-conversion.c
number-object-conversion.cpp
number-object-conversion.m
number-object-conversion.mm
objc-arc.m Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
objc-bool.m
objc-boxing.m
objc-encode.m
objc-for.m Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
objc-indirect-copy-restore.m [analyzer] Add support for ObjCIndirectCopyRestoreExpr. 2020-06-03 19:06:04 +03:00
objc-live-crash.mm [analyzer][NFC] Don't bind values to ObjCForCollectionStmt, replace it with a GDM trait 2020-09-11 15:58:48 +02:00
objc-message.m
objc-method-coverage.m
objc-properties.m
objc-radar17039661.m Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
objc-string.mm
objc-subscript.m
objc_invalidation.m
objcpp-uninitialized-object.mm [analyzer] Move UninitializedObjectChecker out of alpha 2019-04-19 23:33:50 +00:00
offsetofexpr-callback.c
openmp-unsupported.c [OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs. 2019-07-17 18:03:39 +00:00
operator-calls.cpp
os_object_base.h [analyzer] RetainCountChecker: Disable reference counting for OSMetaClass. 2021-05-27 13:12:19 -07:00
os_smart_ptr.h [analyzer] [RetainCountChecker] Support 'taggedRetain' and 'taggedRelease' 2019-01-29 19:29:07 +00:00
osobject-retain-release.cpp [analyzer] RetainCountChecker: Disable reference counting for OSMetaClass. 2021-05-27 13:12:19 -07:00
osobjectcstylecastchecker_test.cpp [analyzer] Support allocClassWithName in OSObjectCStyleCast checker 2021-03-30 15:58:06 +03:00
out-of-bounds-false-positive.c [analyzer][NFC] Add more tests for ArrayBoundCheckerV2 2021-03-10 12:42:23 +01:00
out-of-bounds-new.cpp
out-of-bounds.c
outofbound-notwork.c
outofbound.c [analyzer] Emit an error rather than assert on invalid checker option input 2019-03-08 16:00:42 +00:00
override-werror.c [analyzer] Add werror flag for analyzer warnings 2019-06-07 23:34:00 +00:00
padding_c.c Modify TypePrinter to differentiate between anonymous struct and unnamed struct 2021-02-22 14:16:43 -08:00
padding_cpp.cpp Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
padding_inherit.cpp [analyzer] Allow padding checker to traverse simple class hierarchies 2018-10-30 01:20:37 +00:00
padding_message.cpp Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
padding_no_unique_address.cpp [analyzer] Fix calculating offset for fields with an empty type 2021-07-04 06:57:11 +03:00
pch_crash.cpp [analyzer] Fix StdLibraryFunctionsChecker crash on macOS 2020-06-16 16:10:07 +03:00
placement-new-user-defined.cpp [analyzer] Enable PlacementNewChecker by default 2020-01-21 13:23:10 +01:00
placement-new.cpp [analyzer] Improve PlacementNewChecker 2020-05-14 15:50:39 +02:00
plist-diagnostics-template-function.cpp
plist-diagnostics-template-record.cpp Print nullptr_t namespace qualified within std:: 2021-09-21 11:21:40 -07:00
plist-html-macros.c [analyzer] Fix an assertation failure for invalid sourcelocation, add a new debug checker 2019-03-14 16:10:29 +00:00
plist-macros-with-expansion-ctu.c [analyzer][CTU] API for CTU macro expansions 2021-02-22 11:12:22 +01:00
plist-macros-with-expansion.c [analyzer] Use the MacroExpansionContext for macro expansions in plists 2021-02-22 11:12:18 +01:00
plist-macros-with-expansion.cpp [analyzer] Use the MacroExpansionContext for macro expansions in plists 2021-02-22 11:12:18 +01:00
plist-macros.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
plist-output-alternate.m Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
plist-output.m [analyzer] Add minimal support for fix-it hints. 2019-09-06 20:55:29 +00:00
plist-stats-output.c Revert "Revert "Revert "Revert "[analyzer] Add coverage information to plist output, update tests"""" 2018-09-07 21:58:24 +00:00
pointer-arithmetic.c
pointer-escape-on-conservative-calls.c [analyzer] Escape symbols conjured into specific regions during a conservative EvalCall 2019-12-11 11:44:10 -08:00
pointer-to-member.cpp [analyzer] Fix static_cast on pointer-to-member handling 2021-02-15 11:44:37 +03:00
pr4209.m
pr22954.c [Analyzer] Report every bug if only uniqueing location differs. 2020-07-15 12:19:25 +02:00
pr37802.cpp
pr_2542_rdar_6793404.m
pr_4164.c
preprocessor-setup.c [clang-scan-deps] Support for clang --analyze in clang-scan-deps 2019-10-14 20:15:01 +00:00
properties.m [analyzer] Fix more ObjC accessor body farms after 2073dd2d. 2019-12-04 16:29:08 -08:00
properties.mm [analyzer] Fix body farm for Obj-C++ properties 2021-04-07 13:44:43 +03:00
pthreadlock.c [clang][Checkers] Fix PthreadLockChecker state cleanup at dead symbol. 2021-04-06 11:15:29 +02:00
pthreadlock_state.c [clang][Checkers] Extend PthreadLockChecker state dump (NFC). 2021-04-01 11:59:00 +02:00
pthreadlock_state_nottracked.c [clang][Checkers] Extend PthreadLockChecker state dump (NFC). 2021-04-01 11:59:00 +02:00
ptr-arith.c [analyzer] canonicalize special case of structure/pointer deref 2021-10-06 05:18:27 -05:00
ptr-arith.cpp
ptr-cmp-const-trunc.cl [analyzer] Handle comparison between non-default AS symbol and constant 2019-03-07 13:01:17 +00:00
ptr-iter.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
ptr-sort.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
qt_malloc.cpp
range_casts.c
rdar-6442306-1.m
rdar-6540084.m
rdar-6541136-region.c
rdar-6562655.m
rdar-6600344-nil-receiver-undefined-struct-ret.m
rdar-7168531.m
redecl.c [analyzer][CrossTU] Extend CTU to VarDecls with initializer 2019-04-23 11:04:41 +00:00
redefined_system.c
refcnt_naming.m
reference.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
region-1.m
region-store.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
region-store.cpp
region_store_overflow.c
reinterpret-cast-pointer-to-member.cpp [analyzer][NFC] Fix test failures for builds w/o assertions 2021-02-15 16:38:15 +03:00
reinterpret-cast.cpp
report-uniqueing.cpp [Analyzer] Remove inclusion of uniqueing decl from diagnostic profile. 2020-07-30 09:52:28 +02:00
retain-count-alloc.cpp [analyzer] MallocChecker: Prevent Integer Set Library false positives 2019-07-18 00:03:55 +00:00
retain-release-arc.m [analyzer] Quote the type of the leaked/problematic object in diagnostics for readability 2019-01-10 18:15:57 +00:00
retain-release-cache-out.m
retain-release-cf-audited.m
retain-release-compound-literal.m [analyzer] Allow bindings of the CompoundLiteralRegion 2020-05-28 14:11:57 +03:00
retain-release-cpp-classes.cpp [analyzer] Fix the "Zombie Symbols" bug. 2018-11-30 03:27:50 +00:00
retain-release-inline.m [analyzer] Track runtime types represented by Obj-C Class objects 2020-04-29 13:35:53 +03:00
retain-release-path-notes.m [analyzer] Find better description for tracked symbolic values 2021-04-28 18:37:38 +03:00
retain-release-region-store.m
retain-release-safe.c
retain-release.m [analyzer] Adjust the reported variable name in retain count checker 2021-04-28 18:37:37 +03:00
retain-release.mm [analyzer] RetainCount: Allow offsets in return values. 2019-04-26 02:05:15 +00:00
retaincountchecker-compoundregion.m [analyzer] Quote the type of the leaked/problematic object in diagnostics for readability 2019-01-10 18:15:57 +00:00
return-ptr-range.cpp [clang][analyzer] Improve bug report in alpha.security.ReturnPtrRange 2021-08-11 13:04:55 +02:00
return-stmt-merge.cpp
return-value-guaranteed.cpp [analyzer] Enable control dependency condition tracking by default 2019-08-22 03:08:48 +00:00
rvo.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
scopes-cfg-output.cpp Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
security-syntax-checks-no-emit.c [analyzer] PR41185: Fix regression where __builtin_* functions weren't recognized 2019-04-17 19:56:40 +00:00
security-syntax-checks-nscoder.m [analyzer] Add a syntactic security check for ObjC NSCoder API. 2019-12-19 14:54:29 -08:00
security-syntax-checks.c Fix test on PS4 which defaults to gnu99 which does not emit the expected warnings. 2019-04-18 00:00:06 +00:00
security-syntax-checks.m [clang] Evaluate strlen of strcpy argument for -Wfortify-source. 2021-07-28 20:52:57 +00:00
self-assign.cpp [analyzer][NFC] Make test/Analysis/self-assign.cpp readable 2021-08-13 16:14:54 +02:00
self-init.m
shallow-mode.m
show-checker-list.c [analyzer] List checkers in 3 categories: released, alpha, developer 2019-05-23 21:46:51 +00:00
silence-checkers-and-packages-core-all.cpp [analyzer] Analysis: Silence checkers 2019-08-16 01:53:14 +00:00
silence-checkers-and-packages-core-div-by-zero.cpp [analyzer] Analysis: Silence checkers 2019-08-16 01:53:14 +00:00
silence-checkers.cpp [analyzer] Make checker silencing work for non-pathsensitive bug reports 2021-06-17 10:27:34 +02:00
simple-stream-checks.c [analyzer] Fix the "Zombie Symbols" bug. 2018-11-30 03:27:50 +00:00
sizeofpack.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
sizeofpointer.c
smart-ptr-text-output.cpp [analyzer] Handle std::make_unique 2021-07-18 19:54:28 +05:30
smart-ptr.cpp [analyzer] Fix for faulty namespace test in SmartPtrModelling 2021-07-21 18:23:35 +05:30
solver-sym-simplification-adjustment.c [Analyzer][solver] Simplification: reorganize equalities with adjustment 2021-10-27 16:48:55 +02:00
solver-sym-simplification-bool.cpp [analyzer] Cleanup a FIXME in SValBuilder.cpp 2021-08-10 16:12:52 -05:00
solver-sym-simplification-concreteint.c [analyzer][solver] Handle simplification to ConcreteInt 2021-10-14 17:53:29 +02:00
solver-sym-simplification-no-crash.c [Analyzer][solver] Fix crashes during symbol simplification 2021-06-25 11:49:26 +02:00
solver-sym-simplification-no-crash2.c [Analyzer][solver] Fix inconsistent equivalence class data 2021-07-23 14:25:32 +02:00
solver-sym-simplification-ptr-bool.cl [analyzer] Do not assume that all pointers have the same bitwidth as void* 2021-07-16 03:22:57 -05:00
solver-sym-simplification-with-proper-range-type.c [Analyzer][solver] Fix crashes during symbol simplification 2021-06-25 11:49:26 +02:00
stack-addr-ps.c
stack-addr-ps.cpp [analyzer] Catch leaking stack addresses via stack variables 2021-08-27 11:31:16 +02:00
stack-block-returned.cpp
stack-capture-leak-arc.mm
stack-capture-leak-no-arc.mm
stack-frame-context-revision.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
stackaddrleak.c
static_local.m
stats.c
std-c-library-functions-POSIX-lookup.c [analyzer][StdLibraryFunctionsChecker] Use Optionals throughout the summary API 2020-09-01 11:36:20 +02:00
std-c-library-functions-POSIX-socket-sockaddr.cpp [analyzer][StdLibraryFunctionsChecker] Add POSIX networking functions 2020-07-20 22:46:24 +02:00
std-c-library-functions-POSIX.c [analyzer][StdLibraryFunctionsChecker] Remove strcasecmp 2020-09-10 12:29:39 +02:00
std-c-library-functions-arg-constraints-notes.cpp [Analyzer][StdLibraryFunctionsChecker] Describe arg constraints 2021-04-23 17:27:54 +02:00
std-c-library-functions-arg-constraints-tracking-notes.c [analyzer][StdLibraryFunctionsChecker] Track dependent arguments 2021-04-27 15:35:58 +02:00
std-c-library-functions-arg-constraints.c [analyzer][StdLibraryFunctionsChecker] Track dependent arguments 2021-04-27 15:35:58 +02:00
std-c-library-functions-arg-constraints.cpp [Analyzer][StdLibraryFunctionsChecker] Describe arg constraints 2021-04-23 17:27:54 +02:00
std-c-library-functions-arg-cstring-dependency.c [analyzer][StdLibraryFunctionsChecker] Remove strcasecmp 2020-09-10 12:29:39 +02:00
std-c-library-functions-arg-enabled-checkers.c [analyzer][StdLibraryFunctionsChecker] Have proper weak dependencies 2020-09-07 17:56:26 +02:00
std-c-library-functions-arg-weakdeps.c [analyzer][StdLibraryFunctionsChecker] Have proper weak dependencies 2020-09-07 17:56:26 +02:00
std-c-library-functions-eof.c [analyzer] StdLibraryFunctionsChecker: Use platform dependent EOF and UCharMax 2020-02-13 13:51:51 +01:00
std-c-library-functions-inlined.c [analyzer] Promote StdCLibraryFunctionsChecker to the apiModeling category. 2018-10-02 20:50:40 +00:00
std-c-library-functions-lookup.c [analyzer] StdLibraryFunctionsChecker: Add support to lookup types 2020-05-29 17:42:05 +02:00
std-c-library-functions-lookup.cpp [analyzer] StdLibraryFunctionsChecker: Add support to lookup types 2020-05-29 17:42:05 +02:00
std-c-library-functions-restrict.c [analyzer][StdLibraryFunctionsChecker] Do not match based on the restrict qualifier in C++ 2020-09-04 11:48:38 +02:00
std-c-library-functions-restrict.cpp [analyzer][StdLibraryFunctionsChecker] Do not match based on the restrict qualifier in C++ 2020-09-04 11:48:38 +02:00
std-c-library-functions-vs-stream-checker.c [analyzer][StdLibraryFunctionsChecker] Elaborate the summary of fread and fwrite 2020-09-15 16:35:39 +02:00
std-c-library-functions.c [analyzer] Bifurcate on getenv() calls 2021-10-13 10:50:26 +02:00
std-c-library-functions.cpp [analyzer] Promote StdCLibraryFunctionsChecker to the apiModeling category. 2018-10-02 20:50:40 +00:00
std-c-library-posix-crash.c [analyzer][StdLibraryFunctionsChecker] Fix typos in summaries of mmap and mmap64 2020-11-30 18:06:28 +01:00
std-string.cpp [analyzer] Fix StringChecker for Unknown params 2021-10-26 18:15:00 +02:00
stl-algorithm-modeling-aggressive-std-find-modeling.cpp [Analyzer] Model STL Algoirthms to improve the iterator checkers 2020-02-05 17:59:08 +01:00
stl-algorithm-modeling.cpp [Analyzer] Model STL Algoirthms to improve the iterator checkers 2020-02-05 17:59:08 +01:00
stream-error.c [Analyzer][StreamChecker] Added check for "indeterminate file position". 2020-05-28 08:21:57 +02:00
stream-note.c [clang][analyzer] Improve report of file read at EOF condition (alpha.unix.Stream checker). 2021-07-21 08:54:11 +02:00
stream.c [Analyzer][StreamChecker] Use BugType::SuppressOnSink at resource leak report. 2020-07-23 11:53:25 +02:00
stream.cpp [Analyzer][StreamChecker] Add note tags for file opening. 2020-06-22 11:15:35 +02:00
string-fail.c
string-with-signedness.c
string.c [analyzer] Wrong type cast occurs during pointer dereferencing after type punning 2021-04-29 01:03:38 +03:00
string.cpp [analyzer] CStringChecker: Add the forgotten test file. 2018-12-19 21:51:59 +00:00
structured_bindings.cpp [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
superclass.m
sval-dump-int128.c [AIX] Enable int128 in 64 bit mode 2021-10-15 16:23:04 +00:00
svalbuilder-float-cast.c [analyzer] pr38668: Do not attempt to cast loaded integers to floats. 2018-12-22 02:06:51 +00:00
svalbuilder-logic.c [Sema] Adds the pointer-to-int-cast diagnostic 2020-02-16 15:38:25 +01:00
svalbuilder-rearrange-comparisons.c lyzer] [HOTFIX!] SValBuilder crash when `aggressive-binary-operation-simplification` enabled 2018-11-30 10:37:44 +00:00
switch-case.c [analyzer] Generalize bitwise AND rules for ranges 2020-05-28 18:55:49 +03:00
symbol-escape.cpp Revert "[analyzer] Keep track of escaped locals" 2019-12-10 16:42:03 -08:00
symbol-reaper.c [Sema] Adds the pointer-to-int-cast diagnostic 2020-02-16 15:38:25 +01:00
symbol-reaper.cpp [analyzer] Make sure base-region and its sub-regions are either all alive or all dead. 2019-01-18 00:08:56 +00:00
symbol-simplification-disequality-info.cpp [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
symbol-simplification-fixpoint-iteration-unreachable-code.cpp [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
symbol-simplification-fixpoint-one-iteration.cpp [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
symbol-simplification-fixpoint-two-iterations.cpp [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
symbol-simplification-reassume.cpp [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants 2021-11-12 11:44:49 +01:00
taint-diagnostic-visitor.c
taint-dumps.c [analyzer] Move taint API from ProgramState to a separate header. NFC. 2019-03-29 22:49:30 +00:00
taint-generic.c [analyzer] sprintf is a taint propagator not a source 2021-10-28 11:03:02 +02:00
taint-generic.cpp [analyzer] Add support for namespaces to GenericTaintChecker 2019-12-15 12:11:22 +01:00
taint-tester.c Revert "[analyzer] Toning down invalidation a bit". 2019-04-03 18:21:16 +00:00
taint-tester.cpp
taint-tester.m
temp-obj-dtors-cfg-output.cpp [analyzer] Do not cache out on some shared implicit AST nodes 2019-12-11 17:15:12 -08:00
temp-obj-dtors-option.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
templates.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
temporaries-callback-order.cpp
temporaries.cpp [Analyzer] Allow creation of stack frame for functions without definition 2020-06-09 12:08:57 +02:00
temporaries.mm [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
test-after-div-zero.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
test-include-cpp.cpp
test-include-cpp.h
test-include.c
test-include.h
test-objc-non-nil-return-value-checker.m
test-separate-retaincount.cpp [analyzer][RetainCount] Tie diagnostics to osx.cocoa.RetainCount rather then RetainCountBase, for the most part 2020-05-27 00:01:47 +02:00
test-variably-modified-types.c
this-pointer.cpp
track-control-dependency-conditions.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
track-control-dependency-conditions.m [analyzer] Fix a crash on tracking Objective-C 'self' as a control dependency. 2019-10-19 01:50:43 +00:00
transparent_union_bug.c [analyzer] Fix assertion failure on code with transparent unions 2021-06-25 23:09:16 +03:00
traversal-algorithm.mm
traversal-begin-end-function.c
traversal-path-unification.c
trustnonnullchecker_test.m [analyzer] [quickfix] Temporarily disabling a failing test. 2018-10-04 00:07:45 +00:00
trustnonnullchecker_test.mm
undef-buffers.c [analyzer] Emit an error rather than assert on invalid checker option input 2019-03-08 16:00:42 +00:00
undef-call.c [Analysis] Properly prepare test env in test/Analysis/undef-call.c 2018-12-03 11:28:17 +00:00
uninit-asm-goto.cpp Add triple for non-x86 environments. 2020-03-10 15:26:03 -07:00
uninit-bug-first-iteration-init.c [analyzer] Introduce reasoning about symbolic remainder operator 2020-05-28 18:56:38 +03:00
uninit-const.c [analyzer] Find better description for tracked symbolic values 2021-04-28 18:37:38 +03:00
uninit-const.cpp [analyzer] Find better description for tracked symbolic values 2021-04-28 18:37:38 +03:00
uninit-exhaustive-switch-bug.c [analyzer] Generalize bitwise AND rules for ranges 2020-05-28 18:55:49 +03:00
uninit-ps-rdar6145427.m
uninit-sometimes.cpp
uninit-val-const-likeness.c [analysis] Re-discard type sugar when casting values retrieved from the Store. 2019-12-18 18:00:57 -08:00
uninit-vals-union.c
uninit-vals.c [analyzer] Prune calls to functions with linear CFGs that return a non-zero constrained value 2019-08-13 23:22:33 +00:00
uninit-vals.cpp [analyzer] Improve tracing for uninitialized struct fields 2018-08-29 22:48:50 +00:00
uninit-vals.m [analyzer] ConditionBRVisitor: MemberExpr support 2019-05-29 20:29:02 +00:00
unions-region.m
unions.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
unix-api.c
unix-api.cpp
unix-fns.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
unreachable-code-path.c
unsupported-types.c
unused-ivars.m
use-after-move.cpp [analyzer] pr47030: MoveChecker: Unforget a comma in the suppression list. 2020-08-07 10:39:28 -07:00
valist-as-lazycompound.c
valist-uninitialized-no-undef.c
valist-uninitialized.c Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
valist-unterminated.c
variadic-method-types.m
vector.m
vfork.c [clang][NFC] Inclusive terms: Replace uses of whitelist in clang/lib/StaticAnalyzer 2021-10-29 16:51:36 -04:00
virtualcall-fixits.cpp [analyzer] AnalyzerOptions: Remove 'fixits-as-remarks' 2020-03-04 06:56:32 +01:00
virtualcall-plist.cpp [analyzer] Improve VirtualCallChecker and enable parts of it by default. 2019-08-20 21:41:14 +00:00
virtualcall.cpp [analyzer] Improve VirtualCallChecker and enable parts of it by default. 2019-08-20 21:41:14 +00:00
virtualcall.h [analyzer] Improve VirtualCallChecker and enable parts of it by default. 2019-08-20 21:41:14 +00:00
vla-overflow.c [Analyzer][VLASizeChecker] Check for VLA size overflow. 2020-05-19 09:44:46 +02:00
vla.c [analyzer] Ignore calculated indices of <= 0 in VLASizeChecker 2020-06-04 07:25:35 -05:00
weak-dependencies.c [analyzer] Don't allow hidden checkers to emit diagnostics 2020-07-06 15:34:51 +02:00
weak-functions.c adds more checks to -Wfree-nonheap-object 2021-02-25 19:25:00 +00:00
yaccignore.c
z3-crosscheck.c
zero-operands.c [Analyzer] Infer 0 value when the divisible is 0 (bug fix) 2021-03-25 18:25:06 +01:00