summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDavid Tweed <david.tweed@arm.com>2013-09-06 09:58:08 +0000
committerDavid Tweed <david.tweed@arm.com>2013-09-06 09:58:08 +0000
commit16574d8e8590815c712160a3cfd41fd0e47cc311 (patch)
treef905311d781ef497ada5428e296dc588ea45eb27 /clang/lib
parente009ef4ac15414316dec7ae70ed7780e5b3152e4 (diff)
downloadbcm5719-llvm-16574d8e8590815c712160a3cfd41fd0e47cc311.tar.gz
bcm5719-llvm-16574d8e8590815c712160a3cfd41fd0e47cc311.zip
OpenCL allows the (pre/post)-(increment/decrement) operator on integer vector types,
so allow that case and add appropriate tests. Patch by Ruiling Song! llvm-svn: 190129
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 5339c23c03d..da834cc2519 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -8413,6 +8413,9 @@ static QualType CheckIncrementDecrementOperand(Sema &S, Expr *Op,
IsInc, IsPrefix);
} else if (S.getLangOpts().AltiVec && ResType->isVectorType()) {
// OK! ( C/C++ Language Extensions for CBEA(Version 2.6) 10.3 )
+ } else if(S.getLangOpts().OpenCL && ResType->isVectorType() &&
+ ResType->getAs<VectorType>()->getElementType()->isIntegerType()) {
+ // OpenCL V1.2 6.3 says dec/inc ops operate on integer vector types.
} else {
S.Diag(OpLoc, diag::err_typecheck_illegal_increment_decrement)
<< ResType << int(IsInc) << Op->getSourceRange();
OpenPOWER on IntegriCloud