Don't allow taking the address of an element in an ext_vector


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64614 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 3143fc7..60a1bea 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -3485,10 +3485,10 @@
       }
     }
   // Check for Apple extension for accessing vector components.
-  } else if (isa<ArraySubscriptExpr>(op) &&
-           cast<ArraySubscriptExpr>(op)->getBase()->getType()->isVectorType()) {
+  } else if (isa<ExtVectorElementExpr>(op) || (isa<ArraySubscriptExpr>(op) &&
+           cast<ArraySubscriptExpr>(op)->getBase()->getType()->isVectorType())){
     Diag(OpLoc, diag::err_typecheck_address_of)
-      << "vector" << op->getSourceRange();
+      << "vector element" << op->getSourceRange();
     return QualType();
   } else if (dcl) { // C99 6.5.3.2p1
     // We have an lvalue with a decl. Make sure the decl is not declared