goncharov added a comment.

In D135220#3840354 <https://reviews.llvm.org/D135220#3840354>, @benlangmuir 
wrote:

> Okay, I was able to reproduce by symlinking all the 0-byte header files to 
> header0 (any choice probably works).  The behaviour is deterministic before 
> and after my change.
>
> This was only passing by luck in this setup, because it was relying on 
> mutation of `FileEntry->LastRef` which mutates the path of header1 to 
> header3.  We do not actually track the difference in filename here, it just 
> happened to match the behaviour without symlinks for this case because of the 
> mutation.  Note: the mutation is not triggered specifically by the include, 
> it's anything that looks up that path in the file manager, so there is no 
> guarantee that you would get header3 if something triggered accessing the 
> filename header1 again at the wrong time.
>
> I think my change is fine here and we should just update the test files so 
> they will not be accidentally linked. If someone wants to work on tracking 
> the filenames independently for each include that would be fine, but as long 
> as we only have one name it should be the first one not the "one whose path 
> was most recently accessed in FileManager".
>
> @goncharov Was this the only test effected? If so, here's a fix: 
> https://reviews.llvm.org/D135373

I believe so, thank you for the fix! (I was mostly trying to confirm that 
symlink setups will be fine)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135220/new/

https://reviews.llvm.org/D135220

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

Reply via email to