implement  codegen of calls.  We can now compile:

double foo( int (*FP)(int, int, int)) {
  return FP(1, 2, 3);
}

to:

define double @foo(i32 (i32, i32, i32)* %FP) {
entry:
        %call = tail call i32 %FP( i32 1, i32 2, i32 3 )
        %conv = sitofp i32 %call to double
        ret double %conv
}

llvm-svn: 39658
diff --git a/clang/CodeGen/CodeGenFunction.h b/clang/CodeGen/CodeGenFunction.h
index ad80b38..1b07887 100644
--- a/clang/CodeGen/CodeGenFunction.h
+++ b/clang/CodeGen/CodeGenFunction.h
@@ -45,6 +45,7 @@
   class StringLiteral;
   class IntegerLiteral;
   class CastExpr;
+  class CallExpr;
   class UnaryOperator;
   class BinaryOperator;
   class ArraySubscriptExpr;
@@ -251,6 +252,7 @@
   RValue EmitIntegerLiteral(const IntegerLiteral *E);
   
   RValue EmitCastExpr(const CastExpr *E);
+  RValue EmitCallExpr(const CallExpr *E);
 
   // Unary Operators.
   RValue EmitUnaryOperator(const UnaryOperator *E);