Skip to content
Snippets Groups Projects
Commit bba6a4b3 authored by Ted Kremenek's avatar Ted Kremenek
Browse files

Update CF reference count checker test case to illustrate the use of

toll-free bridging.

llvm-svn: 49772
parent 8cb96e92
No related branches found
No related tags found
No related merge requests found
// RUN: clang -checker-cfref -verify %s // RUN: clang -checker-cfref -verify %s
#include <CoreFoundation/CFDate.h> #include <CoreFoundation/CFDate.h>
#include <Foundation/NSDate.h>
CFAbsoluteTime f1() { CFAbsoluteTime f1() {
CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
CFDateRef date = CFDateCreate(NULL, t); CFDateRef date = CFDateCreate(NULL, t);
CFRetain(date); CFRetain(date);
CFRelease(date); CFRelease(date);
CFDateGetAbsoluteTime(date); CFDateGetAbsoluteTime(date); // no-warning
CFRelease(date); CFRelease(date);
t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}} t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
return t; return t;
} }
CFAbsoluteTime f2() {
CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
CFDateRef date = CFDateCreate(NULL, t);
[((NSDate*) date) retain];
CFRelease(date);
CFDateGetAbsoluteTime(date); // no-warning
[((NSDate*) date) release];
t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
return t;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment