Mercurial > hg > CbC > CbC_llvm
view clang/test/Analysis/test-separate-retaincount.cpp @ 222:81f6424ef0e3 llvm-original
LLVM original branch
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:10:01 +0900 |
parents | 79ff65ed7e25 |
children |
line wrap: on
line source
// RUN: %clang_analyze_cc1 -std=c++14 -verify=no-retain-count %s \ // RUN: -analyzer-checker=core,osx \ // RUN: -analyzer-disable-checker osx.cocoa.RetainCount // // RUN: %clang_analyze_cc1 -std=c++14 -verify=no-os-object %s \ // RUN: -analyzer-checker=core,osx \ // RUN: -analyzer-disable-checker osx.OSObjectRetainCount #include "os_object_base.h" typedef const void * CFTypeRef; extern CFTypeRef CFRetain(CFTypeRef cf); extern void CFRelease(CFTypeRef cf); #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) extern CFTypeRef CFCreate() CF_RETURNS_RETAINED; using size_t = decltype(sizeof(int)); void cf_overrelease() { CFTypeRef cf = CFCreate(); CFRelease(cf); CFRelease(cf); // no-os-object-warning{{Reference-counted object is used after it is released}} } void osobject_overrelease() { OSObject *o = new OSObject; o->release(); o->release(); // no-retain-count-warning{{Reference-counted object is used after it is released}} }