1// RUN: %clang_cc1 -analyze -analyzer-checker=debug.DumpCallGraph %s -fblocks 2>&1 | FileCheck %s 2 3static void mmm(int y) { 4 if (y != 0) 5 y++; 6 y = y/y; 7} 8 9static int foo(int x, int y) { 10 mmm(y); 11 if (x != 0) 12 x++; 13 return 5/x; 14} 15 16void aaa() { 17 foo(1,2); 18} 19 20void bbb(int y) { 21 int x = (y > 2); 22 ^ { 23 foo(x, y); 24 }(); 25} 26void ccc(); 27void ddd() { ccc(); } 28void ccc() {} 29 30void eee(); 31void eee() {} 32void fff() { eee(); } 33 34// CHECK:--- Call graph Dump --- 35// CHECK-NEXT: {{Function: < root > calls: mmm foo aaa < > bbb ccc ddd eee fff $}} 36// CHECK-NEXT: {{Function: fff calls: eee $}} 37// CHECK-NEXT: {{Function: eee calls: $}} 38// CHECK-NEXT: {{Function: ddd calls: ccc $}} 39// CHECK-NEXT: {{Function: ccc calls: $}} 40// CHECK-NEXT: {{Function: bbb calls: < > $}} 41// CHECK-NEXT: {{Function: < > calls: foo $}} 42// CHECK-NEXT: {{Function: aaa calls: foo $}} 43// CHECK-NEXT: {{Function: foo calls: mmm $}} 44// CHECK-NEXT: {{Function: mmm calls: $}} 45