97 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s2 3void *target;4int 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): B4292// CHECK-NEXT: Succs (40): B1 B2 B3 B4 B5 B6 B7 B893// CHECK-NEXT: B9 B10 B11 B12 B13 B14 B15 B16 B17 B1894// CHECK-NEXT: B19 B20 B21 B22 B23 B24 B25 B26 B27 B2895// CHECK-NEXT: B29 B30 B31 B32 B33 B34 B35 B36 B37 B3896// CHECK-NEXT: B39 B4097