summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-16 22:14:05 +0000
committerChris Lattner <sabre@nondot.org>2009-02-16 22:14:05 +0000
commitb8211f643671dee1861a93ed40e2f17d39441172 (patch)
tree3e09c249ae225db01213de74f94722b71e0ab702 /clang/lib/CodeGen
parentf95039cd58bb977244d04a696a5f18358ecd9f40 (diff)
downloadbcm5719-llvm-b8211f643671dee1861a93ed40e2f17d39441172.tar.gz
bcm5719-llvm-b8211f643671dee1861a93ed40e2f17d39441172.zip
introduce and use a new ExtVectorElementExpr::isArrow method, at Eli's suggestion
llvm-svn: 64681
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGExpr.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 03efbc9ad56..01a5514d6e1 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -797,12 +797,13 @@ EmitExtVectorElementExpr(const ExtVectorElementExpr *E) {
LValue Base;
// ExtVectorElementExpr's base can either be a vector or pointer to vector.
- if (const PointerType *PT = E->getBase()->getType()->getAsPointerType()) {
- llvm::Value *Ptr = EmitScalarExpr(E->getBase());
- Base = LValue::MakeAddr(Ptr, PT->getPointeeType().getCVRQualifiers());
- } else {
+ if (!E->isArrow()) {
assert(E->getBase()->getType()->isVectorType());
Base = EmitLValue(E->getBase());
+ } else {
+ const PointerType *PT = E->getBase()->getType()->getAsPointerType();
+ llvm::Value *Ptr = EmitScalarExpr(E->getBase());
+ Base = LValue::MakeAddr(Ptr, PT->getPointeeType().getCVRQualifiers());
}
// Encode the element access list into a vector of unsigned indices.
OpenPOWER on IntegriCloud