]> granicus.if.org Git - clang/commitdiff
Updated calls to CreateGEP to new interface in LLVM mainline.
authorTed Kremenek <kremenek@apple.com>
Tue, 4 Sep 2007 17:20:08 +0000 (17:20 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 4 Sep 2007 17:20:08 +0000 (17:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41704 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CGExprComplex.cpp
CodeGen/CGExprScalar.cpp

index d4e209476dd4e6124ba3cc77d340e705c5856234..9c02641d1fdc4a2bb5a8f99e98a07139df0a07d1 100644 (file)
@@ -191,14 +191,18 @@ ComplexPairTy ComplexExprEmitter::EmitLoadOfComplex(llvm::Value *SrcPtr,
                              SrcPtr->getNameStart()+SrcPtr->getNameLen());
   
   Name += ".realp";
-  llvm::Value *RealPtr = Builder.CreateGEP(SrcPtr, Zero, Zero, Name.c_str());
+  llvm::Value *Ops[] = {Zero, Zero};
+  llvm::Value *RealPtr = Builder.CreateGEP(SrcPtr, Ops, Ops+2, Name.c_str());
 
   Name.pop_back();  // .realp -> .real
   llvm::Value *Real = Builder.CreateLoad(RealPtr, isVolatile, Name.c_str());
   
   Name.resize(Name.size()-4); // .real -> .imagp
   Name += "imagp";
-  llvm::Value *ImagPtr = Builder.CreateGEP(SrcPtr, Zero, One, Name.c_str());
+  
+  Ops[1] = One; // { Ops = { Zero, One }
+  llvm::Value *ImagPtr = Builder.CreateGEP(SrcPtr, Ops, Ops+2, Name.c_str());
+
   Name.pop_back();  // .imagp -> .imag
   llvm::Value *Imag = Builder.CreateLoad(ImagPtr, isVolatile, Name.c_str());
   return ComplexPairTy(Real, Imag);
@@ -210,8 +214,12 @@ void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val, llvm::Value *Ptr,
                                             bool isVolatile) {
   llvm::Constant *Zero = llvm::ConstantInt::get(llvm::Type::Int32Ty, 0);
   llvm::Constant *One  = llvm::ConstantInt::get(llvm::Type::Int32Ty, 1);
-  llvm::Value *RealPtr = Builder.CreateGEP(Ptr, Zero, Zero, "real");
-  llvm::Value *ImagPtr = Builder.CreateGEP(Ptr, Zero, One, "imag");
+
+  llvm::Value *Ops[] = {Zero, Zero};
+  llvm::Value *RealPtr = Builder.CreateGEP(Ptr, Ops, Ops+2, "real");
+  
+  Ops[1] = One; // { Ops = { Zero, One }
+  llvm::Value *ImagPtr = Builder.CreateGEP(Ptr, Ops, Ops+2, "imag");
   
   Builder.CreateStore(Val.first, RealPtr, isVolatile);
   Builder.CreateStore(Val.second, ImagPtr, isVolatile);
index e0a871831e7b815f58daf560a94ef963a0789c1b..3bb2678a6cbaf313b522a4e7fc397f6f51b1b7d0 100644 (file)
@@ -415,7 +415,9 @@ Value *ScalarExprEmitter::VisitImplicitCastExpr(const ImplicitCastExpr *E) {
                                 ->getElementType()) &&
            "Doesn't support VLAs yet!");
     llvm::Constant *Idx0 = llvm::ConstantInt::get(llvm::Type::Int32Ty, 0);
-    return Builder.CreateGEP(V, Idx0, Idx0, "arraydecay");
+    
+    llvm::Value *Ops[] = {Idx0, Idx0};
+    return Builder.CreateGEP(V, Ops, Ops+2, "arraydecay");
   }
   
   return EmitCastExpr(Op, E->getType());