llvm-project/clang/test/Analysis
Devin Coughlin 8beac28564 [analyzer] Add checker modeling gtest APIs.
gtest is a widely-used unit-testing API. It provides macros for unit test
assertions:

  ASSERT_TRUE(p != nullptr);

that expand into an if statement that constructs an object representing
the result of the assertion and returns when the assertion is false:

  if (AssertionResult gtest_ar_ = AssertionResult(p == nullptr))
      ;
  else
    return ...;

Unfortunately, the analyzer does not model the effect of the constructor
precisely because (1) the copy constructor implementation is missing from the
the header (so it can't be inlined) and (2) the boolean-argument constructor
is constructed into a temporary (so the analyzer decides not to inline it since
it doesn't reliably call temporary destructors right now).

This results in false positives because the analyzer does not realize that the
the assertion must hold along the non-return path.

This commit addresses the false positives by explicitly modeling the effects
of the two un-inlined constructors on the AssertionResult state.

I've added a new package, "apiModeling", for these kinds of checkers that
model APIs but don't emit any diagnostics. I envision all the checkers in
this package always being on by default.

This addresses the false positives reported in PR30936.

Differential Revision: https://reviews.llvm.org/D27773

rdar://problem/22705813

llvm-svn: 290143
2016-12-19 22:50:31 +00:00
..
Inputs [analyzer] Add another exception for Qt in MallocChecker 2016-12-16 12:21:55 +00:00
copypaste [analyzer] Re-apply r283094 "Improve CloneChecker diagnostics" 2016-10-08 10:54:30 +00:00
diagnostics [analyzer] Refer to macro names in diagnostics for macros representing a literal 2016-12-15 22:55:11 +00:00
engine
inlining [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
objc Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
CFContainers-invalid.c
CFContainers.mm [analyzer] Remove ObjCContainersChecker size information when a CFMutableArrayRef escapes 2015-06-15 01:00:42 +00:00
CFDateGC.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
CFNumber.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
CFRetainRelease_NSAssertionHandler.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
CGColorSpace.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
CheckNSError.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
DeallocMissingRelease.m Revert "[analyzer] Re-apply r283093 "Add extra notes to ObjCDeallocChecker"" 2016-10-16 00:30:08 +00:00
DeallocUseAfterFreeErrors.m [analyzer] Fix capitalization in ObjCSuperDealloc checker diagnostic. 2016-11-01 22:16:39 +00:00
DynamicTypePropagation.m [analyzer] Move the ObjCGenericsChecker out of the alpha package. 2015-11-03 19:38:03 +00:00
MPIMock.h [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
Malloc+MismatchedDeallocator+NewDelete.cpp Detect uses of mismatching forms of 'new' and 'delete' 2015-05-18 19:59:11 +00:00
Malloc+MismatchedDeallocator_intersections.cpp [analyzer] This implements potential undefbehavior.ZeroAllocDereference checker. 2015-04-14 14:18:04 +00:00
Malloc+NewDelete_intersections.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
MemRegion.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
MismatchedDeallocator-checker-test.mm Detect uses of mismatching forms of 'new' and 'delete' 2015-05-18 19:59:11 +00:00
MismatchedDeallocator-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
MissingDealloc.m [analyzer] Move ObjCDeallocChecker out of the alpha package. 2016-03-02 21:50:54 +00:00
NSContainers.m [static analyzer] Don't flag nil storage into NSMutableDictionary. 2015-11-11 00:49:22 +00:00
NSPanel.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
NSString.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
NSWindow.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
NewDelete+MismatchedDeallocator_intersections.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDelete-checker-test.cpp [analyzer] Model base to derived casts more precisely. 2016-08-08 09:22:59 +00:00
NewDelete-custom.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDelete-intersections.mm [analyzer] This implements potential undefbehavior.ZeroAllocDereference checker. 2015-04-14 14:18:04 +00:00
NewDelete-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
NewDelete-variadic.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDeleteLeaks-PR18394.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NewDeleteLeaks-PR19102.cpp [analyzer] Move the NewDeleteLeaks checker from CplusplusAlpha to Cplusplus package. 2014-10-21 12:41:36 +00:00
NoReturn.m [analyzer] Handle another Android assert function. 2015-12-30 00:08:59 +00:00
OSAtomic_mac.cpp
ObjCProperties.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
ObjCPropertiesSyntaxChecks.m [analyzer] Detect ObjC properties that are both (copy) and Mutable. 2016-12-13 17:19:18 +00:00
ObjCRetSigs.m [Static Analyzer] Some tests do not turn on core checkers. Running the analyzers without the core checkers is not supported. 2015-07-24 03:25:13 +00:00
PR2599.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
PR2978.m Revert "[analyzer] Re-apply r283093 "Add extra notes to ObjCDeallocChecker"" 2016-10-16 00:30:08 +00:00
PR3991.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
PR7218.c
PR9741.cpp Remove duplicated -cc1 in tests 2013-12-08 18:06:52 +00:00
PR12905.c
PR24184.cpp [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
additive-folding-range-constraints.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
additive-folding.cpp [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
analyzeOneFunction.m [analyzer] Change -analyze-function to accept qualified names. 2016-08-08 16:01:02 +00:00
analyzer-checker-config.c [Static Analyzer] Basic per checker command line option validation. 2015-07-09 21:43:45 +00:00
analyzer-config.c Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
analyzer-config.cpp Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
analyzer-display-progress.cpp [analyzer] Change -analyze-function to accept qualified names. 2016-08-08 16:01:02 +00:00
analyzer-display-progress.m [analyzer] Change -analyze-function to accept qualified names. 2016-08-08 16:01:02 +00:00
analyzer-enabled-checkers.c [analyzer] Command line option to show enabled checker list. 2016-08-08 13:41:04 +00:00
analyzer-stats.c Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
array-struct-region.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
array-struct-region.cpp [analyzer] Add IdenticalExprChecker, to find copy-pasted code. 2013-11-08 01:15:39 +00:00
array-struct.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
atomics.c [analyzer] Add rudimentary handling of AtomicExpr. 2016-07-08 00:53:18 +00:00
auto-obj-dtors-cfg-output.cpp Reapply "Pretty Printer: Fix printing of conversion operator decls and calls." 2014-02-25 18:03:55 +00:00
base-init.cpp
bitwise-ops.c [analyzer] Shitfing a constant value by its bit width is undefined. 2014-01-16 18:02:23 +00:00
block-in-critical-section.cpp [analyzer] Add a checker that detects blocks in critical sections 2016-09-20 20:28:50 +00:00
blocks-no-inline.c
blocks.m [analyzer] Add check for when block is called with too few arguments. 2016-11-15 18:40:46 +00:00
blocks.mm [analyzer] Include block capture copy expressions in the CFG. 2015-11-25 22:35:37 +00:00
bool-assignment.c [analyzer] Fix an off-by-one in evalIntegralCast() 2016-01-18 10:17:16 +00:00
bstring.c [analyzer] Make CStringChecker correctly calculate return value of mempcpy 2014-10-03 21:48:54 +00:00
bstring.cpp [analyzer] Invalidate destination of std::copy() and std::copy_backward(). 2016-02-07 16:55:44 +00:00
bug_hash_test.cpp [analyzer] Fix IssueHash generation. 2015-12-01 09:00:41 +00:00
bug_hash_test.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
builtin-functions.cpp Teach the analyzer that __builtin_assume_aligned returns its first argument. 2014-09-09 21:42:16 +00:00
builtin_signbit.cpp Fix __builtin_signbit for ppcf128 type 2015-11-06 14:52:46 +00:00
call-invalidation.cpp [analyzer] Let TK_PreserveContents span across the whole base region. 2016-04-25 14:44:25 +00:00
cast-to-struct.cpp [analyzer] Improve CastToStruct checker so it can also detect widening casts of struct data 2016-09-26 15:17:18 +00:00
castexpr-callback.c [analyzer] ExprEngine: remove second call to PreStmt<CastExpr> 2016-09-01 13:55:38 +00:00
casts.c [analyzer] Improve CastToStruct checker so it can also detect widening casts of struct data 2016-09-26 15:17:18 +00:00
casts.cpp [analyzer] Fix test in previous commit to account for compiler warning. 2013-12-19 23:05:40 +00:00
casts.m [analyzer] Weaken assertion to account for pointer-to-integer casts. 2013-07-25 17:22:02 +00:00
cfg.cpp Make output of -ast-print a valid C++ code. 2016-11-10 08:49:37 +00:00
cfref_PR2519.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
cfref_rdar6080742.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
check-deserialization.cpp
checker-plugins.c Add a test for Static Analyzer checker plugins 2014-01-09 00:47:40 +00:00
chroot.c
comparison-implicit-casts.cpp [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
complex-init-list.cpp
complex.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
concrete-address.c
conditional-operator.cpp Switch %clang -cc1 tests to %clang_cc1 2013-10-28 23:47:09 +00:00
conditional-path-notes.c [analyzer] Improve "Assuming..." diagnostic pieces for logical operators. 2016-10-05 08:28:25 +00:00
const-method-call.cpp [analyzer] Fix assertion failure invalidating on const member function calls (PR25392). 2015-11-09 19:50:29 +00:00
constant-folding.c
conversion.c [analyzer] Add a checker for loss of sign or precision in integral casts. 2016-08-17 16:02:45 +00:00
coverage.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
crash-trace.c Fix REQUIRES lines on tests from r228735. Thanks Kristof for pointing out the missing commas 2015-02-11 19:45:13 +00:00
cstring-syntax-cxx.cpp [analyzer] Fix a crash in SyntaxCString checker when given a custom strncat. 2013-04-10 22:06:29 +00:00
cstring-syntax.c
ctor.mm [analyzer] Improve test from r207486. 2014-04-29 17:08:17 +00:00
cxx-crashes.cpp
cxx-for-range-cfg.cpp
cxx-for-range.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
cxx-method-names.cpp
cxx11-crashes.cpp P0188R1: add support for standard [[fallthrough]] attribute. This is almost 2016-03-08 00:32:55 +00:00
dead-stores.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
dead-stores.cpp [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
dead-stores.m Update mailing list references to lists.llvm.org 2015-08-05 03:55:23 +00:00
debug-CallGraph.c [CallGraph] Make sure the edges are not missed due to re-declarations 2014-12-17 00:34:07 +00:00
default-analyze.m Objective-C. After providing a fix-it for a 2013-12-18 21:04:43 +00:00
default-diagnostic-visitors.c
delayed-template-parsing-crash.cpp Do not crash when static analysis encounters a FunctionDecl that has a delayed template parse of its body. 2015-08-20 21:27:35 +00:00
delegates.m
derived-to-base.cpp Fix static analyzer crash when casting from an incomplete type 2013-06-20 07:45:01 +00:00
designated-initializer.c Implementing C99 partial re-initialization behavior (DR-253) 2015-06-10 00:27:52 +00:00
disable-all-checks.c Fixup for r216763. Add a driver test. 2014-08-29 21:51:22 +00:00
dispatch-once.m [analyzer] MacOSXAPIChecker: Improve warnings for __block vars in dispatch_once. 2016-10-31 21:04:54 +00:00
div-zero.cpp
division-by-zero.c Fix a crash by division by zero in analyzer 2015-06-25 14:06:02 +00:00
domtest.c
dtor-cxx11.cpp [analyzer] Remove incorrect workaround for unimplemented temporary destructors. 2014-04-01 16:39:59 +00:00
dtor.cpp Analyzer: Teach analyzer how to handle TypeTraitExpr 2015-09-22 19:33:15 +00:00
dtors-in-dtor-cfg-output.cpp
dynamic-cast.cpp Fix a tranche of comment, test and doc typos 2013-12-05 16:25:25 +00:00
dynamic_type_check.m [Static Analyzer] Fixed a false positive case in DynamicTypeChecker when dealing with forward declarations. 2015-09-18 23:38:57 +00:00
edges-new.mm [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
elementtype.c
enum.cpp [analyzer] Replace isIntegerType() with isIntegerOrEnumerationType(). 2013-04-09 02:30:33 +00:00
exceptions.mm
exercise-ps.c Consolidate header inclusion diagnostics 2014-07-11 20:53:51 +00:00
explain-svals.cpp DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
explain-svals.m [analyzer] SValExplainer: Support ObjC ivars and __block variables. 2016-11-30 18:26:43 +00:00
expr-inspection.c [analyzer] Print type for SymbolRegionValues when dumping to stream 2016-12-05 20:30:11 +00:00
fields.c [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
free.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
func.c [analyzer] Add new debug helper clang_analyzer_warnIfReached. 2013-10-03 16:57:03 +00:00
generics.m [analyzer] ObjCGenerics: Warn only on mismatch for invariant type parameters 2016-12-05 16:28:47 +00:00
global-region-invalidation.c [analyzer] Re-enable using global regions as a symbolic base. 2013-04-15 20:39:45 +00:00
global_region_invalidation.mm [analyzer] Re-enable using global regions as a symbolic base. 2013-04-15 20:39:45 +00:00
gtest.cpp [analyzer] Add checker modeling gtest APIs. 2016-12-19 22:50:31 +00:00
html-diags-multifile.c Fix test that wasn't testing anything 2013-11-05 12:45:37 +00:00
html-diags-multifile.h
html-diags.c Remove shell requirements from tests that use 'cd' 2015-03-02 22:42:58 +00:00
identical-expressions.cpp [Static Analyzer] Warn when inner and outer conditions are identical. The inner condition is always true. 2015-08-10 07:18:29 +00:00
index-type.c [analyzer] Use a wider integer type for an array index. 2016-02-01 09:29:17 +00:00
initializer.cpp [analyzer] Better detect when C++ object was constructed into existing region. 2015-12-17 00:28:33 +00:00
initializers-cfg-output.cpp Make Sema::getPrintingPolicy less ridiculously expensive. This used to perform 2016-05-19 01:39:10 +00:00
inline-not-supported.c
inline-plist.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
inline-unique-reports.c [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
inline.c [analyzer] Add check for when block is called with too few arguments. 2016-11-15 18:40:46 +00:00
inline.cpp [analyzer] Add check for when block is called with too few arguments. 2016-11-15 18:40:46 +00:00
inline2.c
inline3.c
inline4.c
ivars.m
keychainAPI-diagnostic-visitor.m
keychainAPI.m
kmalloc-linux.c [analyzer] Handle the M_ZERO and __GFP_ZERO flags in kernel mallocs. 2014-03-26 17:05:46 +00:00
lambda-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
lambdas-generalized-capture.cpp [analyzer] Add tests for generalized lambda capture (C++14). NFC. 2015-11-26 00:11:23 +00:00
lambdas.cpp [analyzer] Fix crash when lambda captures a variable-length array. 2015-12-07 23:01:53 +00:00
lambdas.mm [analyzer] Find ObjC 'self' decl even when block captures local named 'self'. 2016-02-23 22:26:04 +00:00
lifetime-extension.cpp [analyzer] Construct temporary objects of correct types, destroy them properly. 2016-11-30 19:02:44 +00:00
lit.local.cfg Make the information about disabled ARCMT/Rewriter/StaticAnalyzer available 2013-08-27 19:27:35 +00:00
live-variables.cpp Revert "[analyzer] Refactor conditional expression evaluating code" 2013-12-06 18:56:29 +00:00
live-variables.m Revert "[analyzer] Refactor conditional expression evaluating code" 2013-12-06 18:56:29 +00:00
localization-aggressive.m [analyzer] Use lazily created buffer in EmptyLocalizationContextChecker 2016-08-30 23:07:14 +00:00
localization.m [analyzer] Add "Assuming..." diagnostic pieces for unsupported conditions. 2016-10-05 08:19:49 +00:00
logical-ops.c [Sema]. Warn when logical expression is a pointer 2014-11-14 17:12:50 +00:00
loop-widening.c Reapply r251621 "[Analyzer] Widening loops which do not exit" 2015-10-30 15:23:57 +00:00
lvalue.cpp
malloc-annotations.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
malloc-custom.c Revert "Revert "[analyzer] Make MallocChecker more robust against custom redeclarations"" 2016-10-16 22:19:03 +00:00
malloc-interprocedural.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
malloc-overflow.c [analyzer] Discard malloc-overflow bug-report when a known size is malloc'ed. 2015-09-23 23:27:55 +00:00
malloc-overflow.cpp
malloc-overflow2.c clang/test/Analysis/malloc-overflow2.c: Appease 32-bit targets. 2015-09-24 02:49:00 +00:00
malloc-plist.c [analyzer] Add "Assuming..." diagnostic pieces for unsupported conditions. 2016-10-05 08:19:49 +00:00
malloc-protoype.c [analyzer] Don't crash if malloc() has an unexpected function prototype. 2014-09-05 16:33:51 +00:00
malloc-sizeof.c
malloc-sizeof.cpp [analyzer] Tweak MallocSizeOfChecker to not warn when using sizeof(void*) to allocate a bunch of any pointer type. 2014-10-19 07:30:55 +00:00
malloc-three-arg.c [analyzer] Handle the M_ZERO and __GFP_ZERO flags in kernel mallocs. 2014-03-26 17:05:46 +00:00
malloc.c [analyzer] Let TK_PreserveContents span across the whole base region. 2016-04-25 14:44:25 +00:00
malloc.cpp [analyzer] Teach the analyzer that pointers can escape into __cxa_demangle 2016-12-15 22:55:18 +00:00
malloc.m [analyzer] Pointers escape into +[NSValue valueWithPointer:]... 2014-01-07 21:39:48 +00:00
malloc.mm [analyzer] Switched to checkPreCall interface for detecting usage after free. 2013-04-10 22:21:41 +00:00
member-expr.cpp [analyzer] Don't assert when combining using .* on a temporary. 2014-04-29 17:08:12 +00:00
method-arg-decay.m Change 'method X in protocol not implemented' warning to include the name of the protocol. 2013-12-13 05:58:51 +00:00
method-call-intra-p.cpp
method-call-path-notes.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
method-call.cpp
misc-ps-64.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
misc-ps-arm.m Add error checking to reject neon_vector_type attribute on targets without NEON. 2013-09-16 18:07:35 +00:00
misc-ps-cxx0x.cpp
misc-ps-eager-assume.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
misc-ps-ranges.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
misc-ps-region-store-i386.m
misc-ps-region-store-x86_64.m
misc-ps-region-store.cpp Fix all tests under test/CXX (and test/Analysis) to pass if clang's default 2016-08-31 23:24:08 +00:00
misc-ps-region-store.m Fix testcase for case. 2014-05-20 17:15:31 +00:00
misc-ps-region-store.mm
misc-ps.c [analyzer] Accept references to variables declared "extern void" (C only). 2013-05-29 20:50:34 +00:00
misc-ps.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
model-file.cpp [analyzer] Add "Assuming..." diagnostic pieces for unsupported conditions. 2016-10-05 08:19:49 +00:00
mpichecker.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
mpicheckernotes.cpp [analyzer] Add checker to verify the correct usage of the MPI API 2016-06-13 03:22:41 +00:00
new-with-exceptions.cpp [analyzer] Assume new returns non-null even under -fno-exceptions 2013-08-28 08:04:08 +00:00
new.cpp Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
nil-receiver-undefined-larger-than-voidptr-ret-region.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
nil-receiver-undefined-larger-than-voidptr-ret.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
no-exit-cfg.c
no-outofbounds.c [analyzer] Teach CastSizeChecker about flexible array members. 2014-02-18 17:06:30 +00:00
no-unreachable-dtors.cpp CFG: Delay creating Dtors for CompoundStmts which end in ReturnStmt 2015-11-14 00:36:50 +00:00
non-diagnosable-assumptions.c [analyzer] Add "Assuming..." diagnostic pieces for unsupported conditions. 2016-10-05 08:19:49 +00:00
nonnull.m [analyzer] Check all 'nonnull' attributes, not just the first one. 2014-10-13 19:38:02 +00:00
null-deref-path-notes.m [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
null-deref-ps-region.c
null-deref-ps.c [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
nullability-no-arc.mm [analyzer] Refine the diagnostics in the nullability checker to differentiate between nil and null 2016-12-15 22:55:15 +00:00
nullability.c [analyzer] Add check for when block is called with too few arguments. 2016-11-15 18:40:46 +00:00
nullability.mm [analyzer] Refine the diagnostics in the nullability checker to differentiate between nil and null 2016-12-15 22:55:15 +00:00
nullability_nullonly.mm [analyzer] Refine the diagnostics in the nullability checker to differentiate between nil and null 2016-12-15 22:55:15 +00:00
nullptr.cpp [analyzer] Don't report null dereferences on address_space annotated memory 2016-01-06 00:32:49 +00:00
number-object-conversion.c [analyzer] NumberObjectConversion: support more types, misc updates. 2016-10-31 03:08:48 +00:00
number-object-conversion.cpp [analyzer] NumberObjectConversion: support more types, misc updates. 2016-10-31 03:08:48 +00:00
number-object-conversion.m [analyzer] NumberObjectConversion: support more types, misc updates. 2016-10-31 03:08:48 +00:00
objc-arc.m [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
objc-bool.m
objc-boxing.m [Sema]. Warn when logical expression is a pointer 2014-11-14 17:12:50 +00:00
objc-for.m Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
objc-message.m [analyzer] Skip Pre/Post handlers for ObjC calls when receiver is nil. 2015-09-15 01:13:53 +00:00
objc-method-coverage.m Partly revert "Move clang tests that depend on llvm/ADT/Statistic.h to a subdir". 2013-03-11 17:48:03 +00:00
objc-properties.m Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
objc-radar17039661.m [analyzer] Look for allocation site in the parent frames as well as the current one. 2015-02-05 01:02:53 +00:00
objc-string.mm A new conversion warning for when an Objective-C object literal is implicitly 2014-01-28 23:40:26 +00:00
objc-subscript.m [analyzer] RetainCountChecker: Clean up path notes for autorelease. 2013-04-23 01:42:25 +00:00
objc_invalidation.m Objective-C [qoi]. If property is going to be implemented 2014-08-29 20:29:31 +00:00
operator-calls.cpp Sema: avoid reuse of Exprs when synthesizing operator= 2013-08-30 08:52:28 +00:00
out-of-bounds-new.cpp [analyzer] Fix crash in MallocChecker. 2016-12-16 18:41:40 +00:00
out-of-bounds.c [analyzer] Correctly add assumptions based on array bounds. 2016-08-22 10:07:32 +00:00
outofbound-notwork.c
outofbound.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
override-werror.c
padding_c.c clang/test/Analysis/padding_c.c: Suppress a test incompatible to i686-linux. 2015-12-15 09:37:01 +00:00
padding_cpp.cpp [PATCH] Adding checker to detect excess padding in records 2015-12-14 21:38:59 +00:00
padding_message.cpp StaticAnalyzer: Report found fields order in PaddingChecker 2016-08-15 20:16:13 +00:00
plist-html-macros.c Remove 24 instances of 'REQUIRES: shell' 2016-10-20 23:11:45 +00:00
plist-macros.cpp [analyzer] Bug identification 2015-10-22 11:53:04 +00:00
plist-output-alternate.m [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
plist-output.m [analyzer] Add "Assuming..." diagnostic pieces for unsupported conditions. 2016-10-05 08:19:49 +00:00
pointer-to-member.cpp [analyzer] Add a new SVal to support pointer-to-member operations. 2016-12-15 21:27:06 +00:00
pr4209.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
pr22954.c [analyzer] When memcpy'ing into a fixed-size array, do not invalidate entire region. 2015-09-24 16:52:56 +00:00
pr_2542_rdar_6793404.m
pr_4164.c
properties.m Revert "[analyzer] Re-apply r283093 "Add extra notes to ObjCDeallocChecker"" 2016-10-16 00:30:08 +00:00
properties.mm [analyzer] Tighten up sanity checks on Objective-C property getter synthesis. 2014-01-23 03:59:10 +00:00
pthreadlock.c [analyzer] Fix pthread lock tests so that the API comes from a system header. 2014-09-10 16:17:42 +00:00
ptr-arith.c [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
ptr-arith.cpp [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
qt_malloc.cpp [analyzer] Add another exception for Qt in MallocChecker 2016-12-16 12:21:55 +00:00
range_casts.c [analyzer] Fix RangeConstraintManager's pinning of single value ranges. 2016-01-12 10:40:45 +00:00
rdar-6442306-1.m [analyzer] Improve pointer arithmetic checker. 2016-02-23 12:34:39 +00:00
rdar-6540084.m [Static Analyzer] Some tests do not turn on core checkers. Running the analyzers without the core checkers is not supported. 2015-07-24 03:25:13 +00:00
rdar-6541136-region.c
rdar-6562655.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
rdar-6600344-nil-receiver-undefined-struct-ret.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
rdar-7168531.m
redefined_system.c [analyzer] Do not crash in the KeychainAPI checker on user defined 'free()'. 2015-02-05 01:02:56 +00:00
refcnt_naming.m
reference.cpp [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
reference.mm [analyzer] Warn when nil receiver results in forming null reference 2013-04-03 19:28:19 +00:00
region-1.m Objective-C. Diagose use of undefined protocols 2014-03-11 17:10:51 +00:00
region-store.c [analyzer] Set concrete offset bindings to UnknownVal when processing symbolic offset binding, even if no bindings are present. 2013-03-25 20:43:24 +00:00
region-store.cpp [analyzer] Do not believe lazy binding when symbolic region types do not match 2013-03-19 22:38:09 +00:00
reinterpret-cast.cpp [analyzer] Fix MemRegion crash casting non-struct to derived struct (PR25426). 2015-12-05 00:22:36 +00:00
retain-release-arc.m [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
retain-release-cache-out.m [analyzer] Don't create new PostStmt nodes if we don't have to. 2014-06-18 19:23:30 +00:00
retain-release-cf-audited.m
retain-release-gc-only.m Update tests touched by r249656 2015-10-08 06:31:22 +00:00
retain-release-inline.m [analyzer] Better test for r178063. 2013-03-26 23:58:52 +00:00
retain-release-path-notes-gc.m [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
retain-release-path-notes.m [analyzer] Include type name in Retain Count Checker diagnostics 2016-12-15 22:55:03 +00:00
retain-release-region-store.m Update tests touched by r249656 2015-10-08 06:31:22 +00:00
retain-release.m [analyzer] Teach RetainCountChecker about VTCompressionSessionEncodeFrame() 2016-11-11 21:31:38 +00:00
retain-release.mm [analyzer] Fix a crash in RetainCountChecker - we should not rely on CallEnter::getCallExpr to return non-NULL 2013-04-25 00:41:32 +00:00
return-ptr-range.cpp [analyzer] Fix symbolic element index lifetime. 2015-12-10 09:28:06 +00:00
security-syntax-checks-no-emit.c
security-syntax-checks.m Enable security checks for arc4random() on CloudABI as well. 2015-03-11 08:48:55 +00:00
self-assign.cpp [analyzer] Add checker modeling potential C++ self-assignment 2016-07-21 23:42:31 +00:00
self-init.m Replace -fobjc-default-synthesize-properties with disable-objc-default-synthesize-properties. 2013-09-27 20:21:48 +00:00
shallow-mode.m
simple-stream-checks.c [analyzer] Indirect invalidation counts as an escape for leak checkers. 2013-05-10 17:07:16 +00:00
sizeofpointer.c
stack-addr-ps.c Register parameters have local storage. 2015-02-04 07:15:12 +00:00
stack-addr-ps.cpp Add -Wtautological-undefined-compare and -Wundefined-bool-conversion warnings 2014-06-06 21:39:26 +00:00
stack-block-returned.cpp
stackaddrleak.c [Analyzer] Correct stack address escape diagnostic 2016-05-26 14:02:17 +00:00
static_local.m
stats.c Partly revert "Move clang tests that depend on llvm/ADT/Statistic.h to a subdir". 2013-03-11 17:48:03 +00:00
std-c-library-functions.c [analyzer] StdLibraryFunctions: provide platform-specific function summaries. 2016-11-02 19:35:20 +00:00
std-c-library-functions.cpp [analyzer] Fix an ARM buildbot after r284960. 2016-10-24 12:54:27 +00:00
stream.c
string-fail.c
string.c [analyzer] Add LocationContext information to SymbolMetadata. 2016-08-17 15:37:52 +00:00
superclass.m [analyzer] Don't issue alarm in ObjCSuperCallChecker for the super class itself. 2015-08-08 01:31:51 +00:00
svalbuilder-logic.c Re-apply "[analyzer] Model casts to bool differently from other numbers." 2013-05-01 18:19:59 +00:00
switch-case.c [analyzer] Create one state for a range switch case instead of multiple. 2015-09-22 20:31:19 +00:00
symbol-reaper.c [analyzer] Minor fixes and improvements to debug.ExprInspection 2016-11-30 17:57:18 +00:00
taint-generic.c [analyzer] Teach ConstraintManager to ignore NonLoc <> NonLoc comparisons. 2013-03-24 20:25:22 +00:00
taint-tester.c [analyzer] Tests: move system functions into system header simulator files. 2013-04-15 20:39:37 +00:00
taint-tester.cpp [analyzer] Treat the rvalue of a forward-declared struct as Unknown. 2013-08-30 19:17:26 +00:00
taint-tester.m
temp-obj-dtors-cfg-output.cpp DR616, and part of P0135R1: member access (or pointer-to-member access) on a 2016-12-03 01:14:32 +00:00
templates.cpp [analyzer] Don't crash if a block doesn't have a type signature. 2013-05-22 18:09:44 +00:00
temporaries.cpp [analyzer] Add sink after construction of temporary with no-return destructor. 2016-12-19 22:23:22 +00:00
test-after-div-zero.c [analyzer] Check for code testing a variable for 0 after using it as a denominator. 2014-07-10 16:10:52 +00:00
test-include-cpp.cpp [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include-cpp.h [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include.c [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-include.h [static analyzer] Analyzer is skipping forward declared C/C++ functions 2015-06-26 17:42:58 +00:00
test-objc-non-nil-return-value-checker.m
test-variably-modified-types.c
traversal-algorithm.mm
traversal-begin-end-function.c [analyzer] Add checker callback for beginning of function. 2016-02-19 01:35:10 +00:00
traversal-path-unification.c [analyzer] Add checker callback for beginning of function. 2016-02-19 01:35:10 +00:00
ubigraph-viz.cpp Analyzer: Fix a crasher in UbigraphViz 2015-09-18 21:54:47 +00:00
undef-buffers.c [analyzer] Individual configuration options can be specified for checkers. 2015-03-04 17:59:34 +00:00
uninit-const.c [analyzer] Warn when passing pointers to const but uninitialized memory. 2014-03-13 17:55:39 +00:00
uninit-const.cpp [analyzer] Warn when passing pointers to const but uninitialized memory. 2014-03-13 17:55:39 +00:00
uninit-msg-expr.m
uninit-ps-rdar6145427.m
uninit-sometimes.cpp PR16054: Slight strengthening for -Wsometimes-uninitialized: if we use a 2013-09-12 18:49:10 +00:00
uninit-vals-ps-region.m [analyzer] Remove IdempotentOperations checker. 2014-01-04 05:52:11 +00:00
uninit-vals-ps.c [analyzer] Don't warn for returning void expressions in void blocks. 2013-04-17 18:03:48 +00:00
uninit-vals-union.c [analyzer] Fix a crash on accessing a field within a literal-initialized union. 2016-11-22 04:29:23 +00:00
uninit-vals.cpp [analyzer] Allow undefined values in performTrivialCopy. 2016-10-31 21:11:20 +00:00
uninit-vals.m [analyzer] "Force" LazyCompoundVals on bind when they are simple enough. 2013-04-18 16:33:46 +00:00
unions-region.m [analyzer] Drop explicit mention of range constraint solver 2016-12-01 17:06:39 +00:00
unions.cpp [analyzer] Generate a LazyCompoundVal when loading from a union-typed region. 2013-10-23 20:08:55 +00:00
unix-api.c [analyzer] Extend UnixAPIChecker open() checks to handle openat(). 2016-12-16 23:31:56 +00:00
unix-api.cpp [analyzer] UnixAPIChecker: Don't diagnose for functions in C++ namespaces 2016-12-17 01:08:17 +00:00
unix-fns.c [analyzer] Extend UnixAPIChecker open() checks to handle openat(). 2016-12-16 23:31:56 +00:00
unreachable-code-path.c alpha.core.UnreachableCode - don't warn about unreachable code inside macro 2016-10-18 13:16:53 +00:00
unused-ivars.m
valist-uninitialized.c Reapply "[analyzer] Added valist related checkers." 2016-08-22 11:21:30 +00:00
valist-unterminated.c Reapply "[analyzer] Added valist related checkers." 2016-08-22 11:21:30 +00:00
variadic-method-types.m
vfork.c [analyzer] Add VforkChecker to find unsafe code in vforked process. 2015-11-06 11:16:31 +00:00
virtualcall.cpp [analyzer] Improve VirtualCallChecker diagnostics and move into optin package. 2016-12-10 01:16:09 +00:00
virtualcall.h [analyzer] Improve VirtualCallChecker diagnostics and move into optin package. 2016-12-10 01:16:09 +00:00
vla.c [analyzer] Check for negative values used as the size of a C variable-length array. 2014-08-12 16:44:22 +00:00
weak-functions.c PR16074, implement warnings to catch pointer to boolean true and pointer to 2014-02-26 02:36:06 +00:00