CGColorSpace.c revision 65d39251ff57b8e33cf6d3a7fcc6aa1c6f8cdc68
1// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store=basic -analyzer-constraints=basic -verify %s
2// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store=basic -analyzer-constraints=range -verify %s
3// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store=region -analyzer-constraints=basic -verify %s
4// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store=region -analyzer-constraints=range -verify %s
5
6typedef struct CGColorSpace *CGColorSpaceRef;
7extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void);
8extern CGColorSpaceRef CGColorSpaceRetain(CGColorSpaceRef space);
9extern void CGColorSpaceRelease(CGColorSpaceRef space);
10
11void f() {
12  CGColorSpaceRef X = CGColorSpaceCreateDeviceRGB(); // expected-warning{{leak}}
13  CGColorSpaceRetain(X);
14}
15
16void fb() {
17  CGColorSpaceRef X = CGColorSpaceCreateDeviceRGB();
18  CGColorSpaceRetain(X);
19  CGColorSpaceRelease(X);
20  CGColorSpaceRelease(X);  // no-warning
21}
22