Add IsImplicit field in ObjCMessageExpr that is true when the message
was constructed, e.g. for a property access.

This allows the selector identifier locations machinery for ObjCMessageExpr
to function correctly, in that there are not real locations to handle/report for
such a message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148013 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Rewrite/RewriteObjC.cpp b/lib/Rewrite/RewriteObjC.cpp
index 0227b5d..4d26eb8 100644
--- a/lib/Rewrite/RewriteObjC.cpp
+++ b/lib/Rewrite/RewriteObjC.cpp
@@ -1299,7 +1299,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      RHS,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
 
   case ObjCMessageExpr::Instance:
@@ -1311,7 +1312,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      RHS,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
 
   case ObjCMessageExpr::SuperClass:
@@ -1326,7 +1328,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      RHS,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
   }
 
@@ -1372,7 +1375,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      Args,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
 
   case ObjCMessageExpr::Instance:
@@ -1384,7 +1388,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      Args,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
 
   case ObjCMessageExpr::SuperClass:
@@ -1399,7 +1404,8 @@
                                      SelLocs,
                                      OldMsg->getMethodDecl(),
                                      Args,
-                                     OldMsg->getRightLoc());
+                                     OldMsg->getRightLoc(),
+                                     OldMsg->isImplicit());
     break;
   }