Implement codegen for __builtin_choose_expr.  For example:

struct X { int A; };

void foo() {
  struct X s;
  int i;
  i = __builtin_choose_expr(0, s, i);
}

compiles to:

        %tmp = load i32* %i             ; <i32> [#uses=1]
        store i32 %tmp, i32* %i

wow :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40801 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenFunction.h b/CodeGen/CodeGenFunction.h
index 4c79498..0cc5f0d 100644
--- a/CodeGen/CodeGenFunction.h
+++ b/CodeGen/CodeGenFunction.h
@@ -58,6 +58,7 @@
   class ArraySubscriptExpr;
   class OCUVectorElementExpr;
   class ConditionalOperator;
+  class ChooseExpr;
   class PreDefinedExpr;
   
   class BlockVarDecl;
@@ -399,6 +400,7 @@
   
   // Conditional Operator.
   RValue EmitConditionalOperator(const ConditionalOperator *E);
+  RValue EmitChooseExpr(const ChooseExpr *E);
 };
 }  // end namespace CodeGen
 }  // end namespace clang