ChuanqiXu added a comment.

Great progress!

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

> Note that the failure comes down to:
>
>   template<typename T> concept C = T::f();
>   template<template<C> class P> struct S1{};
>   template<C> struct X{};
>   S1<X> s11;
>
> and requires the -frelaxed-template-template-args flag:
>
>   [ekeane1@scsel-clx-24 build]$  ./bin/clang -cc1 -std=c++20 temp.cpp 
> -frelaxed-template-template-args
>   temp.cpp:5:4: error: template template argument 'X' is more constrained 
> than template template parameter 'P'
>   S1<X> s11;
>      ^
>   temp.cpp:3:29: note: 'P' declared here
>   template <template<C> class P> struct S1{};
>                               ^
>   temp.cpp:4:20: note: 'X' declared here
>   template<C> struct X{};
>                      ^
>   1 error generated.

As far as I could tell, we could omit the diagnostic by deleting 
https://github.com/llvm/llvm-project/blob/bc74bca5363270e987c2e3c263bfaaeb6ceab66f/clang/include/clang/Sema/SemaConcept.h#L45-L53

This change is obsolutely wrong but it shows the bug comes from 
`ParameterMapping` so we could locate 
https://github.com/llvm/llvm-project/blob/bc74bca5363270e987c2e3c263bfaaeb6ceab66f/clang/lib/Sema/SemaConcept.cpp#L723
 further.



================
Comment at: clang/lib/Sema/SemaTemplateInstantiate.cpp:2461
         // substitution)
-        if (SubstTypeConstraint(Inst, TC, TemplateArgs))
+        if (SubstTypeConstraint(Inst, TC, TemplateArgs, false))
           return nullptr;
----------------



================
Comment at: clang/test/Driver/crash-report.cpp:28
+// RUNX: cat %t/crash-report-*.cpp | FileCheck --check-prefix=CHECKSRC %s
+// RUNX: cat %t/crash-report-*.sh | FileCheck --check-prefix=CHECKSH %s
 
----------------
What's the meaning of RUNX?


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

https://reviews.llvm.org/D126907

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

Reply via email to