llvm-project/clang/test/Analysis/inlining
Valeriy Savchenko 239c53b72b [analyzer] Track runtime types represented by Obj-C Class objects
Summary:
Objective-C Class objects can be used to do a dynamic dispatch on
class methods. The analyzer had a few places where we tried to overcome
the dynamic nature of it and still guess the actual function that
is being called. That was done mostly using some simple heuristics
covering the most widespread cases (e.g. [[self class] classmethod]).
This solution introduces a way to track types represented by Class
objects and work with that instead of direct AST matching.

rdar://problem/50739539

Differential Revision: https://reviews.llvm.org/D78286
2020-04-29 13:35:53 +03:00
..
Inputs/expected-plists [analyzer][NFC][tests] Pre-normalize expected-plists 2019-06-08 13:51:37 +00:00
DynDispatchBifurcate.m
InlineObjCClassMethod.m [analyzer] Track runtime types represented by Obj-C Class objects 2020-04-29 13:35:53 +03:00
InlineObjCInstanceMethod.h
InlineObjCInstanceMethod.m
ObjCDynTypePopagation.m [analyzer] Track runtime types represented by Obj-C Class objects 2020-04-29 13:35:53 +03:00
ObjCImproperDynamictallyDetectableCast.m
RetainCountExamples.m
analysis-order.c
assume-super-init-does-not-return-nil.m
containers.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
dyn-dispatch-bifurcate.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
eager-reclamation-path-notes.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
eager-reclamation-path-notes.cpp Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
false-positive-suppression.c [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
false-positive-suppression.cpp
false-positive-suppression.m
inline-defensive-checks.c [analyzer] Track null or undef values through pointer arithmetic. 2018-03-30 19:27:42 +00:00
inline-defensive-checks.cpp [analyzer] Track null and undef values through expressions with cleanups. 2018-06-25 23:55:07 +00:00
inline-defensive-checks.m
path-notes.c Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
path-notes.cpp Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
path-notes.m Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist" 2019-06-11 14:21:32 +00:00
placement-new-fp-suppression.cpp [analyzer] Specify the C++ standard in more tests. 2019-10-19 00:08:17 +00:00
retain-count-self-init.m
stl.cpp [analyzer] Move analyzer-eagerly-assume to AnalyzerOptions, enable by default 2018-08-29 20:29:17 +00:00
temp-dtors-path-notes.cpp [analyzer] Add support for pre-C++17 copy elision. 2018-06-28 00:30:18 +00:00
test-always-inline-size-option.c
test_objc_inlining_option.m