[PATCH] D101972: Force visibility of llvm::Any to external

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 27 10:15:37 PDT 2021


rnk added a comment.

Thanks for the explanation, that makes sense to me.

I think, for portability reasons, we really don't want to go in the direction of D108690 <https://reviews.llvm.org/D108690>. We want to move in the direction of default hidden visibility, and explicitly marking publicly visible things.

Can the issue you've encountered be addressed by giving the classes which are passed across DSO boundaries default visibility? The issue shouldn't arise if a hidden class is not used across DSO boundaries, but if there are two template instantiations of the same class in two DSOs and that causes an issue, that suggests that such classes are being used in both DSOs.

Going further, I think it would be incorrect for the linker/loader to behave differently: I should be able to provide two different definitions of the hidden class `bar` in separate DSOs and neither they nor their template instantiations should conflict.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101972



More information about the llvm-commits mailing list