plist-output.m revision c6ea5d4f6e3049617e829e428f78f3d63da2cf52
1// RUN: clang-cc -analyze -analyzer-experimental-internal-checks -checker-cfref --analyzer-store=region -analyzer-constraints=range -fblocks --analyzer-output=plist -o - %s | FileCheck %s 2 3void test_null_init(void) { 4 int *p = 0; 5 *p = 0xDEADBEEF; 6} 7// CHECK: <?xml version="1.0" encoding="UTF-8"?> 8// CHECK: <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 9// CHECK: <plist version="1.0"> 10// CHECK: <dict> 11// CHECK: <key>files</key> 12// CHECK: <array> 13// CHECK: </array> 14// CHECK: <key>diagnostics</key> 15// CHECK: <array> 16// CHECK: <dict> 17// CHECK: <key>path</key> 18// CHECK: <array> 19// CHECK: <dict> 20// CHECK: <key>kind</key><string>event</string> 21// CHECK: <key>location</key> 22// CHECK: <dict> 23// CHECK: <key>line</key><integer>4</integer> 24// CHECK: <key>col</key><integer>3</integer> 25// CHECK: <key>file</key><integer>0</integer> 26// CHECK: </dict> 27// CHECK: <key>ranges</key> 28// CHECK: <array> 29// CHECK: <array> 30// CHECK: <dict> 31// CHECK: <key>line</key><integer>4</integer> 32// CHECK: <key>col</key><integer>3</integer> 33// CHECK: <key>file</key><integer>0</integer> 34// CHECK: </dict> 35// CHECK: <dict> 36// CHECK: <key>line</key><integer>4</integer> 37// CHECK: <key>col</key><integer>8</integer> 38// CHECK: <key>file</key><integer>0</integer> 39// CHECK: </dict> 40// CHECK: </array> 41// CHECK: </array> 42// CHECK: <key>extended_message</key> 43// CHECK: <string>Variable 'p' initialized to a null pointer value</string> 44// CHECK: <key>message</key> 45// CHECK: <string>Variable 'p' initialized to a null pointer value</string> 46// CHECK: </dict> 47// CHECK: <dict> 48// CHECK: <key>kind</key><string>control</string> 49// CHECK: <key>edges</key> 50// CHECK: <array> 51// CHECK: <dict> 52// CHECK: <key>start</key> 53// CHECK: <array> 54// CHECK: <dict> 55// CHECK: <key>line</key><integer>4</integer> 56// CHECK: <key>col</key><integer>3</integer> 57// CHECK: <key>file</key><integer>0</integer> 58// CHECK: </dict> 59// CHECK: <dict> 60// CHECK: <key>line</key><integer>4</integer> 61// CHECK: <key>col</key><integer>8</integer> 62// CHECK: <key>file</key><integer>0</integer> 63// CHECK: </dict> 64// CHECK: </array> 65// CHECK: <key>end</key> 66// CHECK: <array> 67// CHECK: <dict> 68// CHECK: <key>line</key><integer>5</integer> 69// CHECK: <key>col</key><integer>3</integer> 70// CHECK: <key>file</key><integer>0</integer> 71// CHECK: </dict> 72// CHECK: <dict> 73// CHECK: <key>line</key><integer>5</integer> 74// CHECK: <key>col</key><integer>4</integer> 75// CHECK: <key>file</key><integer>0</integer> 76// CHECK: </dict> 77// CHECK: </array> 78// CHECK: </dict> 79// CHECK: </array> 80// CHECK: </dict> 81// CHECK: <dict> 82// CHECK: <key>kind</key><string>event</string> 83// CHECK: <key>location</key> 84// CHECK: <dict> 85// CHECK: <key>line</key><integer>5</integer> 86// CHECK: <key>col</key><integer>3</integer> 87// CHECK: <key>file</key><integer>0</integer> 88// CHECK: </dict> 89// CHECK: <key>ranges</key> 90// CHECK: <array> 91// CHECK: <array> 92// CHECK: <dict> 93// CHECK: <key>line</key><integer>5</integer> 94// CHECK: <key>col</key><integer>3</integer> 95// CHECK: <key>file</key><integer>0</integer> 96// CHECK: </dict> 97// CHECK: <dict> 98// CHECK: <key>line</key><integer>5</integer> 99// CHECK: <key>col</key><integer>4</integer> 100// CHECK: <key>file</key><integer>0</integer> 101// CHECK: </dict> 102// CHECK: </array> 103// CHECK: </array> 104// CHECK: <key>extended_message</key> 105// CHECK: <string>Dereference of null pointer</string> 106// CHECK: <key>message</key> 107// CHECK: <string>Dereference of null pointer</string> 108// CHECK: </dict> 109// CHECK: </array> 110// CHECK: <key>description</key><string>Dereference of null pointer</string> 111// CHECK: <key>category</key><string>Logic error</string> 112// CHECK: <key>type</key><string>Null pointer dereference</string> 113// CHECK: <key>location</key> 114// CHECK: <dict> 115// CHECK: <key>line</key><integer>5</integer> 116// CHECK: <key>col</key><integer>3</integer> 117// CHECK: <key>file</key><integer>0</integer> 118// CHECK: </dict> 119// CHECK: </dict> 120// CHECK: </array> 121// CHECK: </dict> 122// CHECK: </plist>