bnbarham added a comment.

In D105328#2861028 <https://reviews.llvm.org/D105328#2861028>, @vsapsai wrote:

> This problem shouldn't happen based on module-level name hashing but for some 
> reason it is happening. If I'm not mistaken, InMemoryModuleCache uses .pcm 
> file name as the key. But that file name should contain a hash part that is 
> based on the modulemap path. But frameworks M in "frameworks" and 
> "frameworks2" should have different paths for modulemaps and should have 
> different .pcm names, therefore no conflicts in InMemoryModuleCache.

Ah sorry, looks like I had my modules slightly confused. The underlying problem 
is that `B` is considered out of date due to the check on line 2920, ie. the 
one that creates the `err_imported_module_relocated` diagnostic. That causes 
`Top` to be re-compiled as a module it depends on is out of date. The location 
of `Top` hasn't changed, so it keeps the same .pcm path.

`B` is also re-compiled, but as you point out that's perfectly fine since it'll 
get a different path in the cache.

I'll update the comments in the test + the review summary. Sorry for the 
confusion.

> I see the value in not crashing but looks like there might be a problem 
> somewhere else.

For what it's worth, even if there was another cause I'd still like to get this 
change in - writing over a module in the cache causes all sorts of different 
crashes that are hard to diagnose. I'd be *very* surprised if there weren't 
more issues like this, so at least we'll get an actual error rather than random 
crashes.

> Also it is more of my personal pet peeve. InMemoryModuleCache should simplify 
> memory management for modules but in practice it simplifies creating dangling 
> references. I'm not asking to address that, so if you feel like my requests 
> get too close to that direction, it's good to push back.

Heh, I find this a nice summary of how I feel about it after trying to find the 
root cause of these crashes!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105328

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

Reply via email to