Exclude vectors from Type::isScalar() predicate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46328 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaExpr.cpp b/Sema/SemaExpr.cpp
index 0c8e5e2..58e0f08 100644
--- a/Sema/SemaExpr.cpp
+++ b/Sema/SemaExpr.cpp
@@ -729,10 +729,11 @@
// C99 6.5.4p2: the cast type needs to be void or scalar and the expression
// type needs to be scalar.
if (!castType->isVoidType()) { // Cast to void allows any expr type.
- if (!castType->isScalarType())
+ if (!castType->isScalarType() && !castType->isVectorType())
return Diag(LParenLoc, diag::err_typecheck_cond_expect_scalar,
castType.getAsString(), SourceRange(LParenLoc, RParenLoc));
- if (!castExpr->getType()->isScalarType())
+ if (!castExpr->getType()->isScalarType() &&
+ !castExpr->getType()->isVectorType())
return Diag(castExpr->getLocStart(),
diag::err_typecheck_expect_scalar_operand,
castExpr->getType().getAsString(),castExpr->getSourceRange());