reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
// RUN: %clang_analyze_cc1 -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s

void *target;
int indirectBlockSuccessorDeterminism() {
    (void)&&L1;
    (void)&&L2;
    (void)&&L3;
    (void)&&L4;
    (void)&&L5;
    (void)&&L6;
    (void)&&L7;
    (void)&&L8;
    (void)&&L9;
    (void)&&L10;
    (void)&&L11;
    (void)&&L12;
    (void)&&L13;
    (void)&&L14;
    (void)&&L15;
    (void)&&L16;
    (void)&&L17;
    (void)&&L18;
    (void)&&L19;
    (void)&&L20;
    (void)&&L21;
    (void)&&L22;
    (void)&&L23;
    (void)&&L24;
    (void)&&L25;
    (void)&&L26;
    (void)&&L27;
    (void)&&L28;
    (void)&&L29;
    (void)&&L30;
    (void)&&L31;
    (void)&&L32;
    (void)&&L33;
    (void)&&L34;
    (void)&&L35;
    (void)&&L36;
    (void)&&L37;
    (void)&&L38;
    (void)&&L39;
    (void)&&L40;

    goto *target;
  L1:
  L2:
  L3:
  L4:
  L5:
  L6:
  L7:
  L8:
  L9:
  L10:
  L11:
  L12:
  L13:
  L14:
  L15:
  L16:
  L17:
  L18:
  L19:
  L20:
  L21:
  L22:
  L23:
  L24:
  L25:
  L26:
  L27:
  L28:
  L29:
  L30:
  L31:
  L32:
  L33:
  L34:
  L35:
  L36:
  L37:
  L38:
  L39:
  L40:
    return 0;
}

// CHECK-LABEL:  [B41 (INDIRECT GOTO DISPATCH)]
// CHECK-NEXT:   Preds (1): B42
// CHECK-NEXT:  Succs (40): B1 B2 B3 B4 B5 B6 B7 B8
// CHECK-NEXT:       B9 B10 B11 B12 B13 B14 B15 B16 B17 B18
// CHECK-NEXT:       B19 B20 B21 B22 B23 B24 B25 B26 B27 B28
// CHECK-NEXT:       B29 B30 B31 B32 B33 B34 B35 B36 B37 B38
// CHECK-NEXT:       B39 B40