Previously, this argument had no effect, since it didn't proceeded.
For more information, check this review: https://reviews.llvm.org/D41535
Files is a raw pointer, so we're leaking memory here.
Using IntrusiveRefCntPtr<FileManager> locally should do the trick, the clients can take ownership if they want and FileManager will be properly freed if they don't do that.
CompilerInstance::createFileManager stores IntrusiveRefCntPtr as a field before returning a raw pointer, so it seems to properly manage memory there.