Patch for:
1) objc ivar processing is split out of ActOnField into its own ActOnIvar method.
2) the new objc ivar action takes visibility info directly, eliminating 
  AllVisibilities in ParseObjCClassInstanceVariables.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49506 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 5a9b980..eb3c5df 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -397,9 +397,9 @@
   for (unsigned i = 0, e = FieldDeclarators.size(); i != e; ++i) {
     FieldDeclarator &FD = FieldDeclarators[i];
     // Install the declarator into interfaceDecl.
-    DeclTy *Field = Actions.ActOnField(CurScope, interfaceDecl,
+    DeclTy *Field = Actions.ActOnIvar(CurScope,
                                        DS.getSourceRange().getBegin(),
-                                       FD.D, FD.BitfieldSize);
+                                      FD.D, FD.BitfieldSize);
     PropertyDecls.push_back(Field);
   }
   
@@ -772,7 +772,6 @@
                                              SourceLocation atLoc) {
   assert(Tok.is(tok::l_brace) && "expected {");
   llvm::SmallVector<DeclTy*, 32> AllIvarDecls;
-  llvm::SmallVector<tok::ObjCKeywordKind, 32> AllVisibilities;
   llvm::SmallVector<FieldDeclarator, 8> FieldDeclarators;
 
   SourceLocation LBraceLoc = ConsumeBrace(); // the "{"
@@ -815,11 +814,10 @@
     for (unsigned i = 0, e = FieldDeclarators.size(); i != e; ++i) {
       FieldDeclarator &FD = FieldDeclarators[i];
       // Install the declarator into interfaceDecl.
-      DeclTy *Field = Actions.ActOnField(CurScope, interfaceDecl,
+      DeclTy *Field = Actions.ActOnIvar(CurScope,
                                          DS.getSourceRange().getBegin(),
-                                         FD.D, FD.BitfieldSize);
+                                         FD.D, FD.BitfieldSize, visibility);
       AllIvarDecls.push_back(Field);
-      AllVisibilities.push_back(visibility);
     }
     
     if (Tok.is(tok::semi)) {
@@ -838,7 +836,7 @@
   // for code rewriting tools that need to be aware of the empty list.
   Actions.ActOnFields(CurScope, atLoc, interfaceDecl,
                       &AllIvarDecls[0], AllIvarDecls.size(),
-                      LBraceLoc, RBraceLoc, &AllVisibilities[0]);
+                      LBraceLoc, RBraceLoc);
   return;
 }