[llvm-dev] Getting a pointer to a i8 from a global variable that holds a constant string (original) (raw)
Lorin Atzberger via llvm-dev llvm-dev at lists.llvm.org
Sat Apr 8 05🔞11 PDT 2017
- Previous message: [llvm-dev] How to insert vector type input parameter for function in C/C++ API?
- Next message: [llvm-dev] Getting a pointer to a i8 from a global variable that holds a constant string
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
I'm trying to get the pointer to the first element of a string (so that I can pass it to a function). The string itself is a constant kept in a global variable. My end goal is to generate the IR for something like "puts("Hello World")"; I'm stuck on the parameter part of the call instruction.
So far I have something like this:
const std::string& str = strExpr->value(); llvm::ArrayType* type = llvm::ArrayType::get(llvm::IntegerType::get(m_context, 8), str.size()+1); llvm::GlobalVariable* var = new llvm::GlobalVariable(m_module, type, true, llvm::GlobalValue::PrivateLinkage, nullptr, ".str"); var->setAlignment(1);;
llvm::Constant* c = llvm::ConstantDataArray::getString(m_context, str); var->setInitializer(c);
The part below is the one I have problems with:
llvm::ConstantInt* const_int32_12 = llvm::ConstantInt::get(m_context, llvm::APInt(32, llvm::StringRef("0"), 10)); std::vectorllvm::Constant* const_ptr_14_indices; const_ptr_14_indices.push_back(const_int32_12); const_ptr_14_indices.push_back(const_int32_12); return llvm::ConstantExpr::getGetElementPtr(nullptr,c, const_ptr_14_indices);
I realize that the GlobalVariable should not be declared every time I get in that function but that's something I'll fix after I get this working.
Any help here would be appreciated.
Regards, Lorin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170408/77ee7f5f/attachment.html>
- Previous message: [llvm-dev] How to insert vector type input parameter for function in C/C++ API?
- Next message: [llvm-dev] Getting a pointer to a i8 from a global variable that holds a constant string
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]