110ad081fSJordan Rose // RUN: %clang_cc1 -analyze -analyzer-checker=cplusplus.NewDelete,unix.Malloc -analyzer-output=text -verify %s
210ad081fSJordan Rose // RUN: %clang_cc1 -analyze -analyzer-checker=cplusplus.NewDelete,unix.Malloc -analyzer-output=plist %s -o %t.plist
313df0362SAnton Yartsev // RUN: FileCheck --input-file=%t.plist %s
413df0362SAnton Yartsev 
513df0362SAnton Yartsev void test() {
613df0362SAnton Yartsev   int *p = new int;
713df0362SAnton Yartsev   // expected-note@-1 {{Memory is allocated}}
813df0362SAnton Yartsev   if (p)
913df0362SAnton Yartsev     // expected-note@-1 {{Assuming 'p' is non-null}}
1013df0362SAnton Yartsev     // expected-note@-2 {{Taking true branch}}
1113df0362SAnton Yartsev     delete p;
1213df0362SAnton Yartsev     // expected-note@-1 {{Memory is released}}
1313df0362SAnton Yartsev 
1413df0362SAnton Yartsev   delete p; // expected-warning {{Attempt to free released memory}}
1513df0362SAnton Yartsev   // expected-note@-1 {{Attempt to free released memory}}
1613df0362SAnton Yartsev }
1713df0362SAnton Yartsev 
18*e4cfcd4eSAnna Zaks struct Odd {
19*e4cfcd4eSAnna Zaks 	void kill() {
20*e4cfcd4eSAnna Zaks 		delete this; // expected-note {{Memory is released}}
21*e4cfcd4eSAnna Zaks 	}
22*e4cfcd4eSAnna Zaks };
23*e4cfcd4eSAnna Zaks 
24*e4cfcd4eSAnna Zaks void test(Odd *odd) {
25*e4cfcd4eSAnna Zaks 	odd->kill(); // expected-note{{Calling 'Odd::kill'}}
26*e4cfcd4eSAnna Zaks                // expected-note@-1 {{Returning; memory was released}}
27*e4cfcd4eSAnna Zaks 	delete odd; // expected-warning {{Attempt to free released memory}}
28*e4cfcd4eSAnna Zaks               // expected-note@-1 {{Attempt to free released memory}}
29*e4cfcd4eSAnna Zaks }
30*e4cfcd4eSAnna Zaks 
3113df0362SAnton Yartsev // CHECK:  <key>diagnostics</key>
3213df0362SAnton Yartsev // CHECK-NEXT:  <array>
3313df0362SAnton Yartsev // CHECK-NEXT:   <dict>
3413df0362SAnton Yartsev // CHECK-NEXT:    <key>path</key>
3513df0362SAnton Yartsev // CHECK-NEXT:    <array>
3613df0362SAnton Yartsev // CHECK-NEXT:     <dict>
3713df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>control</string>
3813df0362SAnton Yartsev // CHECK-NEXT:      <key>edges</key>
3913df0362SAnton Yartsev // CHECK-NEXT:       <array>
4013df0362SAnton Yartsev // CHECK-NEXT:        <dict>
4113df0362SAnton Yartsev // CHECK-NEXT:         <key>start</key>
4213df0362SAnton Yartsev // CHECK-NEXT:          <array>
4313df0362SAnton Yartsev // CHECK-NEXT:           <dict>
4413df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
4513df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>3</integer>
4613df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
4713df0362SAnton Yartsev // CHECK-NEXT:           </dict>
4813df0362SAnton Yartsev // CHECK-NEXT:           <dict>
4913df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
5013df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>5</integer>
5113df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
5213df0362SAnton Yartsev // CHECK-NEXT:           </dict>
5313df0362SAnton Yartsev // CHECK-NEXT:          </array>
5413df0362SAnton Yartsev // CHECK-NEXT:         <key>end</key>
5513df0362SAnton Yartsev // CHECK-NEXT:          <array>
5613df0362SAnton Yartsev // CHECK-NEXT:           <dict>
5713df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
5813df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>12</integer>
5913df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
6013df0362SAnton Yartsev // CHECK-NEXT:           </dict>
6113df0362SAnton Yartsev // CHECK-NEXT:           <dict>
6213df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
6313df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>14</integer>
6413df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
6513df0362SAnton Yartsev // CHECK-NEXT:           </dict>
6613df0362SAnton Yartsev // CHECK-NEXT:          </array>
6713df0362SAnton Yartsev // CHECK-NEXT:        </dict>
6813df0362SAnton Yartsev // CHECK-NEXT:       </array>
6913df0362SAnton Yartsev // CHECK-NEXT:     </dict>
7013df0362SAnton Yartsev // CHECK-NEXT:     <dict>
7113df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>event</string>
7213df0362SAnton Yartsev // CHECK-NEXT:      <key>location</key>
7313df0362SAnton Yartsev // CHECK-NEXT:      <dict>
7413df0362SAnton Yartsev // CHECK-NEXT:       <key>line</key><integer>6</integer>
7513df0362SAnton Yartsev // CHECK-NEXT:       <key>col</key><integer>12</integer>
7613df0362SAnton Yartsev // CHECK-NEXT:       <key>file</key><integer>0</integer>
7713df0362SAnton Yartsev // CHECK-NEXT:      </dict>
7813df0362SAnton Yartsev // CHECK-NEXT:      <key>ranges</key>
7913df0362SAnton Yartsev // CHECK-NEXT:      <array>
8013df0362SAnton Yartsev // CHECK-NEXT:        <array>
8113df0362SAnton Yartsev // CHECK-NEXT:         <dict>
8213df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>6</integer>
8313df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>12</integer>
8413df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
8513df0362SAnton Yartsev // CHECK-NEXT:         </dict>
8613df0362SAnton Yartsev // CHECK-NEXT:         <dict>
8713df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>6</integer>
8813df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>18</integer>
8913df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
9013df0362SAnton Yartsev // CHECK-NEXT:         </dict>
9113df0362SAnton Yartsev // CHECK-NEXT:        </array>
9213df0362SAnton Yartsev // CHECK-NEXT:      </array>
9313df0362SAnton Yartsev // CHECK-NEXT:      <key>depth</key><integer>0</integer>
9413df0362SAnton Yartsev // CHECK-NEXT:      <key>extended_message</key>
9513df0362SAnton Yartsev // CHECK-NEXT:      <string>Memory is allocated</string>
9613df0362SAnton Yartsev // CHECK-NEXT:      <key>message</key>
9713df0362SAnton Yartsev // CHECK-NEXT:      <string>Memory is allocated</string>
9813df0362SAnton Yartsev // CHECK-NEXT:     </dict>
9913df0362SAnton Yartsev // CHECK-NEXT:     <dict>
10013df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>control</string>
10113df0362SAnton Yartsev // CHECK-NEXT:      <key>edges</key>
10213df0362SAnton Yartsev // CHECK-NEXT:       <array>
10313df0362SAnton Yartsev // CHECK-NEXT:        <dict>
10413df0362SAnton Yartsev // CHECK-NEXT:         <key>start</key>
10513df0362SAnton Yartsev // CHECK-NEXT:          <array>
10613df0362SAnton Yartsev // CHECK-NEXT:           <dict>
10713df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
10813df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>12</integer>
10913df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
11013df0362SAnton Yartsev // CHECK-NEXT:           </dict>
11113df0362SAnton Yartsev // CHECK-NEXT:           <dict>
11213df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>6</integer>
11313df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>14</integer>
11413df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
11513df0362SAnton Yartsev // CHECK-NEXT:           </dict>
11613df0362SAnton Yartsev // CHECK-NEXT:          </array>
11713df0362SAnton Yartsev // CHECK-NEXT:         <key>end</key>
11813df0362SAnton Yartsev // CHECK-NEXT:          <array>
11913df0362SAnton Yartsev // CHECK-NEXT:           <dict>
12013df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
12113df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>3</integer>
12213df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
12313df0362SAnton Yartsev // CHECK-NEXT:           </dict>
12413df0362SAnton Yartsev // CHECK-NEXT:           <dict>
12513df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
12613df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>4</integer>
12713df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
12813df0362SAnton Yartsev // CHECK-NEXT:           </dict>
12913df0362SAnton Yartsev // CHECK-NEXT:          </array>
13013df0362SAnton Yartsev // CHECK-NEXT:        </dict>
13113df0362SAnton Yartsev // CHECK-NEXT:       </array>
13213df0362SAnton Yartsev // CHECK-NEXT:     </dict>
13313df0362SAnton Yartsev // CHECK-NEXT:     <dict>
13413df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>control</string>
13513df0362SAnton Yartsev // CHECK-NEXT:      <key>edges</key>
13613df0362SAnton Yartsev // CHECK-NEXT:       <array>
13713df0362SAnton Yartsev // CHECK-NEXT:        <dict>
13813df0362SAnton Yartsev // CHECK-NEXT:         <key>start</key>
13913df0362SAnton Yartsev // CHECK-NEXT:          <array>
14013df0362SAnton Yartsev // CHECK-NEXT:           <dict>
14113df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
14213df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>3</integer>
14313df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
14413df0362SAnton Yartsev // CHECK-NEXT:           </dict>
14513df0362SAnton Yartsev // CHECK-NEXT:           <dict>
14613df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
14713df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>4</integer>
14813df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
14913df0362SAnton Yartsev // CHECK-NEXT:           </dict>
15013df0362SAnton Yartsev // CHECK-NEXT:          </array>
15113df0362SAnton Yartsev // CHECK-NEXT:         <key>end</key>
15213df0362SAnton Yartsev // CHECK-NEXT:          <array>
15313df0362SAnton Yartsev // CHECK-NEXT:           <dict>
15413df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
15513df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>7</integer>
15613df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
15713df0362SAnton Yartsev // CHECK-NEXT:           </dict>
15813df0362SAnton Yartsev // CHECK-NEXT:           <dict>
15913df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
16013df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>7</integer>
16113df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
16213df0362SAnton Yartsev // CHECK-NEXT:           </dict>
16313df0362SAnton Yartsev // CHECK-NEXT:          </array>
16413df0362SAnton Yartsev // CHECK-NEXT:        </dict>
16513df0362SAnton Yartsev // CHECK-NEXT:       </array>
16613df0362SAnton Yartsev // CHECK-NEXT:     </dict>
16713df0362SAnton Yartsev // CHECK-NEXT:     <dict>
16813df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>event</string>
16913df0362SAnton Yartsev // CHECK-NEXT:      <key>location</key>
17013df0362SAnton Yartsev // CHECK-NEXT:      <dict>
17113df0362SAnton Yartsev // CHECK-NEXT:       <key>line</key><integer>8</integer>
17213df0362SAnton Yartsev // CHECK-NEXT:       <key>col</key><integer>7</integer>
17313df0362SAnton Yartsev // CHECK-NEXT:       <key>file</key><integer>0</integer>
17413df0362SAnton Yartsev // CHECK-NEXT:      </dict>
17513df0362SAnton Yartsev // CHECK-NEXT:      <key>ranges</key>
17613df0362SAnton Yartsev // CHECK-NEXT:      <array>
17713df0362SAnton Yartsev // CHECK-NEXT:        <array>
17813df0362SAnton Yartsev // CHECK-NEXT:         <dict>
17913df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>8</integer>
18013df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>7</integer>
18113df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
18213df0362SAnton Yartsev // CHECK-NEXT:         </dict>
18313df0362SAnton Yartsev // CHECK-NEXT:         <dict>
18413df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>8</integer>
18513df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>7</integer>
18613df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
18713df0362SAnton Yartsev // CHECK-NEXT:         </dict>
18813df0362SAnton Yartsev // CHECK-NEXT:        </array>
18913df0362SAnton Yartsev // CHECK-NEXT:      </array>
19013df0362SAnton Yartsev // CHECK-NEXT:      <key>depth</key><integer>0</integer>
19113df0362SAnton Yartsev // CHECK-NEXT:      <key>extended_message</key>
19213df0362SAnton Yartsev // CHECK-NEXT:      <string>Assuming &apos;p&apos; is non-null</string>
19313df0362SAnton Yartsev // CHECK-NEXT:      <key>message</key>
19413df0362SAnton Yartsev // CHECK-NEXT:      <string>Assuming &apos;p&apos; is non-null</string>
19513df0362SAnton Yartsev // CHECK-NEXT:     </dict>
19613df0362SAnton Yartsev // CHECK-NEXT:     <dict>
19713df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>control</string>
19813df0362SAnton Yartsev // CHECK-NEXT:      <key>edges</key>
19913df0362SAnton Yartsev // CHECK-NEXT:       <array>
20013df0362SAnton Yartsev // CHECK-NEXT:        <dict>
20113df0362SAnton Yartsev // CHECK-NEXT:         <key>start</key>
20213df0362SAnton Yartsev // CHECK-NEXT:          <array>
20313df0362SAnton Yartsev // CHECK-NEXT:           <dict>
20413df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
20513df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>7</integer>
20613df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
20713df0362SAnton Yartsev // CHECK-NEXT:           </dict>
20813df0362SAnton Yartsev // CHECK-NEXT:           <dict>
20913df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>8</integer>
21013df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>7</integer>
21113df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
21213df0362SAnton Yartsev // CHECK-NEXT:           </dict>
21313df0362SAnton Yartsev // CHECK-NEXT:          </array>
21413df0362SAnton Yartsev // CHECK-NEXT:         <key>end</key>
21513df0362SAnton Yartsev // CHECK-NEXT:          <array>
21613df0362SAnton Yartsev // CHECK-NEXT:           <dict>
21713df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>11</integer>
21813df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>5</integer>
21913df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
22013df0362SAnton Yartsev // CHECK-NEXT:           </dict>
22113df0362SAnton Yartsev // CHECK-NEXT:           <dict>
22213df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>11</integer>
22313df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>10</integer>
22413df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
22513df0362SAnton Yartsev // CHECK-NEXT:           </dict>
22613df0362SAnton Yartsev // CHECK-NEXT:          </array>
22713df0362SAnton Yartsev // CHECK-NEXT:        </dict>
22813df0362SAnton Yartsev // CHECK-NEXT:       </array>
22913df0362SAnton Yartsev // CHECK-NEXT:     </dict>
23013df0362SAnton Yartsev // CHECK-NEXT:     <dict>
23113df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>event</string>
23213df0362SAnton Yartsev // CHECK-NEXT:      <key>location</key>
23313df0362SAnton Yartsev // CHECK-NEXT:      <dict>
23413df0362SAnton Yartsev // CHECK-NEXT:       <key>line</key><integer>11</integer>
23513df0362SAnton Yartsev // CHECK-NEXT:       <key>col</key><integer>5</integer>
23613df0362SAnton Yartsev // CHECK-NEXT:       <key>file</key><integer>0</integer>
23713df0362SAnton Yartsev // CHECK-NEXT:      </dict>
23813df0362SAnton Yartsev // CHECK-NEXT:      <key>ranges</key>
23913df0362SAnton Yartsev // CHECK-NEXT:      <array>
24013df0362SAnton Yartsev // CHECK-NEXT:        <array>
24113df0362SAnton Yartsev // CHECK-NEXT:         <dict>
24213df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>11</integer>
24313df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>5</integer>
24413df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
24513df0362SAnton Yartsev // CHECK-NEXT:         </dict>
24613df0362SAnton Yartsev // CHECK-NEXT:         <dict>
24713df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>11</integer>
24813df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>12</integer>
24913df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
25013df0362SAnton Yartsev // CHECK-NEXT:         </dict>
25113df0362SAnton Yartsev // CHECK-NEXT:        </array>
25213df0362SAnton Yartsev // CHECK-NEXT:      </array>
25313df0362SAnton Yartsev // CHECK-NEXT:      <key>depth</key><integer>0</integer>
25413df0362SAnton Yartsev // CHECK-NEXT:      <key>extended_message</key>
25513df0362SAnton Yartsev // CHECK-NEXT:      <string>Memory is released</string>
25613df0362SAnton Yartsev // CHECK-NEXT:      <key>message</key>
25713df0362SAnton Yartsev // CHECK-NEXT:      <string>Memory is released</string>
25813df0362SAnton Yartsev // CHECK-NEXT:     </dict>
25913df0362SAnton Yartsev // CHECK-NEXT:     <dict>
26013df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>control</string>
26113df0362SAnton Yartsev // CHECK-NEXT:      <key>edges</key>
26213df0362SAnton Yartsev // CHECK-NEXT:       <array>
26313df0362SAnton Yartsev // CHECK-NEXT:        <dict>
26413df0362SAnton Yartsev // CHECK-NEXT:         <key>start</key>
26513df0362SAnton Yartsev // CHECK-NEXT:          <array>
26613df0362SAnton Yartsev // CHECK-NEXT:           <dict>
26713df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>11</integer>
26813df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>5</integer>
26913df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
27013df0362SAnton Yartsev // CHECK-NEXT:           </dict>
27113df0362SAnton Yartsev // CHECK-NEXT:           <dict>
27213df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>11</integer>
27313df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>10</integer>
27413df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
27513df0362SAnton Yartsev // CHECK-NEXT:           </dict>
27613df0362SAnton Yartsev // CHECK-NEXT:          </array>
27713df0362SAnton Yartsev // CHECK-NEXT:         <key>end</key>
27813df0362SAnton Yartsev // CHECK-NEXT:          <array>
27913df0362SAnton Yartsev // CHECK-NEXT:           <dict>
28013df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>14</integer>
28113df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>3</integer>
28213df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
28313df0362SAnton Yartsev // CHECK-NEXT:           </dict>
28413df0362SAnton Yartsev // CHECK-NEXT:           <dict>
28513df0362SAnton Yartsev // CHECK-NEXT:            <key>line</key><integer>14</integer>
28613df0362SAnton Yartsev // CHECK-NEXT:            <key>col</key><integer>8</integer>
28713df0362SAnton Yartsev // CHECK-NEXT:            <key>file</key><integer>0</integer>
28813df0362SAnton Yartsev // CHECK-NEXT:           </dict>
28913df0362SAnton Yartsev // CHECK-NEXT:          </array>
29013df0362SAnton Yartsev // CHECK-NEXT:        </dict>
29113df0362SAnton Yartsev // CHECK-NEXT:       </array>
29213df0362SAnton Yartsev // CHECK-NEXT:     </dict>
29313df0362SAnton Yartsev // CHECK-NEXT:     <dict>
29413df0362SAnton Yartsev // CHECK-NEXT:      <key>kind</key><string>event</string>
29513df0362SAnton Yartsev // CHECK-NEXT:      <key>location</key>
29613df0362SAnton Yartsev // CHECK-NEXT:      <dict>
29713df0362SAnton Yartsev // CHECK-NEXT:       <key>line</key><integer>14</integer>
29813df0362SAnton Yartsev // CHECK-NEXT:       <key>col</key><integer>3</integer>
29913df0362SAnton Yartsev // CHECK-NEXT:       <key>file</key><integer>0</integer>
30013df0362SAnton Yartsev // CHECK-NEXT:      </dict>
30113df0362SAnton Yartsev // CHECK-NEXT:      <key>ranges</key>
30213df0362SAnton Yartsev // CHECK-NEXT:      <array>
30313df0362SAnton Yartsev // CHECK-NEXT:        <array>
30413df0362SAnton Yartsev // CHECK-NEXT:         <dict>
30513df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>14</integer>
30613df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>3</integer>
30713df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
30813df0362SAnton Yartsev // CHECK-NEXT:         </dict>
30913df0362SAnton Yartsev // CHECK-NEXT:         <dict>
31013df0362SAnton Yartsev // CHECK-NEXT:          <key>line</key><integer>14</integer>
31113df0362SAnton Yartsev // CHECK-NEXT:          <key>col</key><integer>10</integer>
31213df0362SAnton Yartsev // CHECK-NEXT:          <key>file</key><integer>0</integer>
31313df0362SAnton Yartsev // CHECK-NEXT:         </dict>
31413df0362SAnton Yartsev // CHECK-NEXT:        </array>
31513df0362SAnton Yartsev // CHECK-NEXT:      </array>
31613df0362SAnton Yartsev // CHECK-NEXT:      <key>depth</key><integer>0</integer>
31713df0362SAnton Yartsev // CHECK-NEXT:      <key>extended_message</key>
31813df0362SAnton Yartsev // CHECK-NEXT:      <string>Attempt to free released memory</string>
31913df0362SAnton Yartsev // CHECK-NEXT:      <key>message</key>
32013df0362SAnton Yartsev // CHECK-NEXT:      <string>Attempt to free released memory</string>
32113df0362SAnton Yartsev // CHECK-NEXT:     </dict>
32213df0362SAnton Yartsev // CHECK-NEXT:    </array>
32313df0362SAnton Yartsev // CHECK-NEXT:    <key>description</key><string>Attempt to free released memory</string>
32413df0362SAnton Yartsev // CHECK-NEXT:    <key>category</key><string>Memory Error</string>
32513df0362SAnton Yartsev // CHECK-NEXT:    <key>type</key><string>Double free</string>
32613df0362SAnton Yartsev // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
32713df0362SAnton Yartsev // CHECK-NEXT:   <key>issue_context</key><string>test</string>
32813df0362SAnton Yartsev // CHECK-NEXT:   <key>issue_hash</key><string>9</string>
32913df0362SAnton Yartsev // CHECK-NEXT:   <key>location</key>
33013df0362SAnton Yartsev // CHECK-NEXT:   <dict>
33113df0362SAnton Yartsev // CHECK-NEXT:    <key>line</key><integer>14</integer>
33213df0362SAnton Yartsev // CHECK-NEXT:    <key>col</key><integer>3</integer>
33313df0362SAnton Yartsev // CHECK-NEXT:    <key>file</key><integer>0</integer>
33413df0362SAnton Yartsev // CHECK-NEXT:   </dict>
33513df0362SAnton Yartsev // CHECK-NEXT:   </dict>
336*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <dict>
337*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>path</key>
338*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <array>
339*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
340*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>event</string>
341*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>location</key>
342*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <dict>
343*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>line</key><integer>25</integer>
344*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>col</key><integer>2</integer>
345*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>file</key><integer>0</integer>
346*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </dict>
347*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>ranges</key>
348*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <array>
349*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <array>
350*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
351*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>25</integer>
352*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>2</integer>
353*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
354*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
355*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
356*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>25</integer>
357*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>12</integer>
358*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
359*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
360*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </array>
361*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </array>
362*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>depth</key><integer>0</integer>
363*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>extended_message</key>
364*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Calling &apos;Odd::kill&apos;</string>
365*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>message</key>
366*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Calling &apos;Odd::kill&apos;</string>
367*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
368*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
369*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>event</string>
370*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>location</key>
371*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <dict>
372*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>line</key><integer>19</integer>
373*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>col</key><integer>2</integer>
374*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>file</key><integer>0</integer>
375*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </dict>
376*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>depth</key><integer>1</integer>
377*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>extended_message</key>
378*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Entered call from &apos;test&apos;</string>
379*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>message</key>
380*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Entered call from &apos;test&apos;</string>
381*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
382*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
383*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>control</string>
384*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>edges</key>
385*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <array>
386*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <dict>
387*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <key>start</key>
388*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <array>
389*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
390*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>19</integer>
391*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>2</integer>
392*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
393*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
394*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
395*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>19</integer>
396*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>5</integer>
397*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
398*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
399*e4cfcd4eSAnna Zaks // CHECK-NEXT:          </array>
400*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <key>end</key>
401*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <array>
402*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
403*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>20</integer>
404*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>3</integer>
405*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
406*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
407*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
408*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>20</integer>
409*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>8</integer>
410*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
411*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
412*e4cfcd4eSAnna Zaks // CHECK-NEXT:          </array>
413*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </dict>
414*e4cfcd4eSAnna Zaks // CHECK-NEXT:       </array>
415*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
416*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
417*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>event</string>
418*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>location</key>
419*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <dict>
420*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>line</key><integer>20</integer>
421*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>col</key><integer>3</integer>
422*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>file</key><integer>0</integer>
423*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </dict>
424*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>ranges</key>
425*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <array>
426*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <array>
427*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
428*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>20</integer>
429*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>3</integer>
430*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
431*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
432*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
433*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>20</integer>
434*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>13</integer>
435*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
436*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
437*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </array>
438*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </array>
439*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>depth</key><integer>1</integer>
440*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>extended_message</key>
441*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Memory is released</string>
442*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>message</key>
443*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Memory is released</string>
444*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
445*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
446*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>event</string>
447*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>location</key>
448*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <dict>
449*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>line</key><integer>25</integer>
450*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>col</key><integer>2</integer>
451*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>file</key><integer>0</integer>
452*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </dict>
453*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>ranges</key>
454*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <array>
455*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <array>
456*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
457*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>25</integer>
458*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>2</integer>
459*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
460*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
461*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
462*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>25</integer>
463*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>12</integer>
464*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
465*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
466*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </array>
467*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </array>
468*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>depth</key><integer>0</integer>
469*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>extended_message</key>
470*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Returning; memory was released</string>
471*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>message</key>
472*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Returning; memory was released</string>
473*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
474*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
475*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>control</string>
476*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>edges</key>
477*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <array>
478*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <dict>
479*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <key>start</key>
480*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <array>
481*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
482*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>25</integer>
483*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>2</integer>
484*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
485*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
486*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
487*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>25</integer>
488*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>4</integer>
489*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
490*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
491*e4cfcd4eSAnna Zaks // CHECK-NEXT:          </array>
492*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <key>end</key>
493*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <array>
494*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
495*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>27</integer>
496*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>2</integer>
497*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
498*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
499*e4cfcd4eSAnna Zaks // CHECK-NEXT:           <dict>
500*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>line</key><integer>27</integer>
501*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>col</key><integer>7</integer>
502*e4cfcd4eSAnna Zaks // CHECK-NEXT:            <key>file</key><integer>0</integer>
503*e4cfcd4eSAnna Zaks // CHECK-NEXT:           </dict>
504*e4cfcd4eSAnna Zaks // CHECK-NEXT:          </array>
505*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </dict>
506*e4cfcd4eSAnna Zaks // CHECK-NEXT:       </array>
507*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
508*e4cfcd4eSAnna Zaks // CHECK-NEXT:     <dict>
509*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>kind</key><string>event</string>
510*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>location</key>
511*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <dict>
512*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>line</key><integer>27</integer>
513*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>col</key><integer>2</integer>
514*e4cfcd4eSAnna Zaks // CHECK-NEXT:       <key>file</key><integer>0</integer>
515*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </dict>
516*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>ranges</key>
517*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <array>
518*e4cfcd4eSAnna Zaks // CHECK-NEXT:        <array>
519*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
520*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>27</integer>
521*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>2</integer>
522*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
523*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
524*e4cfcd4eSAnna Zaks // CHECK-NEXT:         <dict>
525*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>line</key><integer>27</integer>
526*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>col</key><integer>11</integer>
527*e4cfcd4eSAnna Zaks // CHECK-NEXT:          <key>file</key><integer>0</integer>
528*e4cfcd4eSAnna Zaks // CHECK-NEXT:         </dict>
529*e4cfcd4eSAnna Zaks // CHECK-NEXT:        </array>
530*e4cfcd4eSAnna Zaks // CHECK-NEXT:      </array>
531*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>depth</key><integer>0</integer>
532*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>extended_message</key>
533*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Attempt to free released memory</string>
534*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <key>message</key>
535*e4cfcd4eSAnna Zaks // CHECK-NEXT:      <string>Attempt to free released memory</string>
536*e4cfcd4eSAnna Zaks // CHECK-NEXT:     </dict>
537*e4cfcd4eSAnna Zaks // CHECK-NEXT:    </array>
538*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>description</key><string>Attempt to free released memory</string>
539*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>category</key><string>Memory Error</string>
540*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>type</key><string>Double free</string>
541*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
542*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <key>issue_context</key><string>test</string>
543*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <key>issue_hash</key><string>3</string>
544*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <key>location</key>
545*e4cfcd4eSAnna Zaks // CHECK-NEXT:   <dict>
546*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>line</key><integer>27</integer>
547*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>col</key><integer>2</integer>
548*e4cfcd4eSAnna Zaks // CHECK-NEXT:    <key>file</key><integer>0</integer>
549*e4cfcd4eSAnna Zaks // CHECK-NEXT:   </dict>
550*e4cfcd4eSAnna Zaks // CHECK-NEXT:   </dict>
55113df0362SAnton Yartsev // CHECK-NEXT:  </array>
552