summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-06-22 02:41:05 +0000
committerDouglas Gregor <dgregor@apple.com>2010-06-22 02:41:05 +0000
commitef4a2a2b546279d53790013f9bfd51064fe26c54 (patch)
treec5e1acf6989a69018628747edce5ea3f7deb653d /clang/lib/Sema/TreeTransform.h
parentde049cdbe635c10249e4f79a2c8ad65b148c0024 (diff)
downloadbcm5719-llvm-ef4a2a2b546279d53790013f9bfd51064fe26c54.tar.gz
bcm5719-llvm-ef4a2a2b546279d53790013f9bfd51064fe26c54.zip
Apply array-to-pointer decay when instantiating a MemberExpr. Fixes
PR7405, patch by Kyle Lippincott! llvm-svn: 106523
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 6032244a15c..d959f1c22e7 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -1174,7 +1174,9 @@ public:
SS.setScopeRep(Qualifier);
}
- QualType BaseType = ((Expr*) Base.get())->getType();
+ Expr *BaseExpr = Base.takeAs<Expr>();
+ getSema().DefaultFunctionArrayConversion(BaseExpr);
+ QualType BaseType = BaseExpr->getType();
// FIXME: this involves duplicating earlier analysis in a lot of
// cases; we should avoid this when possible.
@@ -1183,8 +1185,8 @@ public:
R.addDecl(FoundDecl);
R.resolveKind();
- return getSema().BuildMemberReferenceExpr(move(Base), BaseType,
- OpLoc, isArrow,
+ return getSema().BuildMemberReferenceExpr(getSema().Owned(BaseExpr),
+ BaseType, OpLoc, isArrow,
SS, FirstQualifierInScope,
R, ExplicitTemplateArgs);
}
OpenPOWER on IntegriCloud