ChuanqiXu added a comment.

In D119409#3409806 <https://reviews.llvm.org/D119409#3409806>, @iains wrote:

> I think that this problem might well be a consequence of the bug which is 
> fixed by D122413 <https://reviews.llvm.org/D122413>.
>
> We have been generating code with module internal entities (always) given the 
> special ModuleInternalLinkage (which means that, although the linkage is 
> formally 'internal', the entities are made global when emitted.  We should 
> only be doing this for fmodules-ts, not for regular standard modules.
>
> If you apply D122413 <https://reviews.llvm.org/D122413> (which I hope to land 
> soon), then I would expect that iostream should work as expected (with one 
> internal instance of std::__ioinit in each TU that includes iostream).
>
> IFF (after applying D122413 <https://reviews.llvm.org/D122413> ) you add to 
> the command line -fmodules-ts, then the patch here (D119409 
> <https://reviews.llvm.org/D119409>) would, presumably, be needed to work 
> around multiple instances of the globalised std::__ioinit.

Sadly it wouldn't work after D122413 <https://reviews.llvm.org/D122413> 
applied. Since the <iostream> is lived in GlobalModuleFragment, the calculated 
linkage wouldn't affect them. So I met the same segfault as before.

> addendum: note we still have work to do on the module initialisers - those 
> are not correct yet (so probably some nesting of modules might not work).

What does the nesting of modules mean?


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

https://reviews.llvm.org/D119409

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

Reply via email to