diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-06-22 02:41:05 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-06-22 02:41:05 +0000 |
| commit | ef4a2a2b546279d53790013f9bfd51064fe26c54 (patch) | |
| tree | c5e1acf6989a69018628747edce5ea3f7deb653d /clang/lib/Sema/TreeTransform.h | |
| parent | de049cdbe635c10249e4f79a2c8ad65b148c0024 (diff) | |
| download | bcm5719-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.h | 8 |
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); } |

