diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2022-11-15 17:13:33 -0800 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2022-11-15 17:14:48 -0800 |
commit | 81e33602f78d135c11b0d74d738263fc6cfaae12 (patch) | |
tree | a7afcac60debf4576f2d7fe8c54df21cd7606308 /clang/lib/Sema/SemaExprMember.cpp | |
parent | cb0ffa529a0f7f907fd89587fc2ab4f6ffd57cf5 (diff) | |
download | llvm-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.cpp | 11 |
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()) |