Hi,<br><br>Can anyone tell me if there's a straighforward way to create a new BasicBlock without inserting it into a function's basic block list? I want to do this so I can create a forward reference to a block that's position in the function is not yet known.<br>

<br>I've tried:<br><br>Function function<br>Builder builder;<br><br>bb = BasicBlock::Create(function,...)<br>bb.eraseFromParent()<br><br>...<br>add other blocks to function and build instructions in those blocks<br>...<br>
<br>function.getBasicBlockList.push_back(bb)<br><br><br>but I get an assert failure from push_back:<br><br>t1: SymbolTableListTraitsImpl.h:68: void llvm::SymbolTableListTraits<ValueSubClass, ItemParentClass>::addNodeToList(ValueSubClass*) [with ValueSubClass = llvm::BasicBlock, ItemParentClass = llvm::Function]: Assertion `V->getParent() == 0 && "Value already in a container!!"' failed.<br>
<br>Should I expect this to work? Can a BasicBlock only exist within a Function's basic block list? Is there a better way to create a forward reference for branch instructions to IR code that is not yet generated?<br>
<br>Thanks in advance,<br>-- James<br>