void constructBlocks(Blocks &blocks, Instructions &instructions) { /* Create the first block containing the very first instruction in this script. * Then follow the complete code flow from this instruction onwards. */ assert(blocks.empty()); if (instructions.empty()) return; blocks.push_back(Block(instructions.front().address)); constructBlocks(blocks, blocks.back(), instructions.front()); }