1 // RUN: %clang_cc1 -analyze -analyzer-checker=debug.DumpCallGraph %s -fblocks 2>&1 | FileCheck %s 2 3 static void mmm(int y) { 4 if (y != 0) 5 y++; 6 y = y/y; 7 } 8 9 static int foo(int x, int y) { 10 mmm(y); 11 if (x != 0) 12 x++; 13 return 5/x; 14 } 15 16 void aaa() { 17 foo(1,2); 18 } 19 20 void bbb(int y) { 21 int x = (y > 2); 22 ^ { 23 foo(x, y); 24 }(); 25 } 26 void ccc(); 27 void ddd() { ccc(); } 28 void ccc() {} 29 30 void eee(); 31 void eee() {} 32 void 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