[RISCV][FMV] Support target_clones (#85786)
[llvm-project.git] / clang / test / Analysis / plist-output-alternate.m
blobc3a8d4d72c81a57264a02adc5c9cfc797044f24c
1 // RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.RetainCount,alpha.core -fblocks -analyzer-output=plist -o %t %s
2 // RUN: %normalize_plist <%t | diff -ub %S/Inputs/expected-plists/plist-output-alternate.m.plist -
4 void test_null_init(void) {
5   int *p = 0;
6   *p = 0xDEADBEEF;
9 void test_null_assign(void) {
10   int *p;
11   p = 0;
12   *p = 0xDEADBEEF;
15 void test_null_assign_transitive(void) {
16   int *p;
17   p = 0;
18   int *q = p;
19   *q = 0xDEADBEEF;
22 void test_null_cond(int *p) {
23   if (!p) {
24     *p = 0xDEADBEEF;
25   }
28 void test_null_cond_transitive(int *q) {
29   if (!q) {
30     int *p = q;
31     *p = 0xDEADBEEF;
32   }
35 void test_null_field(void) {
36   struct s { int *p; } x;
37   x.p = 0;
38   *(x.p) = 0xDEADBEEF;
41 // leak reports should not show paths that end with exit() (but ones that don't end with exit())
42 void panic(void) __attribute__((noreturn));
43 enum { kCFNumberSInt8Type = 1,     kCFNumberSInt16Type = 2,     kCFNumberSInt32Type = 3,     kCFNumberSInt64Type = 4,     kCFNumberFloat32Type = 5,     kCFNumberFloat64Type = 6,      kCFNumberCharType = 7,     kCFNumberShortType = 8,     kCFNumberIntType = 9,     kCFNumberLongType = 10,     kCFNumberLongLongType = 11,     kCFNumberFloatType = 12,     kCFNumberDoubleType = 13,      kCFNumberCFIndexType = 14,      kCFNumberNSIntegerType = 15,     kCFNumberCGFloatType = 16,     kCFNumberMaxType = 16    };
44 typedef const struct __CFAllocator * CFAllocatorRef;
45 extern const CFAllocatorRef kCFAllocatorDefault;
46 typedef signed long CFIndex;
47 typedef CFIndex CFNumberType;
48 typedef const struct __CFNumber * CFNumberRef;
50 extern CFNumberRef CFNumberCreate(CFAllocatorRef allocator, CFNumberType theType, const void *valuePtr);
52 void rdar8331641(int x) {
53   signed z = 1;
54   CFNumberRef value = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &z); // expected-warning{{leak}}
55   if (x)
56     panic();
57   (void) value;