aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CGExpr.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-11-30 18:02:19 +0000
committerChris Lattner <sabre@nondot.org>2007-11-30 18:02:19 +0000
commit3e47be5c90b2bf04369239ba618336c96e299a4c (patch)
tree16c474e1e1da6a1fa449d72aa3df1377f46c8f97 /CodeGen/CGExpr.cpp
parent2202bce80fc72d067cbe67dc1512f7b45351fd31 (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.cpp5
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);