diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-10-22 20:54:52 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-10-22 20:54:52 +0000 |
commit | 9a96bf22ecfd3e6842ac6992a45dc08bad608888 (patch) | |
tree | ef639dfe39f7e9c57597ac3085e0247e8c71d69a /clang/test/Analysis/CGColorSpace.c | |
parent | 1df62692f2e1ad182ad615cd65ccc24d24784788 (diff) | |
download | llvm-9a96bf22ecfd3e6842ac6992a45dc08bad608888.zip llvm-9a96bf22ecfd3e6842ac6992a45dc08bad608888.tar.gz llvm-9a96bf22ecfd3e6842ac6992a45dc08bad608888.tar.bz2 |
Enhance reference-count checker to correctly identify CG "release" functions. This fixes <rdar://problem/6303488>.
llvm-svn: 57997
Diffstat (limited to 'clang/test/Analysis/CGColorSpace.c')
-rw-r--r-- | clang/test/Analysis/CGColorSpace.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Analysis/CGColorSpace.c b/clang/test/Analysis/CGColorSpace.c new file mode 100644 index 0000000..793f75fa --- /dev/null +++ b/clang/test/Analysis/CGColorSpace.c @@ -0,0 +1,18 @@ +// clang -checker-cfref -verify %s + +typedef struct CGColorSpace *CGColorSpaceRef; +extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void); +extern CGColorSpaceRef CGColorSpaceRetain(CGColorSpaceRef space); +extern void CGColorSpaceRelease(CGColorSpaceRef space); + +void f() { + CGColorSpaceRef X = CGColorSpaceCreateDeviceRGB(); + CGColorSpaceRetain(X); // expected-warning{{leak}} +} + +void fb() { + CGColorSpaceRef X = CGColorSpaceCreateDeviceRGB(); + CGColorSpaceRetain(X); + CGColorSpaceRelease(X); + CGColorSpaceRelease(X); // no-warning +} |