[LLVMdev] create two Twine object
Yuanfang Chen
tabloid.adroit at gmail.com
Sat Apr 17 21:55:25 PDT 2010
I need to generate variables like
status1, status2, status3, ......
request1, request2, request3, ......
this is my code, other unrelated detail are eliminated.
static int varNum;
static const char *getVarNum() {
++varNum;
std::stringstream ss;
ss << varNum;
std::string *varname = new std::string(ss.str());
return varname->c_str();
}
const char *VarNum = getVarNum();
Twine *x1 = new Twine(StringRef("status"), VarNum); // 1
Twine *x2 = new Twine(StringRef("request"), VarNum); // 2
Instruction *sstatusInst = new AllocaInst(StatusTy, *x1, entry_inst); //
3
Instruction *sreqInst = new AllocaInst(ReqTy, *x2, entry_inst); //
4
with only 1&3, my code works well, I can have status1, status2, status3,
......
with 1&2&3&4 exists at the same time, it compiles without problem, but
segmentation fault happens.
Instruction *sreqInst = new AllocaInst(ReqTy, "request", entry_inst); //
5
with 1&2&3&5, everything work, but that's not what I want.
I really can't figure out what is broken. I create everything new on the
heap.
Each alloca inst with its own Twine object on the heap. Could anyone help me
out? Thanks a lot.
yuanfang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100418/4e869648/attachment.html>
More information about the llvm-dev
mailing list