summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r--clang/lib/Sema/SemaExprObjC.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index fdb59874cc9..4ca3b851c18 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -4332,16 +4332,14 @@ Expr *Sema::stripARCUnbridgedCast(Expr *e) {
assert(!gse->isResultDependent());
unsigned n = gse->getNumAssocs();
- SmallVector<Expr *, 4> subExprs;
- SmallVector<TypeSourceInfo *, 4> subTypes;
- subExprs.reserve(n);
- subTypes.reserve(n);
- for (const GenericSelectionExpr::Association &assoc : gse->associations()) {
- subTypes.push_back(assoc.getTypeSourceInfo());
- Expr *sub = assoc.getAssociationExpr();
- if (assoc.isSelected())
+ SmallVector<Expr*, 4> subExprs(n);
+ SmallVector<TypeSourceInfo*, 4> subTypes(n);
+ for (unsigned i = 0; i != n; ++i) {
+ subTypes[i] = gse->getAssocTypeSourceInfo(i);
+ Expr *sub = gse->getAssocExpr(i);
+ if (i == gse->getResultIndex())
sub = stripARCUnbridgedCast(sub);
- subExprs.push_back(sub);
+ subExprs[i] = sub;
}
return GenericSelectionExpr::Create(
OpenPOWER on IntegriCloud