Begin struct layout work.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43236 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenFunction.h b/CodeGen/CodeGenFunction.h
index 3e08461..c14687e 100644
--- a/CodeGen/CodeGenFunction.h
+++ b/CodeGen/CodeGenFunction.h
@@ -65,13 +65,15 @@
   class ChooseExpr;
   class PreDefinedExpr;
   class ObjCStringLiteral;
-  
+  class MemberExpr;
+
   class BlockVarDecl;
   class EnumConstantDecl;
   class ParmVarDecl;
 namespace CodeGen {
   class CodeGenModule;
-  
+  class CodeGenTypes;
+  class RecordLayoutInfo;  
 
 /// RValue - This trivial value class is used to represent the result of an
 /// expression that is evaluated.  It can be one of three things: either a
@@ -296,6 +298,8 @@
   /// then reuse it.
   void StartBlock(const char *N);
 
+  /// getRecordLayoutInfo - Return record layout info.
+  RecordLayoutInfo *getRecordLayoutInfo(CodeGenTypes &CGT, QualType RTy);
   //===--------------------------------------------------------------------===//
   //                            Declaration Emission
   //===--------------------------------------------------------------------===//
@@ -370,6 +374,7 @@
   LValue EmitUnaryOpLValue(const UnaryOperator *E);
   LValue EmitArraySubscriptExpr(const ArraySubscriptExpr *E);
   LValue EmitOCUVectorElementExpr(const OCUVectorElementExpr *E);
+  LValue EmitMemberExpr(const MemberExpr *E);
     
   //===--------------------------------------------------------------------===//
   //                         Scalar Expression Emission