CGColorSpace.c revision 8382cf57b722f130f1a6b45380639871c07271c1
1// RUN: clang-cc -analyze -analyzer-experimental-internal-checks -checker-cfref -analyzer-store=basic -analyzer-constraints=basic -verify %s
2// RUN: clang-cc -analyze -analyzer-experimental-internal-checks -checker-cfref -analyzer-store=basic -analyzer-constraints=range -verify %s
3// RUN: clang-cc -analyze -analyzer-experimental-internal-checks -checker-cfref -analyzer-store=region -analyzer-constraints=basic -verify %s
4// RUN: clang-cc -analyze -analyzer-experimental-internal-checks -checker-cfref -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