llvm-project/clang/test/Analysis
Ted Kremenek eeccb30b94 Add support for the static analyzer to synthesize function implementations from external model files.
Currently the analyzer lazily models some functions using 'BodyFarm',
which constructs a fake function implementation that the analyzer
can simulate that approximates the semantics of the function when
it is called.  BodyFarm does this by constructing the AST for
such definitions on-the-fly.  One strength of BodyFarm
is that all symbols and types referenced by synthesized function
bodies are contextual adapted to the containing translation unit.
The downside is that these ASTs are hardcoded in Clang's own
source code.

A more scalable model is to allow these models to be defined as source
code in separate "model" files and have the analyzer use those
definitions lazily when a function body is needed.  Among other things,
it will allow more customization of the analyzer for specific APIs
and platforms.

This patch provides the initial infrastructure for this feature.
It extends BodyFarm to use an abstract API 'CodeInjector' that can be
used to synthesize function bodies.  That 'CodeInjector' is
implemented using a new 'ModelInjector' in libFrontend, which lazily
parses a model file and injects the ASTs into the current translation
unit.  

Models are currently found by specifying a 'model-path' as an
analyzer option; if no path is specified the CodeInjector is not
used, thus defaulting to the current behavior in the analyzer.

Models currently contain a single function definition, and can
be found by finding the file <function name>.model.  This is an
initial starting point for something more rich, but it bootstraps
this feature for future evolution.

This patch was contributed by Gábor Horváth as part of his
Google Summer of Code project.

Some notes:

- This introduces the notion of a "model file" into
  FrontendAction and the Preprocessor.  This nomenclature
  is specific to the static analyzer, but possibly could be
  generalized.  Essentially these are sources pulled in
  exogenously from the principal translation.

  Preprocessor gets a 'InitializeForModelFile' and
  'FinalizeForModelFile' which could possibly be hoisted out
  of Preprocessor if Preprocessor exposed a new API to
  change the PragmaHandlers and some other internal pieces.  This
  can be revisited.

  FrontendAction gets a 'isModelParsingAction()' predicate function
  used to allow a new FrontendAction to recycle the Preprocessor
  and ASTContext.  This name could probably be made something
  more general (i.e., not tied to 'model files') at the expense
  of losing the intent of why it exists.  This can be revisited.

- This is a moderate sized patch; it has gone through some amount of
  offline code review.  Most of the changes to the non-analyzer
  parts are fairly small, and would make little sense without
  the analyzer changes.

- Most of the analyzer changes are plumbing, with the interesting
  behavior being introduced by ModelInjector.cpp and
  ModelConsumer.cpp.

- The new functionality introduced by this change is off-by-default.
  It requires an analyzer config option to enable.

