[clang] [clang] deprecate frelaxed-template-template-args, make it on by default (PR #89807)

Yaxun Liu via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 25 05:52:46 PDT 2024


yxsamliu wrote:

> This patch will finally allow us to mark C++17 support in clang as complete.
> 
> This is a continuation of the review process from an [old PR in phab](https://reviews.llvm.org/D109496).
> 
> Recap: The original patch from phab initially contained no workarounds / provisional resolutions for core defects, Though testing by @yxsamliu [here](https://reviews.llvm.org/D109496#3101839) showed problems with some important libraries used in GPU applications, and we ended up reverting it.
> 
> In order to implement this as a DR and avoid breaking reasonable code that worked before P0522, this patch implements a provisional resolution for CWG2398: When deducing template template parameters against each other, and the argument side names a template specialization, instead of just deducing A, we deduce a synthesized template template parameter based on A, but with it's parameters using the template specialization's arguments as defaults.
> 
> This does not fix all possible regressions introduced by P0522, but it does seem to match in effect an undocumented workaround implemented by GCC. Though it's unconfirmed how closely we match, as I have not received official word regarding this yet. Fixing other regressions will require more extensive changes, some of them would require possibly controversial wording changes, and so is left for future work.
> 
> The driver flag is deprecated with a warning, and it will not have any effect.
> 
> @yxsamliu Can you confirm this version avoids any breakages in your setup?
> 
> CC: @yuanfang-chen @MaskRay @chandlerc @jicama @lichray @AaronBallman

I confirm this version avoids breakages in rocThrust which were reported before. Thanks.

https://github.com/llvm/llvm-project/pull/89807


More information about the cfe-commits mailing list