erichkeane added a comment. In D120255#3352920 <https://reviews.llvm.org/D120255#3352920>, @royjacobson wrote:
> In D120255#3352755 <https://reviews.llvm.org/D120255#3352755>, @erichkeane > wrote: > >> Hmm... doing FileCheck in a Sema test is highly irregular. I would expect >> us to be able to test this in the type system in some way. Something like >> `A<3>::f()` is invalid (see -verify). >> >> Also, please add all the context (as requested above!) with the -U9999 stuff. > > I couldn't think of a way to "internally" know whether some function got > instantiated. I also saw some other instantiation tests do it this way > (SemaTemplate/instantiate-friend-function.cpp, > SemaTemplate/inject-templated-friend.cpp). But I'm really not familiar enough > with the code structure to have an opinion about this.. > > Also, as I wrote in the description - function explicit instantiation doesn't > check constraints either but it's a different code path, so, `A<3>::f()` > currently fails for the wrong reason. It will just try to instantiate the > first function it finds and then fail the static assert and not the > constraint. > (Or worse, fail the internal assert in `SemaTemplate.cpp:10161` if clang was > built with assertions). The only other idea I have (other than finding a static-assert of some sort) is to do an AST level test instead, so use `-ast-dump` and check that it appears/not appears in the AST instead? That way at least the ordering will be more reliable. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D120255/new/ https://reviews.llvm.org/D120255 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits