[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: @sam-mccall @bgra8 @ericniebler I believe this MR should fix your issues: https://github.com/llvm/llvm-project/pull/91833 Can you double check? You might consider applying https://github.com/llvm/llvm-project/pull/91837, since that is stacked on that and will revert the

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread via cfe-commits
cor3ntin wrote: We operated a partial revert here https://github.com/llvm/llvm-project/pull/91811 That should fix the issues in trunk while we investigate the regression more thoroughly https://github.com/llvm/llvm-project/pull/89807 ___

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: By the way, creduce/cvise won't help much here unless the interestingness test accounts for 'works on GCC'. Otherwise, It'd be trivial to conjure some snippet of code that works before P0522, but breaks afterward as intended. https://github.com/llvm/llvm-project/pull/89807

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Erich Keane via cfe-commits
erichkeane wrote: >I am repeating myself here, but the crash happens after a bunch of errors: >it's not significant, we have evidence this sort of crash is associated with >error recovery. I missed this, thanks for clarifying (godbolt link scrolled and all I saw was warnings!). A

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: I am repeating myself here, but the crash happens after a bunch of errors: it's not significant, we have evidence this sort of crash is associated with error recovery. This patch implements a standard mandated breaking change, and this 'stdexec' is user code. Without evidence

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Vlad Serebrennikov via cfe-commits
Endilll wrote: To be clear, we're asking for a reproducer with normal names first and foremost. I'm thankful for @bgra8 help running `creduce` over what they had, but we wouldn't had this particular conversation if they also provided full original reproducer that we could run `creduce` on

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Erich Keane via cfe-commits
erichkeane wrote: > Can we start with either reverting the whole commit or at least removing the > flag deprecation and returning the old default > (`-fno-relaxed-template-template-args`)? I think, @bgra8 and @sam-mccall can > try to provide a reduced test case without renaming next week

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Vlad Serebrennikov via cfe-commits
Endilll wrote: > but not having a convenient reproducer is not a good reason to keep the ToT > Clang in a broken state As someone who worked on a different reduction of Sam's reproducer yesterday, and spent whopping 8 hours of work time to get

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread via cfe-commits
alexfh wrote: Can we start with either reverting the whole commit or at least removing the flag deprecation and returning the old default (`-fno-relaxed-template-template-args`)? I think, @bgra8 and @sam-mccall can try to provide a reduced test case without renaming next week (it's sort of a

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Erich Keane via cfe-commits
erichkeane wrote: > If you're using `creduce`, this set of arguments disables all renaming > passes: `--remove-pass pass_clang rename-fun --remove-pass pass_clang > rename-param --remove-pass pass_clang rename-var --remove-pass pass_clang > rename-class --remove-pass pass_clang

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Erich Keane via cfe-commits
erichkeane wrote: I agree with @sam-mccall : I think "crashes on some widely-used real-world code" means we should revert `B` until we can make that case work. Yes, it is a pre-existing issue, however it means that we aren't "ready" to change the flag default. However, we DEFINITELY need a

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread via cfe-commits
cor3ntin wrote: Having a clean reduction to decide whether the code is supposed to compile or not is indeed a good first step. Clang 18 was not conforming and people might have relied on it. There is a  -fno-relaxed-template-template-args that can be used as a workaround for now

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Vlad Serebrennikov via cfe-commits
Endilll wrote: It'd also be nice if someone can share a reproducer that crashes on trunk but not on 18.1.0 without names reduced to 1-2 letters. Definitely would speed up the work towards the fix. https://github.com/llvm/llvm-project/pull/89807 ___

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread via cfe-commits
cor3ntin wrote: I don't think there is motivation to revert anything at this point (we should avoid churn), however I do agree this is a regression that we should fix quickly @mizvekov. (Even if it's not a new bug, it is a newly exposed bug, the pain for users is the same) If the fix takes

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-10 Thread Sam McCall via cfe-commits
sam-mccall wrote: This commit did three things: A) changed the implementation, B) changed the flag default, and C) deprecated the flag. Since clang now crashes on widely-used, real-world code, can we at least revert C, and ideally B until the crashes are fixed? (It would also have been

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-09 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: > @mizvekov I have a [reduced test > case](https://github.com/llvm/llvm-project/files/15261978/repro.zip) for the > crash @sam-mccall reported. > > Clang does not crash before but crashes at this revision. Thanks. I confirm it crashes, but it crashes on clang 18.1.4 as well,

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-09 Thread Vlad Serebrennikov via cfe-commits
Endilll wrote: If you're using `creduce`, this set of arguments disables all renaming passes: `--remove-pass pass_clang rename-fun --remove-pass pass_clang rename-param --remove-pass pass_clang rename-var --remove-pass pass_clang rename-class --remove-pass pass_clang rename-cxx-method

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-09 Thread Vlad Serebrennikov via cfe-commits
Endilll wrote: @bgra8 Your reduction has names replaced by the tool. This is quite hard to work with. Can you reduce again, but with renaming passes disabled? I uploaded your reproducer to CE: https://godbolt.org/z/9PK1oPoPW https://github.com/llvm/llvm-project/pull/89807

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-09 Thread via cfe-commits
bgra8 wrote: > > Here's a preprocessed file: > > [repro.zip](https://github.com/llvm/llvm-project/files/15250584/repro.zip) > > I tried to reduce, and got rid of most of the test code and some of the > > stdexec code, but there's still a lot left. I hit the end of my timebox on > > that.

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-09 Thread via cfe-commits
eaeltsin wrote: > > Thanks, guarding the second specialization with the feature test macro > > works. > > I will try to reduce the test case tomorrow, if you still need this. > > Thanks. If it's not too much work for you, that would be great. Otherwise, I > think a pretty good guess can be

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-08 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: > Here's a preprocessed file: > [repro.zip](https://github.com/llvm/llvm-project/files/15250584/repro.zip) > > I tried to reduce, and got rid of most of the test code and some of the > stdexec code, but there's still a lot left. I hit the end of my timebox on > that. Maybe

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-08 Thread Sam McCall via cfe-commits
sam-mccall wrote: Here's a preprocessed file: [repro.zip](https://github.com/llvm/llvm-project/files/15250584/repro.zip) I tried to reduce, and got rid of most of the test code and some of the stdexec code, but there's still a lot left. I hit the end of my timebox on that. Maybe creduce can

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-08 Thread via cfe-commits
cor3ntin wrote: @sam-mccall Thanks! do you have a reduction? or at least a preprocessed source file we could reduce? https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-08 Thread Sam McCall via cfe-commits
sam-mccall wrote: This patch introduced a crash on code that clang previously accepted (I'm not sure whether the code is correct). The code is https://github.com/nvidia/stdexec/tree/467f4a68ee04f3bb4c35e7a5dd13a3419da160cb, building `test/stdexec/algos/adaptors/test_stopped_as_optional.cpp`

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-07 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: > Thanks, guarding the second specialization with the feature test macro works. > > > > I will try to reduce the test case tomorrow, if you still need this. > > Thanks. If it's not too much work for you, that would be great. Otherwise, I think a pretty good guess can be

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-07 Thread via cfe-commits
eaeltsin wrote: Thanks, guarding the second specialization with the feature test macro works. I will try to reduce the test case tomorrow, if you still need this. https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-07 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: Oh I see the code already includes workaround for GCC vs non-GCC. It's possible in this case you may replace the workaround with a check for the feature testing macro. But if this is a new ambiguity not covered by any of the cases I am tracking, it could still be worthwhile

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-07 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: > Hi, is there a way to make a compile-time check for this feature? Yes, this is exposed by a standard feature testing macro: https://en.cppreference.com/w/cpp/feature_test#cpp_template_template_args > > Looking at > Thanks for reporting this. A few questions: * Does

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-07 Thread via cfe-commits
eaeltsin wrote: Hi, is there a way to make a compile-time check for this feature? Looking at 1. https://github.com/xtensor-stack/xtensor/blob/master/include/xtensor/xutils.hpp#L1029 2. https://github.com/xtensor-stack/xtensor/blob/master/include/xtensor/xstorage.hpp#L1415 After this commit,

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-02 Thread via cfe-commits
@@ -1133,8 +1133,8 @@ C++17 implementation status Matching template template parameters to compatible arguments - https://wg21.link/p0522r0;>P0522R0 - Partial (10) + https://wg21.link/p0522r0;>P0522R0 (DR) + Clang 19 (10)

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-05-01 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov closed https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-30 Thread via cfe-commits
https://github.com/cor3ntin approved this pull request. I'm reasonably convinced the remaining issues are somewhat orthogonal and can be addressed separately. I think we should move forward with this (and see if it sticks) but please give @erichkeane @zygoloid @shafik a few days in case they

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-30 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/89807 >From 1756044e71d756f7102f962d0298627ede27871c Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Tue, 9 Apr 2024 01:14:28 -0300 Subject: [PATCH] [clang] Enable C++17 relaxed template template argument

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-27 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-27 Thread Matheus Izvekov via cfe-commits
mizvekov wrote: > @mizvekov We have a bunch of related issues, could you look at them > https://github.com/llvm/llvm-project/issues?q=is%3Aissue+is%3Aopen+%22-frelaxed-template-template-args%22 > ? Removed a bunch of duplicates. 4 issues remaining: 1) #36505 Is the issue we are fixing in

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-27 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/89807 >From 4ee58efa0f154b531dcc674b6f4fe084182aa803 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Tue, 9 Apr 2024 01:14:28 -0300 Subject: [PATCH] [clang] Enable C++17 relaxed template template argument

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
@@ -507,10 +507,62 @@ static TemplateDeductionResult DeduceNonTypeTemplateArgument( S, TemplateParams, NTTP, DeducedTemplateArgument(New), T, Info, Deduced); } +static NamedDecl *DeduceTemplateArguments(Sema , NamedDecl *A, +

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread via cfe-commits
cor3ntin wrote: In particular #49185, #63281 and #62529 seem worth looking into https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
@@ -507,10 +507,62 @@ static TemplateDeductionResult DeduceNonTypeTemplateArgument( S, TemplateParams, NTTP, DeducedTemplateArgument(New), T, Info, Deduced); } +static NamedDecl *DeduceTemplateArguments(Sema , NamedDecl *A, +

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread via cfe-commits
cor3ntin wrote: @mizvekov We have a bunch of related issues, could you look at them https://github.com/llvm/llvm-project/issues?q=is%3Aissue+is%3Aopen+%22-frelaxed-template-template-args%22 ? (and add tests + "Fixes #` to the commit message, as well as mentioning all the fixed issues in

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread via cfe-commits
https://github.com/cor3ntin edited https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread via cfe-commits
@@ -507,10 +507,62 @@ static TemplateDeductionResult DeduceNonTypeTemplateArgument( S, TemplateParams, NTTP, DeducedTemplateArgument(New), T, Info, Deduced); } +static NamedDecl *DeduceTemplateArguments(Sema , NamedDecl *A, +

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread via cfe-commits
@@ -507,10 +507,62 @@ static TemplateDeductionResult DeduceNonTypeTemplateArgument( S, TemplateParams, NTTP, DeducedTemplateArgument(New), T, Info, Deduced); } +static NamedDecl *DeduceTemplateArguments(Sema , NamedDecl *A, +

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
https://github.com/Endilll edited https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -fno-relaxed-template-template-args -verify=expected,old Endilll wrote: > Since the core

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -fno-relaxed-template-template-args -verify=expected,old mizvekov wrote: Thanks. Since

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -fno-relaxed-template-template-args -verify=expected,old Endilll wrote: Given that you're

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov dismissed https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/89807 >From 43f813d0a1a87b6cad9b859237489778f4f2945f Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Tue, 9 Apr 2024 01:14:28 -0300 Subject: [PATCH] [clang] Enable C++17 relaxed template template argument

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new mizvekov wrote: While it's true this is a DR, I just don't think for this particular case it's worth the cost of testing every single

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -fno-relaxed-template-template-args -verify=expected,old mizvekov wrote: Okay, I think I

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new Endilll wrote: Why only C++23 is tested? DR tests should test all language modes. https://github.com/llvm/llvm-project/pull/89807

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
https://github.com/Endilll edited https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
@@ -0,0 +1,115 @@ +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -verify=expected,new +// RUN: %clang_cc1 %s -fsyntax-only -std=c++23 -fno-relaxed-template-template-args -verify=expected,old Endilll wrote: We don't test

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Vlad Serebrennikov via cfe-commits
https://github.com/Endilll requested changes to this pull request. https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Enable C++17 relaxed template template argument matching by default (PR #89807)

2024-04-26 Thread Matheus Izvekov via cfe-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/89807 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits