diff options
author | Lauro Ramos Venancio <lauro.venancio@gmail.com> | 2008-01-30 21:23:20 +0000 |
---|---|---|
committer | Lauro Ramos Venancio <lauro.venancio@gmail.com> | 2008-01-30 21:23:20 +0000 |
commit | 5bfe18c32f5df99daa14f42574cae1323dfb866a (patch) | |
tree | a963a41b9eda595bb2c8ec8f584b587059abaf37 /CodeGen/CGExprConstant.cpp | |
parent | 8df106e16197bf4bc055a9a9d73f4b78351c0c3e (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.cpp | 3 |
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); |