1337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -analyze -analyzer-checker=debug.DumpCFG -cfg-add-implicit-dtors %s > %t 2>&1
2337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// RUN: FileCheck --input-file=%t %s
3fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski// XPASS: *
4fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
5fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskiclass A {
6fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskipublic:
7fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A() {}
8fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  ~A() {}
9fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  operator int() const { return 1; }
10fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski};
11fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
12fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskiextern const bool UV;
13fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
14fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskivoid test_const_ref() {
15fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A a;
16fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  const A& b = a;
17fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  const A& c = A();
18fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski}
19fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
20b1c52870b8c2feaa7cd112295368bec53af490a0Marcin Swiderskivoid test_array() {
21b1c52870b8c2feaa7cd112295368bec53af490a0Marcin Swiderski  A a[2];
22b1c52870b8c2feaa7cd112295368bec53af490a0Marcin Swiderski  A b[0];
23b1c52870b8c2feaa7cd112295368bec53af490a0Marcin Swiderski}
24b1c52870b8c2feaa7cd112295368bec53af490a0Marcin Swiderski
25fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskivoid test_scope() {
26fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A a;
27fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  { A c;
28fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski    A d;
29fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  }
30fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A b;
31fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski}
32fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
33fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskivoid test_return() {
34fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A a;
35fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A b;
36fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  if (UV) return;
37fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A c;
38fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski}
39fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
40fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskivoid test_goto() {
41fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A a;
42fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskil0:
43fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A b;
44fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  { A a;
45fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski    if (UV) goto l0;
46fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski    if (UV) goto l1;
47fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski    A b;
48fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  }
49fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderskil1:
50fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski  A c;
51fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski}
52fcb72ac985c26372315fabc08d43d6f66ff906b4Marcin Swiderski
5304e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderskivoid test_if_implicit_scope() {
5404e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  A a;
5504e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  if (A b = a)
5604e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    A c;
5704e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  else A c;
5804e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski}
5904e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski
6004e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderskivoid test_if_jumps() {
6104e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  A a;
6204e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  if (A b = a) {
6304e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    A c;
6404e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    if (UV) return;
6504e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    A d;
6604e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  } else {
6704e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    A c;
6804e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    if (UV) return;
6904e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski    A d;
7004e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  }
7104e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski  A e;
7204e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski}
7304e046cbf7153fc261d730d460f081322d5c42f6Marcin Swiderski
7405adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderskivoid test_while_implicit_scope() {
7505adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  A a;
7605adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  while (A b = a)
7705adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    A c;
7805adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski}
7905adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski
8005adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderskivoid test_while_jumps() {
8105adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  A a;
8205adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  while (A b = a) {
8305adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    A c;
8405adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) break;
8505adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) continue;
8605adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) return;
8705adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    A d;
8805adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  }
8905adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  A e;
9005adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski}
9105adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski
9205adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderskivoid test_do_implicit_scope() {
9305adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  do A a;
9405adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  while (UV);
9505adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski}
9605adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski
9705adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderskivoid test_do_jumps() {
9805adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  A a;
9905adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  do {
10005adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    A b;
10105adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) break;
10205adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) continue;
10305adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    if (UV) return;
10405adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski    A c;
10505adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  } while (UV);
10605adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski  A d;
10705adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski}
10805adedcb5e199e377e35f576288caf5ceed40136Marcin Swiderski
1098ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderskivoid test_switch_implicit_scope() {
1108ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  A a;
1118ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  switch (A b = a)
1128ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    A c;
1138ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski}
1148ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski
1158ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderskivoid test_switch_jumps() {
1168ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  A a;
1178ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  switch (A b = a) {
1188ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  case 0: {
1198ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    A c;
1208ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    if (UV) break;
1218ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    if (UV) return;
1228ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    A f;
1238ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  }
1248ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  case 1:
1258ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski    break;
1268ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  }
1278ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski  A g;
1288ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski}
1298ae6058cecba902c0069c24bdc9c26d475559291Marcin Swiderski
13047575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderskivoid test_for_implicit_scope() {
13147575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski  for (A a; A b = a; )
13247575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    A c;
13347575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski}
13447575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski
13547575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderskivoid test_for_jumps() {
13647575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski  A a;
13747575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski  for (A b; A c = b; ) {
13847575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    A d;
13947575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    if (UV) break;
14047575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    if (UV) continue;
14147575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    if (UV) return;
14247575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski    A e;
14347575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski  }
14447575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski  A f;
14547575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski}
14647575f1f775f5f250be4f395fa694a7274a65f33Marcin Swiderski
1470e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderskivoid test_catch_const_ref() {
1480e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  try {
1490e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  } catch (const A& e) {
1500e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  }
1510e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski}
1520e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski
1530e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderskivoid test_catch_copy() {
1540e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  try {
1550e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  } catch (A e) {
1560e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski  }
1570e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski}
1580e97bcbee9d5f7735edecbccfb5031a2f065f286Marcin Swiderski
159aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B1 (ENTRY)]
160aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Succs (1): B0
161aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B0 (EXIT)]
162aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Preds (1): B1
163aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B1 (ENTRY)]
164aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Succs (1): B0
165aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B0 (EXIT)]
166aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Preds (1): B1
167aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B2 (ENTRY)]
168aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Succs (1): B1
169aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B1]
170aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    1: 1
171aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    2: return [B1.1];
172aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Preds (1): B2
173aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Succs (1): B0
174aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:  [B0 (EXIT)]
175aa5609891df937291bf962dd2fc7deb2ceae292fAnna Zaks// CHECK:    Preds (1): B1
176682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2 (ENTRY)]
177682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
178682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
179682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
180682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
181682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: a
182682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B1.3] (ImplicitCastExpr, NoOp, const class A)
183682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: const A &b = a;
184682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A() (CXXConstructExpr, class A)
185682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B1.6] (BindTemporary)
186682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B1.7] (ImplicitCastExpr, NoOp, const class A)
187682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B1.8]
188682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: const A &c = A();
189682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B1.10].~A() (Implicit destructor)
190682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   12: [B1.2].~A() (Implicit destructor)
191682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
192682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
193682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
194682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
195682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2 (ENTRY)]
196682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
197682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
198682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A [2])
199682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a[2];
200682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A [0])
201682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b[0];
202682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B1.2].~A() (Implicit destructor)
203682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
204682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
205682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
206682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
207682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2 (ENTRY)]
208682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
209682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
210682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
211682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
212682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A)
213682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A c;
214682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5:  (CXXConstructExpr, class A)
215682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A d;
216682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B1.6].~A() (Implicit destructor)
217682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B1.4].~A() (Implicit destructor)
218682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9:  (CXXConstructExpr, class A)
219682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: A b;
220682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B1.10].~A() (Implicit destructor)
221682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   12: [B1.2].~A() (Implicit destructor)
222682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
223682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
224682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
225682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
226682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4 (ENTRY)]
227682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
228682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
229682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
230682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
231682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B1.2].~A() (Implicit destructor)
232682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B3.4].~A() (Implicit destructor)
233682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B3.2].~A() (Implicit destructor)
234682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B3
235682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
236682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
237682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
238682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B3.4].~A() (Implicit destructor)
239682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B3.2].~A() (Implicit destructor)
240682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B3
241682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
242682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
243682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
244682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
245682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A)
246682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b;
247682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: UV
248682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B3.5] (ImplicitCastExpr, LValueToRValue, _Bool)
249682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B3.6]
250682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
251682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B2 B1
252682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
253682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B1 B2
254682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8 (ENTRY)]
255682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B7
256682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
257682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   l1:
258682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
259682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
260682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B1.2].~A() (Implicit destructor)
261682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B6.2].~A() (Implicit destructor)
262682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B7.2].~A() (Implicit destructor)
263682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B2 B3
264682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
265682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
266682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
267682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A b;
268682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2].~A() (Implicit destructor)
269682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B6.4].~A() (Implicit destructor)
270682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
271682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
272682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
273682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B6.4].~A() (Implicit destructor)
274682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: goto l1;
275682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
276682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
277682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
278682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
279682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B4.1] (ImplicitCastExpr, LValueToRValue, _Bool)
280682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B4.2]
281682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
282682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B3 B2
283682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
284682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B6.4].~A() (Implicit destructor)
285682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B6.2].~A() (Implicit destructor)
286682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: goto l0;
287682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
288682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B6
289682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
290682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   l0:
291682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
292682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A b;
293682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A)
294682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A a;
295682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: UV
296682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B6.5] (ImplicitCastExpr, LValueToRValue, _Bool)
297682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B6.6]
298682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B7 B5
299682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B5 B4
300682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
301682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
302682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
303682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
304682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B6
305682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
306682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
307682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5 (ENTRY)]
308682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B4
309682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
310682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B4.6].~A() (Implicit destructor)
311682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B4.2].~A() (Implicit destructor)
312682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B2 B3
313682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
314682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
315682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
316682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
317682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2].~A() (Implicit destructor)
318682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
319682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
320682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
321682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
322682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
323682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B3.2].~A() (Implicit destructor)
324682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
325682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
326682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
327682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
328682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
329682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: a
330682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B4.3] (ImplicitCastExpr, NoOp, const class A)
331682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B4.4] (CXXConstructExpr, class A)
332682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A b = a;
333682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: b
334682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B4.7] (ImplicitCastExpr, NoOp, const class A)
335682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B4.8].operator int
336682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B4.9]()
337682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B4.10] (ImplicitCastExpr, UserDefinedConversion, int)
338682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   12: [B4.11] (ImplicitCastExpr, IntegralToBoolean, _Bool)
339682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B4.12]
340682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B5
341682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B3 B2
342682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
343682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
344682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B9 (ENTRY)]
345682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B8
346682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
347682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B8.6].~A() (Implicit destructor)
348682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2:  (CXXConstructExpr, class A)
349682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: A e;
350682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B1.3].~A() (Implicit destructor)
351682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B8.2].~A() (Implicit destructor)
352682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B2 B5
353682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
354682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
355682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
356682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A d;
357682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2].~A() (Implicit destructor)
358682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B4.2].~A() (Implicit destructor)
359682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
360682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
361682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
362682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
363682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B4.2].~A() (Implicit destructor)
364682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B8.6].~A() (Implicit destructor)
365682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B8.2].~A() (Implicit destructor)
366682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
367682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
368682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
369682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
370682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
371682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
372682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B4.3] (ImplicitCastExpr, LValueToRValue, _Bool)
373682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B4.4]
374682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
375682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B3 B2
376682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
377682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
378682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A d;
379682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B5.2].~A() (Implicit destructor)
380682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B7.2].~A() (Implicit destructor)
381682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B7
382682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
383682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
384682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
385682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B7.2].~A() (Implicit destructor)
386682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B8.6].~A() (Implicit destructor)
387682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B8.2].~A() (Implicit destructor)
388682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B7
389682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
390682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
391682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
392682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
393682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
394682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B7.3] (ImplicitCastExpr, LValueToRValue, _Bool)
395682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B7.4]
396682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
397682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B6 B5
398682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8]
399682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
400682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
401682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: a
402682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B8.3] (ImplicitCastExpr, NoOp, const class A)
403682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B8.4] (CXXConstructExpr, class A)
404682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A b = a;
405682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: b
406682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B8.7] (ImplicitCastExpr, NoOp, const class A)
407682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B8.8].operator int
408682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B8.9]()
409682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B8.10] (ImplicitCastExpr, UserDefinedConversion, int)
410682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   12: [B8.11] (ImplicitCastExpr, IntegralToBoolean, _Bool)
411682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B8.12]
412682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B9
413682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B7 B4
414682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
415682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (3): B1 B3 B6
416682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6 (ENTRY)]
417682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B5
418682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
419682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
420682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B5.2].~A() (Implicit destructor)
421682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
422682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
423682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
424682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: a
425682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.1] (ImplicitCastExpr, NoOp, const class A)
426682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2] (CXXConstructExpr, class A)
427682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b = a;
428682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: b
429682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B2.5] (ImplicitCastExpr, NoOp, const class A)
430682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B2.6].operator int
431682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7]()
432682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8] (ImplicitCastExpr, UserDefinedConversion, int)
433682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9] (ImplicitCastExpr, IntegralToBoolean, _Bool)
434682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: while [B2.10]
435682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B5
436682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B4 B1
437682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
438682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
439682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
440682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
441682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
442682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
443682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B4.2].~A() (Implicit destructor)
444682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B2.4].~A() (Implicit destructor)
445682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
446682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
447682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
448682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
449682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
450682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
451682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
452682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
453682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
454682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B12 (ENTRY)]
455682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B11
456682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
457682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
458682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2:  (CXXConstructExpr, class A)
459682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: A e;
460682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B1.3].~A() (Implicit destructor)
461682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B11.2].~A() (Implicit destructor)
462682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B9 B2
463682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
464682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
465682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: a
466682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.1] (ImplicitCastExpr, NoOp, const class A)
467682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2] (CXXConstructExpr, class A)
468682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b = a;
469682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: b
470682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B2.5] (ImplicitCastExpr, NoOp, const class A)
471682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B2.6].operator int
472682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7]()
473682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8] (ImplicitCastExpr, UserDefinedConversion, int)
474682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9] (ImplicitCastExpr, IntegralToBoolean, _Bool)
475682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: while [B2.10]
476682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B11
477682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B10 B1
478682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
479682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B4 B7
480682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
481682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
482682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
483682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A d;
484682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B4.2].~A() (Implicit destructor)
485682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B10.2].~A() (Implicit destructor)
486682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B2.4].~A() (Implicit destructor)
487682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
488682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
489682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
490682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
491682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B10.2].~A() (Implicit destructor)
492682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.4].~A() (Implicit destructor)
493682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B11.2].~A() (Implicit destructor)
494682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
495682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
496682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
497682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
498682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B6.1] (ImplicitCastExpr, LValueToRValue, _Bool)
499682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B6.2]
500682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
501682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B5 B4
502682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
503682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B10.2].~A() (Implicit destructor)
504682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.4].~A() (Implicit destructor)
505682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: continue;
506682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
507682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
508682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8]
509682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
510682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B8.1] (ImplicitCastExpr, LValueToRValue, _Bool)
511682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B8.2]
512682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B10
513682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B7 B6
514682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B9]
515682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B10.2].~A() (Implicit destructor)
516682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: break;
517682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B10
518682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
519682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B10]
520682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
521682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
522682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
523682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B10.3] (ImplicitCastExpr, LValueToRValue, _Bool)
524682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B10.4]
525682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
526682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B9 B8
527682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B11]
528682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
529682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
530682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B12
531682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
532682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
533682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B1 B5
534682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4 (ENTRY)]
535682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
536682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
537682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
538682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B1.1] (ImplicitCastExpr, LValueToRValue, _Bool)
539682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: do ... while [B1.2]
540682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
541682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B3 B0
542682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
543682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
544682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
545682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2].~A() (Implicit destructor)
546682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B4
547682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
548682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
549682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
550682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
551682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
552682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
553682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B12 (ENTRY)]
554682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B11
555682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
556682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
557682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A d;
558682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B1.2].~A() (Implicit destructor)
559682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B11.2].~A() (Implicit destructor)
560682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B8 B2
561682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
562682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
563682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
564682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.1] (ImplicitCastExpr, LValueToRValue, _Bool)
565682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: do ... while [B2.2]
566682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B6
567682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B10 B1
568682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
569682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
570682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
571682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B3.2].~A() (Implicit destructor)
572682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B9.2].~A() (Implicit destructor)
573682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B5
574682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
575682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
576682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
577682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B9.2].~A() (Implicit destructor)
578682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B11.2].~A() (Implicit destructor)
579682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B5
580682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
581682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
582682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
583682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B5.1] (ImplicitCastExpr, LValueToRValue, _Bool)
584682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B5.2]
585682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B7
586682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B4 B3
587682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
588682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B9.2].~A() (Implicit destructor)
589682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: continue;
590682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B7
591682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
592682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
593682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
594682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B7.1] (ImplicitCastExpr, LValueToRValue, _Bool)
595682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B7.2]
596682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B9
597682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B6 B5
598682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8]
599682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B9.2].~A() (Implicit destructor)
600682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: break;
601682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B9
602682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
603682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B9]
604682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
605682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A b;
606682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
607682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B9.3] (ImplicitCastExpr, LValueToRValue, _Bool)
608682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B9.4]
609682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B10 B11
610682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B8 B7
611682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B10]
612682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
613682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B9
614682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B11]
615682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
616682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
617682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B12
618682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B9
619682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
620682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B1 B4
621682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4 (ENTRY)]
622682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
623682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
624682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.6].~A() (Implicit destructor)
625682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.2].~A() (Implicit destructor)
626682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B2
627682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
628682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
629682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
630682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
631682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: a
632682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B2.3] (ImplicitCastExpr, NoOp, const class A)
633682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B2.4] (CXXConstructExpr, class A)
634682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A b = a;
635682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: b
636682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7] (ImplicitCastExpr, NoOp, const class A)
637682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8].operator int
638682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9]()
639682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B2.10] (ImplicitCastExpr, UserDefinedConversion, int)
640682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: switch [B2.11]
641682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
642682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
643682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
644682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
645682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
646682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B3.2].~A() (Implicit destructor)
647682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
648682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
649682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
650682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B9 (ENTRY)]
651682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
652682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
653682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.6].~A() (Implicit destructor)
654682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2:  (CXXConstructExpr, class A)
655682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: A g;
656682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B1.3].~A() (Implicit destructor)
657682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B2.2].~A() (Implicit destructor)
658682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (3): B3 B7 B2
659682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
660682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
661682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
662682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
663682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: a
664682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B2.3] (ImplicitCastExpr, NoOp, const class A)
665682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B2.4] (CXXConstructExpr, class A)
666682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: A b = a;
667682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: b
668682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7] (ImplicitCastExpr, NoOp, const class A)
669682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8].operator int
670682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9]()
671682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   11: [B2.10] (ImplicitCastExpr, UserDefinedConversion, int)
672682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: switch [B2.11]
673682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B9
674682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (3): B3 B8
675882998923889a2fcce9b49696506c499e22cf38fTed Kremenek// CHECK:      B1
676682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
677682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   case 1:
678682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: break;
679682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B2 B4
680682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
681682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
682682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
683682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A f;
684682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B4.2].~A() (Implicit destructor)
685682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B8.2].~A() (Implicit destructor)
686682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
687682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
688682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
689682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
690682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B8.2].~A() (Implicit destructor)
691682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.6].~A() (Implicit destructor)
692682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B2.2].~A() (Implicit destructor)
693682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
694682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
695682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
696682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
697682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B6.1] (ImplicitCastExpr, LValueToRValue, _Bool)
698682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B6.2]
699682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
700682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B5 B4
701682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
702682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B8.2].~A() (Implicit destructor)
703682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: break;
704682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
705682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
706682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8]
707682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   case 0:
708682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
709682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
710682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
711682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B8.3] (ImplicitCastExpr, LValueToRValue, _Bool)
712682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B8.4]
713682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
714682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B7 B6
715682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
716682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B1 B5
717682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6 (ENTRY)]
718682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B5
719682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
720682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
721682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B5.2].~A() (Implicit destructor)
722682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
723682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
724682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
725682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: a
726682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.1] (ImplicitCastExpr, NoOp, const class A)
727682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2] (CXXConstructExpr, class A)
728682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b = a;
729682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: b
730682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B2.5] (ImplicitCastExpr, NoOp, const class A)
731682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B2.6].operator int
732682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7]()
733682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8] (ImplicitCastExpr, UserDefinedConversion, int)
734682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9] (ImplicitCastExpr, IntegralToBoolean, _Bool)
735682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: for (...; [B2.10]; )
736682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B5
737682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B4 B1
738682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
739682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
740682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B4
741682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
742682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
743682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
744682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A c;
745682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B4.2].~A() (Implicit destructor)
746682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
747682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
748682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
749682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
750682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
751682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
752682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
753682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
754682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
755682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B12 (ENTRY)]
756682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B11
757682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
758682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
759682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B11.4].~A() (Implicit destructor)
760682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A)
761682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A f;
762682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B1.4].~A() (Implicit destructor)
763682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B11.2].~A() (Implicit destructor)
764682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B9 B2
765682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
766682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
767682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: b
768682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B2.1] (ImplicitCastExpr, NoOp, const class A)
769682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.2] (CXXConstructExpr, class A)
770682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A c = b;
771682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: c
772682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    6: [B2.5] (ImplicitCastExpr, NoOp, const class A)
773682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    7: [B2.6].operator int
774682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    8: [B2.7]()
775682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    9: [B2.8] (ImplicitCastExpr, UserDefinedConversion, int)
776682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   10: [B2.9] (ImplicitCastExpr, IntegralToBoolean, _Bool)
777682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: for (...; [B2.10]; )
778682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B3 B11
779682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B10 B1
780682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3]
781682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B2.4].~A() (Implicit destructor)
782682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B4 B7
783682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
784682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B4]
785682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
786682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A e;
787682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B4.2].~A() (Implicit destructor)
788682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B10.2].~A() (Implicit destructor)
789682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
790682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
791682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B5]
792682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: return;
793682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B10.2].~A() (Implicit destructor)
794682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: [B2.4].~A() (Implicit destructor)
795682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B11.4].~A() (Implicit destructor)
796682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    5: [B11.2].~A() (Implicit destructor)
797682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B6
798682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
799682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B6]
800682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
801682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B6.1] (ImplicitCastExpr, LValueToRValue, _Bool)
802682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B6.2]
803682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
804682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B5 B4
805682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B7]
806682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B10.2].~A() (Implicit destructor)
807682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: continue;
808682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B8
809682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B3
810682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B8]
811682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: UV
812682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: [B8.1] (ImplicitCastExpr, LValueToRValue, _Bool)
813682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B8.2]
814682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B10
815682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B7 B6
816682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B9]
817682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1: [B10.2].~A() (Implicit destructor)
818682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: break;
819682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B10
820682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B1
821682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B10]
822682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
823682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A d;
824682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3: UV
825682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: [B10.3] (ImplicitCastExpr, LValueToRValue, _Bool)
826682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: if [B10.4]
827682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B2
828682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B9 B8
829682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B11]
830682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    1:  (CXXConstructExpr, class A)
831682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    2: A a;
832682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    3:  (CXXConstructExpr, class A)
833682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    4: A b;
834682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B12
835682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B2
836682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
837682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (2): B1 B5
838682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3 (ENTRY)]
839682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
840682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
841682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: try ...
842682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B2 B0
843682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
844682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   catch (const A &e):
845337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// CHECK:    1: catch (const A &e) {
846337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// CHECK: }
847682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
848682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
849682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
850682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (3): B2 B1 B3
851682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B3 (ENTRY)]
852682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
853682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B1]
854682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    T: try ...
855682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (2): B2 B0
856682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B2]
857682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:   catch (A e):
858337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// CHECK:    1: catch (A e) {
859337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// CHECK: }
860337e4dbc6859589b8878146a88bebf754e916702Ted Kremenek// CHECK:    2: [B2.1].~A() (Implicit destructor)
861682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (1): B1
862682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Succs (1): B0
863682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:  [B0 (EXIT)]
864682060c5d95f6e4f79536013781ab0870cdd3850Ted Kremenek// CHECK:    Preds (3): B2 B1 B3
865