A FILE* method isn't as useful as an overload that takes an llvm::raw_ostream&. This way we can use raw_fd_ostream if we want the old behavior, or more commonly just llvm::errs() if we want to write to stderr. Plus, this adds the flexibility necessary to save the results to a string if we want to tee them to a log file as well as stderr, for example.
Note: This patch is currently untested on Linux and Mac. There should be no functional change, but I need to at least compile on Linux / Mac to make sure it's not broken. I plan to do this tomorrow. I'm mostly looking for comments on the general idea, because I don't expect this to be too controversial.
There is only 1 existing callsite of the FILE* method, which is in clang/CIndex.cpp. It calls PrintStackTrace(stderr). I will fix this to use PrintStackTrace(llvm::errs()) in a separate patch.