aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaExprMember.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2022-11-15 17:13:33 -0800
committerAkira Hatanaka <ahatanaka@apple.com>2022-11-15 17:14:48 -0800
commit81e33602f78d135c11b0d74d738263fc6cfaae12 (patch)
treea7afcac60debf4576f2d7fe8c54df21cd7606308 /clang/lib/Sema/SemaExprMember.cpp
parentcb0ffa529a0f7f907fd89587fc2ab4f6ffd57cf5 (diff)
downloadllvm-81e33602f78d135c11b0d74d738263fc6cfaae12.zip
llvm-81e33602f78d135c11b0d74d738263fc6cfaae12.tar.gz
llvm-81e33602f78d135c11b0d74d738263fc6cfaae12.tar.bz2
[Sema] Use the value category of the base expression when creating an
ExtVectorElementExpr This fixes a bug where an lvalue ExtVectorElementExpr was created when the base expression was an ObjC property dot operator. This reverts 220d08d942ab0df3211388e602ed34fa6139ca61. Differential Revision: https://reviews.llvm.org/D138058
Diffstat (limited to 'clang/lib/Sema/SemaExprMember.cpp')
-rw-r--r--clang/lib/Sema/SemaExprMember.cpp11
1 files changed, 1 insertions, 10 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp
index 8eeed1a..a3420ac 100644
--- a/clang/lib/Sema/SemaExprMember.cpp
+++ b/clang/lib/Sema/SemaExprMember.cpp
@@ -1621,16 +1621,7 @@ static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
if (BaseType->isExtVectorType()) {
// FIXME: this expr should store IsArrow.
IdentifierInfo *Member = MemberName.getAsIdentifierInfo();
- ExprValueKind VK;
- if (IsArrow)
- VK = VK_LValue;
- else {
- if (PseudoObjectExpr *POE = dyn_cast<PseudoObjectExpr>(BaseExpr.get()))
- VK = POE->getSyntacticForm()->getValueKind();
- else
- VK = BaseExpr.get()->getValueKind();
- }
-
+ ExprValueKind VK = (IsArrow ? VK_LValue : BaseExpr.get()->getValueKind());
QualType ret = CheckExtVectorComponent(S, BaseType, VK, OpLoc,
Member, MemberLoc);
if (ret.isNull())