Even though this instance just built module "A", it is likely that "A" imports another module "B" and B.pcm becomes out of date when we try to load module "A", because another instance overwrites "B.pcm" due to changes in warning options. This patch tries to fix the error: "Module file ‘<some-file path>.pcm' is out of date and needs to be rebuilt" by simply trying again.
This seems to be the last case where we call ReadAST without the ability to handle out-of-date.
If there are other ways to fix the issue, please let me know.
Also I don't quite know how to add a testing case when two compiling instances are involved and running in parallel.
rdar://problem/26676111