1abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen//===-- main.c --------------------------------------------------*- C++ -*-===// 2abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// 3abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// The LLVM Compiler Infrastructure 4abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// 5abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// This file is distributed under the University of Illinois Open Source 6abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// License. See LICENSE.TXT for details. 7abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen// 8abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen//===----------------------------------------------------------------------===// 9abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen#include <stdio.h> 10abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 11abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint a(int); 12abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint b(int); 13abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint c(int); 14abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 15abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint a(int val) 16abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen{ 17abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen if (val <= 1) 18abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return b(val); 19abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen else if (val >= 3) 20abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return c(val); 21abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 22abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return val; 23abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen} 24abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 25abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint b(int val) 26abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen{ 27abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return c(val); 28abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen} 29abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 30abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint c(int val) 31abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen{ 32abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return val + 3; // Find the line number here. 33abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen} 34abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 35abb3b2d796da9e081cd545b710d23c514489f895Johnny Chenint main (int argc, char const *argv[]) 36abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen{ 37abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen int A1 = a(1); // a(1) -> b(1) -> c(1) 38abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen printf("a(1) returns %d\n", A1); 39abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 40abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen int B2 = b(2); // b(2) -> c(2) 41abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen printf("b(2) returns %d\n", B2); 42abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 43abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen int A3 = a(3); // a(3) -> c(3) 44abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen printf("a(3) returns %d\n", A3); 45abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen 46abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen return 0; 47abb3b2d796da9e081cd545b710d23c514489f895Johnny Chen} 48