52 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpDominators %s > %t 2>&12// RUN: FileCheck --input-file=%t %s -check-prefix=DOM-CHECK3// DOM-CHECK: Immediate dominance tree (Node#,IDom#)4 5// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpPostDominators %s > %t 2>&16// RUN: FileCheck --input-file=%t %s -check-prefix=POSTDOM-CHECK7// POSTDOM-CHECK: Immediate post dominance tree (Node#,IDom#)8 9// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpControlDependencies %s > %t 2>&110// RUN: FileCheck --input-file=%t %s -check-prefix=CTRLDEPS-CHECK11// CTRLDEPS-CHECK: Control dependencies (Node#,Dependency#)12 13// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpLiveVars %s > %t 2>&114// RUN: FileCheck --input-file=%t %s -check-prefix=LIVE-VARS-CHECK15// LIVE-VARS-CHECK: live variables at block exit16 17// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpLiveExprs %s > %t 2>&118// RUN: FileCheck --input-file=%t %s -check-prefix=LIVE-EXPRS-CHECK19// LIVE-EXPRS-CHECK: live expressions at block exit20 21// Skip testing CFGViewer.22 23// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpCFG %s > %t 2>&124// RUN: FileCheck --input-file=%t %s -check-prefix=CFG-CHECK25// CFG-CHECK: ENTRY26 27// Skip testing CallGraphViewer.28 29// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.DumpCallGraph %s > %t 2>&130// RUN: FileCheck --input-file=%t %s -check-prefix=CALL-GRAPH-CHECK31// CALL-GRAPH-CHECK: --- Call graph Dump ---32 33// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ConfigDumper %s > %t 2>&134// RUN: FileCheck --input-file=%t %s -check-prefix=CONFIG-CHECK35// CONFIG-CHECK: [config]36 37// Skip testing ExplodedGraphViewer.38 39// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ReportStmts %s > %t 2>&140// RUN: FileCheck --input-file=%t %s -check-prefix=REPORT-STMTS-CHECK41// REPORT-STMTS-CHECK: warning: Statement42 43void foo(int *p) {44 *p = 3;45}46 47int bar() {48 int x;49 foo(&x);50 return x;51}52