diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-30 18:02:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-30 18:02:19 +0000 |
commit | 3e47be5c90b2bf04369239ba618336c96e299a4c (patch) | |
tree | 16c474e1e1da6a1fa449d72aa3df1377f46c8f97 /CodeGen/CGExpr.cpp | |
parent | 2202bce80fc72d067cbe67dc1512f7b45351fd31 (diff) |
fix a bug handling typedefs in member expr codegen. Patch
by Seo Sanghyeon
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44455 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CodeGen/CGExpr.cpp')
-rw-r--r-- | CodeGen/CGExpr.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/CodeGen/CGExpr.cpp b/CodeGen/CGExpr.cpp index 8fcc94805a..a4aa6db7ba 100644 --- a/CodeGen/CGExpr.cpp +++ b/CodeGen/CGExpr.cpp @@ -393,10 +393,11 @@ LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) { BaseValue = BaseLV.getAddress(); if (E->isArrow()) { - QualType PTy = cast<PointerType>(BaseExpr->getType())->getPointeeType(); + QualType Ty = BaseExpr->getType(); + Ty = cast<PointerType>(Ty.getCanonicalType())->getPointeeType(); BaseValue = Builder.CreateBitCast(BaseValue, - llvm::PointerType::get(ConvertType(PTy)), "tmp"); + llvm::PointerType::get(ConvertType(Ty)), "tmp"); } } else BaseValue = EmitScalarExpr(BaseExpr); |