1 // RUN: %clang_analyze_cc1 -triple i386-pc-linux-gnu -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s
2 // RUN: %clang_analyze_cc1 -triple x86_64-pc-linux-gnu -analyzer-checker=debug.DumpCFG %s 2>&1 | FileCheck %s
7 asm goto("testl %0, %0; jne %l1;" :: "r"(cond
)::label_true
, loop
);
16 // CHECK-NEXT: Preds (1): B3
17 // CHECK-NEXT: Succs (1): B0
19 // CHECK-LABEL: label_true
22 // CHECK-NEXT: T: asm goto
23 // CHECK-NEXT: Preds (2): B3 B4
24 // CHECK-NEXT: Succs (3): B2 B3 B1
28 asm goto("testl %0, %0; jne %l1;" :: "r"(cond
)::L1
, L2
);
38 // CHECK-NEXT: T: asm goto
39 // CHECK-NEXT: Preds (1): B5
40 // CHECK-NEXT: Succs (3): B3 B2 B1
46 asm goto("testl %0, %0; jne %l1;" :: "r"(n
)::A1
, A2
, A3
, A4
, A5
);
56 // CHECK-NEXT: T: asm goto
57 // CHECK-NEXT: Preds (2): B5 B4
58 // CHECK-NEXT: Succs (5): B3 B4 B2 B1 B5
62 asm goto("" :: "r"(1 ? 2 : 0 << -1) :: error
);
67 // CHECK-NEXT: 1: [B5.2] ? [B3.1] : [B4.4]
68 // CHECK-NEXT: T: asm goto ("" : : "r" ([B2.1]) : : error);
69 // CHECK-NEXT: Preds (2): B3 B4
70 // CHECK-NEXT: Succs (1): B1