CGColorSpace.c revision d655ab28fdf7c940d3f79f8f287954d7f76e0977
1// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-store=basic -analyzer-constraints=basic -verify %s
2// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-store=basic -analyzer-constraints=range -verify %s
3// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-store=region -analyzer-constraints=basic -verify %s
4// RUN: %clang_cc1 -analyze -analyzer-checker=core -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