ABataev added a comment. In D71241#1782963 <https://reviews.llvm.org/D71241#1782963>, @jdoerfert wrote:
> In D71241#1782668 <https://reviews.llvm.org/D71241#1782668>, @ABataev wrote: > > > In D71241#1782650 <https://reviews.llvm.org/D71241#1782650>, @jdoerfert > > wrote: > > > > > While we talk a lot about what you think is bad about this solution it > > > seems we ignore the problems in the current one. Let me summarize a few: > > > > > > - Take https://godbolt.org/z/XCjQUA where the wrong function is called in > > > the target region (because the "hack" to inject code in the wrong > > > definition is not applicable). > > > > > > No time for it, just short answers. No definition for the variant - no > > definition for the base. > > > This is perfectly valid code and with the current scheme impossible to > support. > > >> - Take https://godbolt.org/z/Yi9Lht where the wrong function is called on > >> the host (no there is *no* alias hidden) > > > > GlobalAlias can be emitted only for definitions. No definition for variant > > - no aliasing. > > Exactly, as above, this is a problem. > > >> - Take https://godbolt.org/z/2evvtN which shows that the alias solution is > >> incompatible with linking. > > > > Undefined behavior according to the standard. > > I don't think so. If you do, please reference the rules this would violate. Page 59, 25-27. > > >>> - Take the `construct` context selector and the `begin/end declare variant` >>> construct which both cannot be implemented with aliases. > > This can also not be implemented in the alias scheme. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71241/new/ https://reviews.llvm.org/D71241 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits