Add NeXT runtime support for generating methods.

Change CodeGenFunction::EmitParmDecl to take either a ParmVarDecl or an
  ImplicitParamDecl.

Drop hasAggregateLLVMType from CodeGenModule.cpp (use version in
  CodeGenFunction).

Change the Objective-C method generation to use EmitParmDecl for
  implicit parameters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54838 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index b595363..e4061ec 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -298,6 +298,8 @@
   
   const llvm::Type *ConvertType(QualType T);
 
+  /// LoadObjCSelf - Load the value of self. This function is only
+  /// valid while generating code for an Objective-C method.
   llvm::Value *LoadObjCSelf();
 
   /// isObjCPointerType - Return true if the specificed AST type will map onto
@@ -368,7 +370,9 @@
   void EmitBlockVarDecl(const VarDecl &D);
   void EmitLocalBlockVarDecl(const VarDecl &D);
   void EmitStaticBlockVarDecl(const VarDecl &D);
-  void EmitParmDecl(const ParmVarDecl &D, llvm::Value *Arg);
+
+  /// EmitParmDecl - Emit a ParmVarDecl or an ImplicitParamDecl.
+  void EmitParmDecl(const VarDecl &D, llvm::Value *Arg);
   
   //===--------------------------------------------------------------------===//
   //                             Statement Emission