Objective-C @synthesize support.
 - Only supports simple assignment and atomic semantics are ignored.
 - Not quite usable yet because the methods do not actually get added
   to the class metadata.
 - Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
 - Rearrange CodeGenFunction so synthesis can reuse function prolog /
   epilog code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55365 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 2ba6b8d..4eed9a7 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -39,6 +39,7 @@
   class FunctionTypeProto;
   class LabelStmt;
   class ObjCMethodDecl;
+  class ObjCPropertyImplDecl;
   class TargetInfo;
   class VarDecl;
 
@@ -112,9 +113,20 @@
   ASTContext &getContext() const;
 
   void GenerateObjCMethod(const ObjCMethodDecl *OMD);
+
+  void StartObjCMethod(const ObjCMethodDecl *MD);
+
+  /// GenerateObjCGetter - Synthesize an Objective-C property getter
+  /// function.
+  void GenerateObjCGetter(const ObjCPropertyImplDecl *PID);
+
+  /// GenerateObjCSetter - Synthesize an Objective-C property setter
+  /// function for the given property.
+  void GenerateObjCSetter(const ObjCPropertyImplDecl *PID);
+
   void GenerateCode(const FunctionDecl *FD,
                     llvm::Function *Fn);
-  void GenerateFunction(const Stmt *Body);
+  void FinishFunction(SourceLocation EndLoc=SourceLocation());
   
   const llvm::Type *ConvertType(QualType T);