Remove Action::ActOnImpleIvarVsClassIvars(), it is only called by Sema (not Parser).
Add Sema::CheckImplementationIvars() to replace the previous action.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42553 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 64789bc..1e0198a 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -1168,17 +1168,18 @@
   return IMPDecl;
 }
 
-void Sema::ActOnImpleIvarVsClassIvars(DeclTy *ClassDecl,
-                                      DeclTy **Fields, unsigned numIvars) {
-  ObjcInterfaceDecl* IDecl = 
-    cast<ObjcInterfaceDecl>(static_cast<Decl*>(ClassDecl));
-  assert(IDecl && "missing named interface class decl");
-  ObjcIvarDecl** ivars = reinterpret_cast<ObjcIvarDecl**>(Fields);
+void Sema::CheckImplementationIvars(ObjcImplementationDecl *ImpDecl,
+                                    ObjcIvarDecl **ivars, unsigned numIvars) {
+  assert(ImpDecl && "missing implementation decl");
+  ObjcInterfaceDecl* IDecl = getObjCInterfaceDecl(ImpDecl->getIdentifier());
+  
+  if (!IDecl)
+    return;
   assert(ivars && "missing @implementation ivars");
   
-    // Check interface's Ivar list against those in the implementation.
-    // names and types must match.
-    //
+  // Check interface's Ivar list against those in the implementation.
+  // names and types must match.
+  //
   ObjcIvarDecl** IntfIvars = IDecl->getIntfDeclIvars();
   int IntfNumIvars = IDecl->getIntfDeclNumIvars();
   unsigned j = 0;
@@ -1676,10 +1677,7 @@
 	cast<ObjcImplementationDecl>(static_cast<Decl*>(RecDecl));
       assert(IMPDecl && "ActOnFields - missing ObjcImplementationDecl");
       IMPDecl->ObjcAddInstanceVariablesToClassImpl(ClsFields, RecFields.size());
-      ObjcInterfaceDecl* IDecl = getObjCInterfaceDecl(IMPDecl->getIdentifier());
-      if (IDecl)
-        ActOnImpleIvarVsClassIvars(static_cast<DeclTy*>(IDecl), 
-          reinterpret_cast<DeclTy**>(&RecFields[0]), RecFields.size());
+      CheckImplementationIvars(IMPDecl, ClsFields, RecFields.size());
     }
   }
 }