• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_analyze_cc1 -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s
2 
3 void *target;
indirectBlockSuccessorDeterminism()4 int indirectBlockSuccessorDeterminism() {
5     (void)&&L1;
6     (void)&&L2;
7     (void)&&L3;
8     (void)&&L4;
9     (void)&&L5;
10     (void)&&L6;
11     (void)&&L7;
12     (void)&&L8;
13     (void)&&L9;
14     (void)&&L10;
15     (void)&&L11;
16     (void)&&L12;
17     (void)&&L13;
18     (void)&&L14;
19     (void)&&L15;
20     (void)&&L16;
21     (void)&&L17;
22     (void)&&L18;
23     (void)&&L19;
24     (void)&&L20;
25     (void)&&L21;
26     (void)&&L22;
27     (void)&&L23;
28     (void)&&L24;
29     (void)&&L25;
30     (void)&&L26;
31     (void)&&L27;
32     (void)&&L28;
33     (void)&&L29;
34     (void)&&L30;
35     (void)&&L31;
36     (void)&&L32;
37     (void)&&L33;
38     (void)&&L34;
39     (void)&&L35;
40     (void)&&L36;
41     (void)&&L37;
42     (void)&&L38;
43     (void)&&L39;
44     (void)&&L40;
45 
46     goto *target;
47   L1:
48   L2:
49   L3:
50   L4:
51   L5:
52   L6:
53   L7:
54   L8:
55   L9:
56   L10:
57   L11:
58   L12:
59   L13:
60   L14:
61   L15:
62   L16:
63   L17:
64   L18:
65   L19:
66   L20:
67   L21:
68   L22:
69   L23:
70   L24:
71   L25:
72   L26:
73   L27:
74   L28:
75   L29:
76   L30:
77   L31:
78   L32:
79   L33:
80   L34:
81   L35:
82   L36:
83   L37:
84   L38:
85   L39:
86   L40:
87     return 0;
88 }
89 
90 // CHECK-LABEL:  [B41 (INDIRECT GOTO DISPATCH)]
91 // CHECK-NEXT:   Preds (1): B42
92 // CHECK-NEXT:  Succs (40): B1 B2 B3 B4 B5 B6 B7 B8
93 // CHECK-NEXT:       B9 B10 B11 B12 B13 B14 B15 B16 B17 B18
94 // CHECK-NEXT:       B19 B20 B21 B22 B23 B24 B25 B26 B27 B28
95 // CHECK-NEXT:       B29 B30 B31 B32 B33 B34 B35 B36 B37 B38
96 // CHECK-NEXT:       B39 B40
97