Generate code for va_start and va_end.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42939 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CGExprScalar.cpp b/CodeGen/CGExprScalar.cpp
index cd5c078..755fd56 100644
--- a/CodeGen/CGExprScalar.cpp
+++ b/CodeGen/CGExprScalar.cpp
@@ -418,6 +418,11 @@
     
     llvm::Value *Ops[] = {Idx0, Idx0};
     return Builder.CreateGEP(V, Ops, Ops+2, "arraydecay");
+  } else if (E->getType()->isReferenceType()) {
+    assert(cast<ReferenceType>(E->getType())->getReferenceeType() == 
+           Op->getType() && "Incompatible types!");
+    
+    return EmitLValue(Op).getAddress();
   }
   
   return EmitCastExpr(Op, E->getType());