diff options
Diffstat (limited to 'clang/test/Analysis')
-rw-r--r-- | clang/test/Analysis/os_object_base.h | 2 | ||||
-rw-r--r-- | clang/test/Analysis/osobject-retain-release.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/test/Analysis/os_object_base.h b/clang/test/Analysis/os_object_base.h index e388dddd58f..2c69c9acdcf 100644 --- a/clang/test/Analysis/os_object_base.h +++ b/clang/test/Analysis/os_object_base.h @@ -23,6 +23,8 @@ struct OSMetaClassBase { static OSMetaClassBase *safeMetaCast(const OSMetaClassBase *inst, const OSMetaClass *meta); + OSMetaClassBase *metaCast(const char *toMeta); + virtual void retain() const; virtual void release() const; virtual void free(); diff --git a/clang/test/Analysis/osobject-retain-release.cpp b/clang/test/Analysis/osobject-retain-release.cpp index 9bc2e204545..24d6cb284c0 100644 --- a/clang/test/Analysis/osobject-retain-release.cpp +++ b/clang/test/Analysis/osobject-retain-release.cpp @@ -54,6 +54,9 @@ struct OtherStruct { OtherStruct(OSArray *arr); }; +bool test_meta_cast_no_leak(OSMetaClassBase *arg) { + return arg && arg->metaCast("blah") != nullptr; +} void escape(void *); void escape_with_source(void *p) {} |