the module pointer type passed in by the user.
The previous ownership scheme, where the user pointer was always moved into a
std::shared_ptr, breaks if the user passes in a raw pointer.
Discovered while working on the Orc C API, which should be landing shortly.
I expect to include a test-case with that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251273
91177308-0d34-0410-b5e6-
96231b3b80d8