aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CGExprConstant.cpp
diff options
context:
space:
mode:
authorLauro Ramos Venancio <lauro.venancio@gmail.com>2008-01-30 21:23:20 +0000
committerLauro Ramos Venancio <lauro.venancio@gmail.com>2008-01-30 21:23:20 +0000
commit5bfe18c32f5df99daa14f42574cae1323dfb866a (patch)
treea963a41b9eda595bb2c8ec8f584b587059abaf37 /CodeGen/CGExprConstant.cpp
parent8df106e16197bf4bc055a9a9d73f4b78351c0c3e (diff)
getLLVMFieldNo can't be called before emitting the base value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46576 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CodeGen/CGExprConstant.cpp')
-rw-r--r--CodeGen/CGExprConstant.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/CodeGen/CGExprConstant.cpp b/CodeGen/CGExprConstant.cpp
index 070ce1d734..d996fd8af4 100644
--- a/CodeGen/CGExprConstant.cpp
+++ b/CodeGen/CGExprConstant.cpp
@@ -412,12 +412,13 @@ public:
}
case Expr::MemberExprClass: {
MemberExpr* ME = cast<MemberExpr>(E);
- unsigned FieldNumber = CGM.getTypes().getLLVMFieldNo(ME->getMemberDecl());
llvm::Constant *Base;
if (ME->isArrow())
Base = Visit(ME->getBase());
else
Base = EmitLValue(ME->getBase());
+
+ unsigned FieldNumber = CGM.getTypes().getLLVMFieldNo(ME->getMemberDecl());
llvm::Constant *Zero = llvm::ConstantInt::get(llvm::Type::Int32Ty, 0);
llvm::Constant *Idx = llvm::ConstantInt::get(llvm::Type::Int32Ty,
FieldNumber);