manmanren added a comment.

In https://reviews.llvm.org/D22636#493072, @benlangmuir wrote:

> > Can you point me to the source codes where we use rename to replace the 
> > file? I am curious on how this all works out.
>
>
> This is the same as clang's handling of other output files.  See 
> {{CompilerInstance::createOutputFile}} and {{clearOutputFiles}}.  When we are 
> performing the GenerateModuleAction, the .pcm file will be the output file.


Thanks for the info!

> 

> 

> > What I described is a scenario I thought possible that can cause 
> > "out-of-date" error:

> 

> >  module "B" is out of date and needs to be rebuilt

> 

> >  note: imported by module "A"

> 

> >  The only invocation of ReadAST that reads a module file and can't handle 
> > out-of-date modules, is the path where we just built module "A" and tries 
> > to load module "A" (here ModuleLoadCapabilities will be ARR_Missing).

> 

> 

> Right, here and in PCH loading (I assume your case doesn't involve a PCH).  
> I'm concerned about adding this loop, because it removes the guarantee of 
> progress.  We should never need to build a module more than once in the same 
> compilation.  If we have a bug that's causing us to not be able to load a 
> module that we just compiled, I think we need to fix the underlying problem, 
> not just retry the build.


Yes, I agree. We should try to figure out the root cause. I gave the project 
owner a root with debugging messages, but with this root, the error disappeared 
:(

If you have suggestions on debugging this, let me know.

Thanks,
Manman


https://reviews.llvm.org/D22636



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to