1 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpDominators %s > %t 2>&1 2 // RUN: FileCheck --input-file=%t %s -check-prefix=DOM-CHECK 3 // DOM-CHECK: Immediate dominance tree (Node#,IDom#) 4 5 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpPostDominators %s > %t 2>&1 6 // RUN: FileCheck --input-file=%t %s -check-prefix=POSTDOM-CHECK 7 // POSTDOM-CHECK: Immediate post dominance tree (Node#,IDom#) 8 9 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpControlDependencies %s > %t 2>&1 10 // RUN: FileCheck --input-file=%t %s -check-prefix=CTRLDEPS-CHECK 11 // CTRLDEPS-CHECK: Control dependencies (Node#,Dependency#) 12 13 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpLiveVars %s > %t 2>&1 14 // RUN: FileCheck --input-file=%t %s -check-prefix=LIVE-VARS-CHECK 15 // LIVE-VARS-CHECK: live variables at block exit 16 17 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpLiveExprs %s > %t 2>&1 18 // RUN: FileCheck --input-file=%t %s -check-prefix=LIVE-EXPRS-CHECK 19 // LIVE-EXPRS-CHECK: live expressions at block exit 20 21 // Skip testing CFGViewer. 22 23 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpCFG %s > %t 2>&1 24 // RUN: FileCheck --input-file=%t %s -check-prefix=CFG-CHECK 25 // CFG-CHECK: ENTRY 26 27 // Skip testing CallGraphViewer. 28 29 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpCallGraph %s > %t 2>&1 30 // RUN: FileCheck --input-file=%t %s -check-prefix=CALL-GRAPH-CHECK 31 // CALL-GRAPH-CHECK: --- Call graph Dump --- 32 33 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ConfigDumper %s > %t 2>&1 34 // RUN: FileCheck --input-file=%t %s -check-prefix=CONFIG-CHECK 35 // CONFIG-CHECK: [config] 36 37 // Skip testing ExplodedGraphViewer. 38 39 // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ReportStmts %s > %t 2>&1 40 // RUN: FileCheck --input-file=%t %s -check-prefix=REPORT-STMTS-CHECK 41 // REPORT-STMTS-CHECK: warning: Statement 42 43 void foo(int *p) { 44 *p = 3; 45 } 46 47 int bar() { 48 int x; 49 foo(&x); 50 return x; 51 } 52