[PATCH] D126907: Deferred Concept Instantiation Implementation Take 2

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 24 10:34:26 PDT 2022


erichkeane added a comment.

In D126907#3740249 <https://reviews.llvm.org/D126907#3740249>, @erichkeane wrote:

> FWIW, while I wasn't able to reproduce the problem that @Mordante reported, I found that the test suite as given has a large number of asserts in debug mode while trying to compare parameter-mappings during constraint normalization(assert is `clang-15: /iusers/ekeane1/workspaces/delayed-concepts/clang/lib/AST/ASTContext.cpp:4753: clang::QualType clang::ASTContext::getSubstTemplateTypeParmType(const clang::TemplateTypeParmType*, clang::QualType, llvm::Optional<unsigned int>) const: Assertion ```Replacement.isCanonical() && "replacement types must always be canonical"' failed.```).`
>
> One Reproducer is:
>
>   #pragma clang module import std.array
>   template<std::input_or_output_iterator>
>   struct iter_value_or_void { using type = void; };
>     
>   template<std::input_iterator I>
>   struct iter_value_or_void<I> {
>       using type = std::iter_value_t<I>;
>
> BUT debugging seems to show a lot of 'imported' symbols that I'm not particularly sure how they work, so I suspect they are coming from the clang-module-import.
>
> So I'm going to have to try to figure out what is going on here with the clang modules.

Fixing the assert was pretty easy, and fixing it revealed the same 8 failures from the buildbot above.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126907



More information about the cfe-commits mailing list