llvm-svn: 216550
2014-08-27 15:14:15 +00:00
..
Inputs Add support for the static analyzer to synthesize function implementations from external model files. 2014-08-27 15:14:15 +00:00
diagnostics [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
engine Add a new -Wundefined-inline warning for inline functions which are used but not 2013-02-01 08:13:20 +00:00
inlining Do not inline methods of C++ containers (coming from headers). 2014-06-27 01:03:05 +00:00
objc Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
CFContainers-invalid.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
CFContainers.mm Implement GCC's -Wint-to-pointer-cast. 2012-10-16 18:53:14 +00:00
CFDateGC.m Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CFNumber.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CFRetainRelease_NSAssertionHandler.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
CGColorSpace.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
CheckNSError.m Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
Malloc+MismatchedDeallocator+NewDelete.cpp [analyzer] Tests: move system functions into system header simulator files. 2013-04-15 20:39:37 +00:00
Malloc+MismatchedDeallocator_intersections.cpp [analyzer] Reduced the unwanted correlations between checkers living inside MallocChecker.cpp 2013-04-04 23:46:29 +00:00
Malloc+NewDelete_intersections.cpp [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
MismatchedDeallocator-checker-test.mm New message for cases when ownership is taken: 2013-09-16 17:51:25 +00:00
MismatchedDeallocator-path-notes.cpp [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
MissingDealloc.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
NSContainers.m [analyzer] When checking Foundation method calls, match the selectors exactly. 2014-04-09 01:39:22 +00:00
NSPanel.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
NSString.m [analyzer] Place all inlining policy checks into one palce 2013-02-22 02:59:24 +00:00
NSWindow.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
NewDelete+MismatchedDeallocator_intersections.cpp [analyzer] Re-enable cplusplus.NewDelete (but not NewDeleteLeaks). 2013-04-05 17:55:07 +00:00
NewDelete-checker-test.cpp [analyzer] Warn about double-delete in C++ at the second delete... 2014-01-08 18:46:55 +00:00
NewDelete-custom.cpp [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
NewDelete-intersections.mm [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
NewDelete-path-notes.cpp [analyzer] Assume new returns non-null even under -fno-exceptions 2013-08-28 08:04:08 +00:00
NewDelete-variadic.cpp Add implicit declarations of allocation functions when looking them up for 2014-02-04 01:14:30 +00:00
NewDeleteLeaks-PR18394.cpp Normalize line endings 2014-03-02 18:46:05 +00:00
NewDeleteLeaks-PR19102.cpp [Analyzer] fix for PR19102 2014-08-05 18:26:05 +00:00
NoReturn.m Switch this test from needlessly running the clang driver to directly 2014-01-15 09:07:56 +00:00
OSAtomic_mac.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ObjCProperties.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ObjCRetSigs.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR2599.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR2978.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
PR3991.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
PR7218.c
PR9741.cpp Remove duplicated -cc1 in tests 2013-12-08 18:06:52 +00:00
PR12905.c Analyzer: Fix PR12905, a crash when encountering a call to a function named "C". 2012-05-21 19:40:38 +00:00
additive-folding-range-constraints.c [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
additive-folding.cpp [analyzer] Teach constraint managers about unsigned comparisons. 2013-03-23 01:21:33 +00:00
analyzeOneFunction.m
analyze_display_progress.c
analyzer-config.c Revert "[analyzer] Add very limited support for temporary destructors" 2013-07-23 02:15:11 +00:00
analyzer-config.cpp Revert "[analyzer] Add very limited support for temporary destructors" 2013-07-23 02:15:11 +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] Tighten up safety in the use of lazy bindings. 2013-02-21 01:34:51 +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] Add a test for PR13927 "offsetof replacement flagged as null deref" 2012-10-01 19:07:19 +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 [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
bitwise-ops.c [analyzer] Shitfing a constant value by its bit width is undefined. 2014-01-16 18:02:23 +00:00
blocks-no-inline.c [analyzer] Try constant-evaluation for all variables, not just globals. 2013-02-14 19:06:11 +00:00
blocks.m [analyzer] Fix an infinite recursion in region invalidation by adding block count to the BlockDataRegion. 2013-11-20 00:11:42 +00:00
bool-assignment.c Re-apply "[analyzer] Model casts to bool differently from other numbers." 2013-05-01 18:19:59 +00:00
bstring.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
builtin-functions.cpp Omit arguments of __builtin_object_size from the CFG. 2013-08-19 16:27:28 +00:00
call-invalidation.cpp [analyzer] Functions marked __attribute__((const)) don't modify any memory. 2014-05-07 03:29:56 +00:00
casts.c PR16074, implement warnings to catch pointer to boolean true and pointer to 2014-02-26 02:36:06 +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 Fix some cases of incorrect handling of lifetime extended temporaries. 2014-07-30 08:34:42 +00:00
cfref_PR2519.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cfref_rdar6080742.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
check-deserialization.cpp [analyzer] PCH deserialization optimization. 2012-04-12 22:36:48 +00:00
checker-plugins.c Add a test for Static Analyzer checker plugins 2014-01-09 00:47:40 +00:00
chroot.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
comparison-implicit-casts.cpp Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
complex-init-list.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
complex.c Remove BasicConstraintManager. It hasn't been in active service for a while. 2012-08-22 19:47:13 +00:00
concrete-address.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
conditional-operator.cpp Switch %clang -cc1 tests to %clang_cc1 2013-10-28 23:47:09 +00:00
conditional-path-notes.c [analyzer] Don't emit an "Assuming x is <OP> y" if it's not a comparison op. 2013-10-26 01:16:26 +00:00
constant-folding.c [analyzer] Convert many existing tests to use clang_analyzer_eval. 2012-05-16 16:01:10 +00:00
coverage.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
crash-trace.c Remove line number from test/Analysis/crash-trace.c. 2013-07-23 16:12:18 +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 Turn on strncat-size warning implemented a while ago. 2012-08-07 18:36:58 +00:00
ctor.mm [analyzer] Improve test from r207486. 2014-04-29 17:08:17 +00:00
cxx-crashes.cpp clang/test: [PR8833] Introduce the feature "LP64" to suppress LLP64-incompatible tests. 2012-09-12 10:45:40 +00:00
cxx-for-range-cfg.cpp Teach CFG construction about destructors resulting from references to array types. Fixes crash in <rdar://problem/11671507>. 2012-07-18 04:57:57 +00:00
cxx-for-range.cpp [analyzer] Specialize "loop executed 0 times" for for-in and for-range loops. 2013-11-08 01:15:30 +00:00
cxx-method-names.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx11-crashes.cpp Teach static analyzer about AttributedStmts 2013-07-02 09:38:48 +00:00
dead-stores.c Consolidate header inclusion diagnostics 2014-07-11 20:53:51 +00:00
dead-stores.cpp Disable dead stores checker for template instantations. Fixes <rdar://problem/13213575>. 2013-02-18 07:18:28 +00:00
dead-stores.m Teach DeadStoresChecker about attribute objc_precise_lifetime. 2014-01-15 00:59:23 +00:00
debug-CallGraph.c [analyzer] Re-apply r170826 and make the dumping of the GallGraph 2012-12-21 17:27:01 +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 [analyzer] Use 'MemRegion::printPretty()' instead of assuming the region is a VarRegion. 2013-02-26 19:44:38 +00:00
delegates.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
derived-to-base.cpp Fix static analyzer crash when casting from an incomplete type 2013-06-20 07:45:01 +00:00
div-zero.cpp
domtest.c Correct test inovocations to use %clang_cc1 rather than direct invocation (so that it can have additional options set when trying to debug issues causing regressions). 2012-10-25 13:56:30 +00:00
dtor-cxx11.cpp [analyzer] Remove incorrect workaround for unimplemented temporary destructors. 2014-04-01 16:39:59 +00:00
dtor.cpp [analyzer] Re-enable test I accidentally committed commented-out. 2014-04-07 16:36:08 +00:00
dtors-in-dtor-cfg-output.cpp Remove useless 'XPASS: *' from tests 2013-01-25 22:20:24 +00:00
dynamic-cast.cpp Fix a tranche of comment, test and doc typos 2013-12-05 16:25:25 +00:00
edges-new.mm [analyzer] Specialize "loop executed 0 times" for for-in and for-range loops. 2013-11-08 01:15:30 +00:00
elementtype.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
enum.cpp [analyzer] Replace isIntegerType() with isIntegerOrEnumerationType(). 2013-04-09 02:30:33 +00:00
exceptions.mm [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests. 2012-08-21 21:44:07 +00:00
exercise-ps.c Consolidate header inclusion diagnostics 2014-07-11 20:53:51 +00:00
fields.c [analyzer] Special-case bitfields when finding sub-region bindings. 2013-03-01 23:03:17 +00:00
free.c [analyzer] These implements unix.MismatchedDeallocatorChecker checker. 2013-03-28 17:05:19 +00:00
func.c [analyzer] Add new debug helper clang_analyzer_warnIfReached. 2013-10-03 16:57:03 +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
html-diags-multifile.c Fix test that wasn't testing anything 2013-11-05 12:45:37 +00:00
html-diags-multifile.h [analyzer diagnostics] Change CompactPathDiagnostic to recursively compact diagnostics in calls into macro pieces. 2012-03-02 01:27:31 +00:00
html-diags.c Add a test case for r185707/PR16547. 2013-07-05 15:51:00 +00:00
identical-expressions.cpp [test] Turn off warnings for test/Analysis/identical-expressions.cpp. 2014-08-20 22:40:57 +00:00
initializer.cpp [analyzer] Handle C++11 member initializer expressions. 2013-07-17 17:16:42 +00:00
initializers-cfg-output.cpp CFG: Properly print delegating initializer CFG elements. 2013-10-22 23:19:47 +00:00
inline-not-supported.c [analyzer] -analyzer-ipa=inlining is now the default. Remove it from tests. 2012-08-21 21:44:07 +00:00
inline-plist.c [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
inline-unique-reports.c [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
inline.c Fix a crash in the static analyzer (bug #16307) 2013-06-19 08:19:56 +00:00
inline.cpp [analyzer] Inline C++ operator new when c++-inline-allocators is turned on. 2014-02-11 02:21:06 +00:00
inline2.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
inline3.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
inline4.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
ivars.m [analyzer] Allow ObjC ivar lvalues where the base is nil. 2012-10-01 19:07:22 +00:00
keychainAPI-diagnostic-visitor.m
keychainAPI.m [analyzer] Fix a false positive in Secure Keychain API checker. 2013-01-07 19:13:00 +00:00
kmalloc-linux.c [analyzer] Handle the M_ZERO and __GFP_ZERO flags in kernel mallocs. 2014-03-26 17:05:46 +00:00
lambdas.cpp Per latest drafting, switch to implementing init-captures as if by declaring 2013-09-28 04:02:39 +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
logical-ops.c [analyzer] Refactor conditional expression evaluating code 2013-08-23 07:19:22 +00:00
lvalue.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
malloc-annotations.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
malloc-interprocedural.c [analyzer] Shorten the malloc checker’s leak message 2013-04-06 00:41:36 +00:00
malloc-overflow.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
malloc-overflow.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
malloc-plist.c [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
malloc-sizeof.c [analyzer] Address John's code review for r163407. 2012-09-08 00:09:02 +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] Teach CastSizeChecker about flexible array members. 2014-02-18 17:06:30 +00:00
malloc.cpp [analyzer] Consolidate constant evaluation logic in SValBuilder. 2013-05-01 23:10:44 +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 Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
method-call-path-notes.cpp [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
method-call.cpp [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
misc-ps-64.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +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 [analyzer] Track null/uninitialized C++ objects used in method calls. 2012-08-03 23:08:49 +00:00
misc-ps-eager-assume.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-ranges.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
misc-ps-region-store-i386.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-region-store-x86_64.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
misc-ps-region-store.cpp Add -Wtautological-undefined-compare and -Wundefined-bool-conversion warnings 2014-06-06 21:39:26 +00:00
misc-ps-region-store.m Fix testcase for case. 2014-05-20 17:15:31 +00:00
misc-ps-region-store.mm Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
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] Check for negative values used as the size of a C variable-length array. 2014-08-12 16:44:22 +00:00
model-file.cpp Add support for the static analyzer to synthesize function implementations from external model files. 2014-08-27 15:14:15 +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 Fix analyzer tests. 2012-08-24 20:39:55 +00:00
nil-receiver-undefined-larger-than-voidptr-ret.m Fix FileCheck --check-prefix lines. 2013-08-12 12:51:05 +00:00
no-exit-cfg.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
no-outofbounds.c [analyzer] Teach CastSizeChecker about flexible array members. 2014-02-18 17:06:30 +00:00
nonnull.m [analyzer] NonNullParamChecker: don't freak out about nested transparent_unions. 2014-02-26 01:20:19 +00:00
null-deref-path-notes.m [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
null-deref-ps-region.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
null-deref-ps.c [analyzer] Remove IdempotentOperations checker. 2014-01-04 05:52:11 +00:00
nullptr.cpp [analyzer] Treat nullPtrType as a location type. 2013-07-12 17:58:33 +00:00
objc-arc.m Fix a tranche of comment, test and doc typos 2013-12-05 16:25:25 +00:00
objc-bool.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
objc-boxing.m [analyzer] Objective-C object literals are always non-nil. 2014-02-08 00:04:14 +00:00
objc-for.m Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +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 Fix a crash in Retain Count checker error reporting 2014-06-13 23:47:38 +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. Issue more warning diagnostic when certain 2014-07-26 20:52:26 +00:00
operator-calls.cpp Sema: avoid reuse of Exprs when synthesizing operator= 2013-08-30 08:52:28 +00:00
out-of-bounds.c [analyzer] Accept references to variables declared "extern void" (C only). 2013-05-29 20:50:34 +00:00
outofbound-notwork.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
outofbound.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
override-werror.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
plist-html-macros.c [analyzer] Ensure that PathDiagnostics profile the same regardless of path. 2012-08-31 00:36:26 +00:00
plist-macros.cpp [analyzer; alternate edges] Fix the edge locations in presence of macros. 2013-06-08 00:29:24 +00:00
plist-output-alternate.m [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
plist-output.m [analyzer] Enable the new edge algorithm by default. 2013-06-03 23:00:19 +00:00
pointer-to-member.cpp [analyzer] Pointers-to-members are (currently) Locs, not NonLocs. 2013-07-02 16:50:24 +00:00
pr4209.m Split "incomplete implementation" warnings for ObjC into separate warnings. 2013-03-27 00:02:21 +00:00
pr_2542_rdar_6793404.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
pr_4164.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
properties.m [analyzer] Don't track retain counts of objects directly accessed through ivars. 2014-03-25 17:10:58 +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] Lock checker: Allow pthread_mutex_init to reinitialize a destroyed lock. 2014-04-01 03:40:53 +00:00
ptr-arith.c PR16074, implement warnings to catch pointer to boolean true and pointer to 2014-02-26 02:36:06 +00:00
ptr-arith.cpp [analyzer] Use a more generic MemRegion.getAsOffset to evaluate bin operators on MemRegions 2013-05-28 17:31:43 +00:00
rdar-6442306-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-6540084.m improve of note message and minor refactoring of my last 2013-05-15 15:27:35 +00:00
rdar-6541136-region.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
rdar-6562655.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-6600344-nil-receiver-undefined-struct-ret.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar-7168531.m Fix analyzer tests. 2012-08-24 20:39:55 +00:00
redefined_system.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
refcnt_naming.m [analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa". 2013-01-24 23:15:30 +00:00
reference.cpp Add -Wtautological-undefined-compare and -Wundefined-bool-conversion warnings 2014-06-06 21:39:26 +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] Re-enable reasoning about CK_LValueBitCast 2013-05-28 22:32:08 +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 [analyzer] Don't let cf_audited_transfer override CFRetain semantics. 2013-03-04 23:21:32 +00:00
retain-release-gc-only.m [analyzer] More tests for "release and stop tracking". 2012-08-20 22:15:44 +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] Merge TextPathDiagnostics and ClangDiagPathDiagConsumer. 2013-08-16 01:06:30 +00:00
retain-release-path-notes.m [analyzer] RetainCountChecker: add support for CFAutorelease. 2013-10-07 17:16:52 +00:00
retain-release-region-store.m Change RetainCountChecker to eagerly "escape" retained objects when they are 2012-03-27 01:12:45 +00:00
retain-release.m [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +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
security-syntax-checks-no-emit.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
security-syntax-checks.m Check the canonical parameter type with getAs<>() in a static checker 2013-06-24 16:56:16 +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 [analyzer] Add "-analyzer-config mode=[deep|shallow] ". 2013-01-24 23:15:34 +00:00
simple-stream-checks.c [analyzer] Indirect invalidation counts as an escape for leak checkers. 2013-05-10 17:07:16 +00:00
sizeofpointer.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
stack-addr-ps.c Teach analyzer that blocks with no captures are globals. Fixes <rdar://problem/10348049>. 2012-02-18 22:41:01 +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 PR16074, implement warnings to catch pointer to boolean true and pointer to 2014-02-26 02:36:06 +00:00
static_local.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
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
stream.c Fix analyzer tests. 2012-08-24 20:39:55 +00:00
string-fail.c [analyzer] Convert many existing tests to use clang_analyzer_eval. 2012-05-16 16:01:10 +00:00
string.c [analyzer] Assume that strings are no longer than SIZE_MAX/4. 2013-08-19 16:27:34 +00:00
superclass.m [analyzer] Move checker alpha.osx.cocoa.MissingSuperCall out of alpha category. 2014-02-19 05:28:39 +00:00
svalbuilder-logic.c Re-apply "[analyzer] Model casts to bool differently from other numbers." 2013-05-01 18:19:59 +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 Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
temp-obj-dtors-cfg-output.cpp Re-applying r214962. 2014-08-07 10:42:17 +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 Work around missing handling of temporaries bound to default arguments. 2014-08-13 15:25:55 +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-objc-non-nil-return-value-checker.m [analyzer] Add osx.cocoa.NonNilReturnValue checker. 2012-08-22 21:19:56 +00:00
test-variably-modified-types.c [analyzer] Test variable modified types. 2012-05-11 23:34:14 +00:00
traversal-algorithm.mm Make this test invariant to future changes of the max loop unrolling count. 2012-07-02 21:02:22 +00:00
traversal-path-unification.c [analyzer] Rename callback EndPath -> EndFunction 2013-01-03 00:25:29 +00:00
undef-buffers.c Fix analyzer tests. 2012-08-24 20:39:55 +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.m [analyzer] "Force" LazyCompoundVals on bind when they are simple enough. 2013-04-18 16:33:46 +00:00
unions-region.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +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] UnixAPI: Check that the third argument to open(2) (if present) is an integer. 2014-08-20 16:58:09 +00:00
unix-fns.c [analyzer] Address Jordan’s code review for r183451 2013-06-06 22:32:11 +00:00
unreachable-code-path.c [analyzer] Don't run unreachable code checker on inlined functions. 2013-08-19 17:03:12 +00:00
unused-ivars.m [analyzer] Fix a regression in ObjCUnusedIVars checker. 2012-05-15 22:31:56 +00:00
variadic-method-types.m Allow multiple PathDiagnosticConsumers to be used with a BugReporter at the same time. 2012-08-16 17:45:23 +00:00
virtualcall.cpp [analyzer] Don't warn on virtual calls in ctors to final methods. 2014-08-21 10:25:03 +00:00
virtualcall.h [analyzer] Don't run non-path-sensitive checks on system headers... 2012-10-10 17:55:40 +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