Placing OwningPtr inside JumpDest would be much more involved. One reason is that JumpDest objects are copied around and JumpDest's copy CTOR is banned (LLVM_DELETED_FUNCTION). http://llvm-reviews.chandlerc.com/D2472