summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2008-03-17 17:22:18 +0000
committerNate Begeman <natebegeman@mac.com>2008-03-17 17:22:18 +0000
commit0c185c45a9210aa7c459bb4d7eae59d7d321c9af (patch)
tree350873c3132724951f53cd4d3da6ac84084c0c0d /clang/lib
parentfff4fc7e6d43e6b2c0eb38d51ac02e0b45627213 (diff)
downloadbcm5719-llvm-0c185c45a9210aa7c459bb4d7eae59d7d321c9af.tar.gz
bcm5719-llvm-0c185c45a9210aa7c459bb4d7eae59d7d321c9af.zip
Check in a couple fixes for vector extensions.
llvm-svn: 48461
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index d756345c1a8..8df023f2387 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -547,7 +547,7 @@ ActOnMemberReferenceExpr(ExprTy *Base, SourceLocation OpLoc,
MemberLoc, MemberType);
} else if (BaseType->isOCUVectorType() && OpKind == tok::period) {
// Component access limited to variables (reject vec4.rg.g).
- if (!isa<DeclRefExpr>(BaseExpr))
+ if (!isa<DeclRefExpr>(BaseExpr) && !isa<ArraySubscriptExpr>(BaseExpr))
return Diag(OpLoc, diag::err_ocuvector_component_access,
SourceRange(MemberLoc));
QualType ret = CheckOCUVectorComponent(BaseType, OpLoc, Member, MemberLoc);
@@ -1284,7 +1284,7 @@ inline QualType Sema::CheckVectorOperands(SourceLocation loc, Expr *&lex,
QualType lhsType = lex->getType(), rhsType = rex->getType();
// make sure the vector types are identical.
- if (lhsType == rhsType)
+ if (lhsType.getCanonicalType() == rhsType.getCanonicalType())
return lhsType;
// if the lhs is an ocu vector and the rhs is a scalar of the same type,
OpenPOWER on IntegriCloud