Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / docs / analyzer / checkers / seckeychainapi_example.m
blob979a5d97c7704171e58127b12e72fc765c0d0293
3 void test() {
4   unsigned int *ptr = 0;
5   UInt32 length;
7   SecKeychainItemFreeContent(ptr, &length);
8     // warn: trying to free data which has not been allocated
11 void test() {
12   unsigned int *ptr = 0;
13   UInt32 *length = 0;
14   void *outData;
16   OSStatus st =
17     SecKeychainItemCopyContent(2, ptr, ptr, length, outData);
18     // warn: data is not released
21 void test() {
22   unsigned int *ptr = 0;
23   UInt32 *length = 0;
24   void *outData;
26   OSStatus st =
27     SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
29   SecKeychainItemFreeContent(ptr, outData);
30     // warn: only call free if a non-NULL buffer was returned
33 void test() {
34   unsigned int *ptr = 0;
35   UInt32 *length = 0;
36   void *outData;
38   OSStatus st =
39     SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
41   st = SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
42     // warn: release data before another call to the allocator
44   if (st == noErr)
45     SecKeychainItemFreeContent(ptr, outData);
48 void test() {
49   SecKeychainItemRef itemRef = 0;
50   SecKeychainAttributeInfo *info = 0;
51   SecItemClass *itemClass = 0;
52   SecKeychainAttributeList *attrList = 0;
53   UInt32 *length = 0;
54   void *outData = 0;
56   OSStatus st =
57     SecKeychainItemCopyAttributesAndData(itemRef, info,
58                                          itemClass, &attrList,
59                                          length, &outData);
61   SecKeychainItemFreeContent(attrList, outData);
62     // warn: deallocator doesn't match the allocator