[llvm-branch-commits] [clang] [clang] fix printing of canonical template template parameters take 2 (PR #93448)

2024-05-28 Thread Matheus Izvekov via llvm-branch-commits
@@ -292,6 +292,14 @@ void TemplateName::Profile(llvm::FoldingSetNodeID &ID) { void TemplateName::print(raw_ostream &OS, const PrintingPolicy &Policy, Qualified Qual) const { + auto handleCanonicalTTP = [](TemplateDecl *TD, raw_ostream &OS) { -

[llvm-branch-commits] [clang] [libcxx] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

2024-05-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93433 >From 2f2aa69d1b1e421214097cb2595910da15a6c6f2 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 25 May 2024 13:57:39 -0300 Subject: [PATCH] [clang] Preserve Qualifiers and type sugar in TemplateNames T

[llvm-branch-commits] [clang] [clang] fix printing of canonical template template parameters take 2 (PR #93448)

2024-05-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93448 >From 62eed81cb51c1e1a150bb4f5aad8628fa178b68c Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 27 May 2024 05:51:18 -0300 Subject: [PATCH] [clang] fix printing of canonical template template parameter

[llvm-branch-commits] [clang] [clang] fix printing of canonical template template parameters take 2 (PR #93448)

2024-05-29 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: Sorry, there were no libcxx or Sema.h changes, it was a GitHub issue, I just rebased a PR stacked below this one. https://github.com/llvm/llvm-project/pull/93448 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org h

[llvm-branch-commits] [clang] [clang] text ast-dumper: dump TemplateName for TST and DTST (PR #93766)

2024-05-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/93766 Implement AST text dumping of the TemplateName for TemplateSpecializationType and DeducedTemplateSpecializationType. >From 4fe380db6671d38af26b80545d551c4930f1e6d5 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov

[llvm-branch-commits] [clang] [clang] text ast-dumper: dump TemplateName for TST and DTST (PR #93766)

2024-05-30 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93766 >From 9193420d850ec65a5095d51e8281378febfb5206 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Thu, 30 May 2024 01:24:53 -0300 Subject: [PATCH] [clang] text ast-dumper: dump TemplateName for TST and DTST I

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-18 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/96023 This finishes the clang implementation of P0522, getting rid of the fallback to the old, pre-P0522 rules. Before this patch, when partial ordering template template parameters, we would perform, in order: * If

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-18 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 03d5720d113ff3ce03694b27d376230d06d7693e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -2513,49 +2545,76 @@ DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams, TemplateDeductionInfo &Info, SmallVectorImpl &Deduced, bool NumberOfArgumentsMustMatch, PackFold PackFold) {

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -2513,49 +2545,76 @@ DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams, TemplateDeductionInfo &Info, SmallVectorImpl &Deduced, bool NumberOfArgumentsMustMatch, PackFold PackFold) {

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -3284,16 +3345,20 @@ DeduceTemplateArguments(Sema &S, T *Partial, if (Inst.isInvalid()) return TemplateDeductionResult::InstantiationDepth; - if (Trap.hasErrorOccurred()) -return TemplateDeductionResult::SubstitutionFailure; - TemplateDeductionResult Result;

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -6369,27 +6451,88 @@ bool Sema::isTemplateTemplateParameterAtLeastAsSpecializedAs( // be inverted between Ps and As. On non-deduced context, matching needs to // happen both ways, according to [temp.arg.template]p3, but this is // currently implemented as a spec

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -6369,27 +6451,88 @@ bool Sema::isTemplateTemplateParameterAtLeastAsSpecializedAs( // be inverted between Ps and As. On non-deduced context, matching needs to // happen both ways, according to [temp.arg.template]p3, but this is // currently implemented as a spec

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
@@ -6369,27 +6451,88 @@ bool Sema::isTemplateTemplateParameterAtLeastAsSpecializedAs( // be inverted between Ps and As. On non-deduced context, matching needs to // happen both ways, according to [temp.arg.template]p3, but this is // currently implemented as a spec

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 7c84cd61f2c1bf7ec30d77aaf6b1a87cccf96d2f Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-06-19 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From dd761ef307502c69dd6fdbf2fa56275f56e8cb6a Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-06-21 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From e5df11098caf4500b6cb3e2de8f9c927b609955a Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-06-21 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: @ldionne I had to adjust the libcxx expectation change. The simple regex won't work, as the error diagnostic is now produced in different source locations. I have changed it so it uses a preprocessor conditional, but that new solution will still break if libcxx-CI is using an

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #94981)

2024-07-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/94981 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #94981)

2024-07-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/94981 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-07-30 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 4fb1c50098372d6b2f1bc50948ffdf56e1a9efff Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-07-31 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 7e9832053a2dab0cae464a087f61378c8f3ab509 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-07-31 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From be948d566e5e7cd1932d3c81c5500ae83f085f7a Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [clang] remove unneeded template deduction canonicalizations (PR #101594)

2024-08-02 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/101594 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] remove unneeded template deduction canonicalizations (PR #101594)

2024-08-02 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/101594 >From 86c6801ad60e867ab95051eb6e279a97aeefa4ce Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Thu, 1 Aug 2024 19:18:52 -0300 Subject: [PATCH] [clang] remove unneeded template deduction canonicalizations

[llvm-branch-commits] [clang] [libcxx] [clang] Reland: Instantiate concepts with sugared template arguments (PR #101782)

2024-08-02 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/101782 Since we don't unique specializations for concepts, we can just instantiate them with the sugared template arguments, at negligible cost. If we don't track their specializations, we can't resugar them later an

[llvm-branch-commits] [clang] [libcxx] [clang] Reland: Instantiate concepts with sugared template arguments (PR #101782)

2024-08-02 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/101782 >From 9919bb4550f266375be19ce2af46735fb451ff86 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sun, 23 Oct 2022 11:37:20 +0200 Subject: [PATCH] [clang] Reland: Instantiate concepts with sugared template a

[llvm-branch-commits] [clang] [clang-tools-extra] [lldb] [clang] Reland: Instantiate alias templates with sugar (PR #101858)

2024-08-03 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/101858 This makes use of the changes introduced in D134604, in order to instantiate alias templates witn a final sugared substitution. This comes at no additional relevant cost. Since we don't track / unique them in

[llvm-branch-commits] [clang] [clang-tools-extra] [lldb] [clang] Reland: Instantiate alias templates with sugar (PR #101858)

2024-08-03 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: @alexfh I can't observe anymore the performance regression you reported on the original phab DR (q2.cc test case). The original reduction doesn't compile anymore starting from clang-18, so I took the same base test and applied it to current libc++, but the memory usage and wal

[llvm-branch-commits] [clang] [clang] CTAD alias: fix the transformation for the require-clause expr (PR #90961)

2024-05-03 Thread Matheus Izvekov via llvm-branch-commits
@@ -2744,31 +2744,155 @@ bool hasDeclaredDeductionGuides(DeclarationName Name, DeclContext *DC) { return false; } +unsigned getTemplateDepth(NamedDecl *TemplateParam) { mizvekov wrote: I think this is potentially misleading, as we already have multiple unr

[llvm-branch-commits] [clang] [clang] CTAD alias: fix the transformation for the require-clause expr (PR #90961)

2024-05-03 Thread Matheus Izvekov via llvm-branch-commits
@@ -2744,31 +2744,155 @@ bool hasDeclaredDeductionGuides(DeclarationName Name, DeclContext *DC) { return false; } +unsigned getTemplateDepth(NamedDecl *TemplateParam) { + if (auto *TTP = dyn_cast(TemplateParam)) +return TTP->getDepth(); + if (auto *TTP = dyn_cast(Temp

[llvm-branch-commits] [clang] [clang] CTAD alias: fix the transformation for the require-clause expr (PR #90961)

2024-05-03 Thread Matheus Izvekov via llvm-branch-commits
@@ -2744,31 +2744,155 @@ bool hasDeclaredDeductionGuides(DeclarationName Name, DeclContext *DC) { return false; } +unsigned getTemplateDepth(NamedDecl *TemplateParam) { mizvekov wrote: ```suggestion unsigned getTemplateParameterDepth(NamedDecl *TemplatePar

[llvm-branch-commits] [clang] Revert "[clang] Revert default behavior change of P0522R0 implementation (#91811)" (PR #91837)

2024-05-10 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/91837 With blocking issues fixed, re-enable relaxed template template argument matching by reverting these commits. This reverts commit 4198aebc96cb0236fc63e29a92d886e6a2e3fedb. This reverts commit 2d5634a4b39d8e549

[llvm-branch-commits] [clang] Revert "[clang] Revert default behavior change of P0522R0 implementation (#91811)" (PR #91837)

2024-05-10 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/91837 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] NFCI: use TemplateArgumentLoc for type-param DefaultArgument (PR #92854)

2024-05-20 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/92854 This is an enabler for a future patch. >From 29f6855012c917040a84b5f1bfc3f6652c82f668 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 20 May 2024 16:30:46 -0300 Subject: [PATCH] [clang] NFCI: use Temp

[llvm-branch-commits] [clang] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #92855)

2024-05-20 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/92855 This solves some ambuguity introduced in P0522 regarding how template template parameters are partially ordered, and should reduce the negative impact of enabling `-frelaxed-template-template-args` by default.

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] NFCI: use TemplateArgumentLoc for type-param DefaultArgument (PR #92854)

2024-05-20 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/92854 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] NFCI: use TemplateArgumentLoc for type-param DefaultArgument (PR #92854)

2024-05-20 Thread Matheus Izvekov via llvm-branch-commits
@@ -10082,7 +10082,9 @@ class Sema final : public SemaBase { bool SubstTemplateArgument(const TemplateArgumentLoc &Input, const MultiLevelTemplateArgumentList &TemplateArgs, - TemplateArgumentLoc &Output); +

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] NFCI: use TemplateArgumentLoc for type-param DefaultArgument (PR #92854)

2024-05-20 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/92854 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] NFCI: use TemplateArgumentLoc for type-param DefaultArgument (PR #92854)

2024-05-21 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: > I don't quite get the justification for this, but also don't see any downside > for it, so I think this is acceptable. It's unfortunate GitHub does not show a PR stack like phab did. This is needed for another patch you already reviewed: https://github.com/llvm/llvm-project/

[llvm-branch-commits] [clang] [clang-tools-extra] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #92855)

2024-05-21 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/92855 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #92855)

2024-05-21 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/92855 >From 73d456c632a1419c39316d38dcdc358b8e4f9636 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 20 May 2024 01:15:03 -0300 Subject: [PATCH] [clang] Implement CWG2398 provisional TTP matching to class t

[llvm-branch-commits] [clang] [clang] add fallback to expr in the template differ when comparing ValueDecl (PR #93266)

2024-05-23 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/93266 None >From e74a7e69381731465efb8332890e0ebdc061fbb1 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Thu, 23 May 2024 23:57:01 -0300 Subject: [PATCH] [clang] add fallback to expr in the template differ when

[llvm-branch-commits] [clang] [clang] add fallback to expr in the template differ when comparing ValueDecl (PR #93266)

2024-05-24 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93266 >From e74a7e69381731465efb8332890e0ebdc061fbb1 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Thu, 23 May 2024 23:57:01 -0300 Subject: [PATCH 1/2] [clang] add fallback to expr in the template differ when

[llvm-branch-commits] [clang] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

2024-05-26 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/93433 This patch improves the preservation of qualifiers and loss of type sugar in TemplateNames. This problem is analogous to https://reviews.llvm.org/D112374 and this patch takes a very similar approach to that pa

[llvm-branch-commits] [clang] [libcxx] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

2024-05-26 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93433 >From 91fa7c94aa5c0936484e75f1cf88df2489b9f587 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 25 May 2024 13:57:39 -0300 Subject: [PATCH] [clang] Preserve Qualifiers and type sugar in TemplateNames T

[llvm-branch-commits] [clang] [libcxx] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

2024-05-27 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/93433 >From 40e3c0fd00a9a3327123d43c6ad6447a14b4e543 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 25 May 2024 13:57:39 -0300 Subject: [PATCH] [clang] Preserve Qualifiers and type sugar in TemplateNames T

[llvm-branch-commits] [clang] [clang] fix printing of canonical template template parameters take 2 (PR #93448)

2024-05-27 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/93448 Since they can also occur as the template name of template specializations, handle them from TemplateName printing instead of TemplateArgument. >From 7876afed3dec889805b2947e61ca10953a5a7456 Mon Sep 17 00:00:00

[llvm-branch-commits] [clang] [libcxx] [clang] Preserve Qualifiers and type sugar in TemplateNames (PR #93433)

2024-05-27 Thread Matheus Izvekov via llvm-branch-commits
@@ -9304,7 +9299,8 @@ TemplateName ASTContext::getAssumedTemplateName(DeclarationName Name) const { TemplateName ASTContext::getQualifiedTemplateName(NestedNameSpecifier *NNS, bool TemplateKeyword,

[llvm-branch-commits] [clang-tools-extra] [clangd] check for synthesized symbols when tracking include locations (PR #75128)

2023-12-11 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/75128 This fixes https://github.com/llvm/llvm-project/issues/75115 In C mode with MSVC compatibility, when the `assert` macro is defined, as a workaround, `static_assert` is implicitly defined as well, if not already

[llvm-branch-commits] [clang-tools-extra] [clangd] check for synthesized symbols when tracking include locations (PR #75128)

2023-12-12 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: > Hi @mizvekov thanks for the fix, but I am not sure if this is at the right > level. The way you're bailing out currently prevents clangd from indexing all > implicit definitions, even if we have a hard-coded mapping for them (based on > the symbol name). > > Also the map you

[llvm-branch-commits] [clang-tools-extra] [clangd] check for synthesized symbols when tracking include locations (PR #75128)

2023-12-12 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/75128 >From 3fb75008987c28c9d63d209f36caaced8b37c4a6 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Wed, 13 Dec 2023 01:44:16 -0300 Subject: [PATCH] [clangd] check for synthesized symbols when tracking include

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-08-28 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 84f988ee7c2d8fc5f777bc98850f6ab126fb3b71 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] release/19.x: Revert "[clang] fix broken canonicalization of DeducedTemplateSpeciatizationType (#95202)" (PR #106516)

2024-08-29 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov approved this pull request. https://github.com/llvm/llvm-project/pull/106516 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [libcxx] [clang] Finish implementation of P0522 (PR #96023)

2024-09-04 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From da2a66a8b7105a1cbfc5bd98c7b41addc6ec543b Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [clang] Finish implementation of P0522 (PR #96023)

2024-09-04 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/96023 >From 958703dfc41c6aa186e5129dc804b532b48ef00e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 17 Jun 2024 21:39:08 -0300 Subject: [PATCH] [clang] Finish implementation of P0522 This finishes the clan

[llvm-branch-commits] [clang] [clang] CWG2398: improve overload resolution backwards compat (PR #107350)

2024-09-04 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/107350 With this change, we discriminate if the primary template and which partial specializations would have participated in overload resolution prior to P0522 changes. We collect those in an initial set. If this s

[llvm-branch-commits] [clang] release/19.x: [Clang][Concepts] Fix the constraint equivalence checking involving parameter packs (#102131) (PR #106043)

2024-09-16 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov approved this pull request. https://github.com/llvm/llvm-project/pull/106043 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] 4ae3353 - [clang] fix concepts crash on substitution failure during normalization

2021-08-03 Thread Matheus Izvekov via llvm-branch-commits
Author: Matheus Izvekov Date: 2021-08-03T12:53:18+02:00 New Revision: 4ae33534bd8c52c4f054bb4676632c37f49f56b2 URL: https://github.com/llvm/llvm-project/commit/4ae33534bd8c52c4f054bb4676632c37f49f56b2 DIFF: https://github.com/llvm/llvm-project/commit/4ae33534bd8c52c4f054bb4676632c37f49f56b2.dif

[llvm-branch-commits] [clang] [clang] CWG2398: improve overload resolution backwards compat (PR #107350)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/107350 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] WIP: Implement TTP 'reversed' pack matching for deduced function template calls. (PR #111457)

2024-10-07 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/111457 Clang previously missed implementing the historical rule https://eel.is/c++draft/temp.arg.template#3.sentence-3 for deduced function template calls. This patch implements this rule, but only on the 'frelaxed-

[llvm-branch-commits] [clang] [clang] WIP: Implement TTP 'reversed' pack matching for deduced function template calls. (PR #111457)

2024-10-07 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/111457 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] release/19.x: [Clang] Remove the special-casing for RequiresExprBodyDecl in BuildResolvedCallExpr() after fd87d765c0 (#111277) (PR #111324)

2024-10-06 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov approved this pull request. https://github.com/llvm/llvm-project/pull/111324 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/111457 >From 1975bae70df78c437d10a361a15aca27f218460e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 5 Oct 2024 21:56:51 -0300 Subject: [PATCH] [clang] Implement TTP 'reversed' pack matching for deduced fu

[llvm-branch-commits] [clang] [clang] CWG2398: improve overload resolution backwards compat (PR #107350)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/107350 >From aa016046df11993dff967eff970530c73ecf849e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Thu, 5 Sep 2024 00:25:40 -0300 Subject: [PATCH] [clang] CWG2398: improve overload resolution backwards compat

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/111457 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/111457 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-09 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/111457 >From 0df57333178d360c441956cc2509f5eca4434c0e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 5 Oct 2024 21:56:51 -0300 Subject: [PATCH] [clang] Implement TTP 'reversed' pack matching for deduced fu

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-10 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/111457 >From 6d20ed898e7e96c0e989b37718294a878d87797c Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 5 Oct 2024 21:56:51 -0300 Subject: [PATCH] [clang] Implement TTP 'reversed' pack matching for deduced fu

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-10 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/111457 >From e48304b91b42f4aeb1940d34b906242e6e46c8a3 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 5 Oct 2024 21:56:51 -0300 Subject: [PATCH] [clang] Implement TTP 'reversed' pack matching for deduced fu

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-10 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/111457 >From 118ca96aeeb8871a932ed48dd72ea03efa7364e4 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sat, 5 Oct 2024 21:56:51 -0300 Subject: [PATCH] [clang] Implement TTP 'reversed' pack matching for deduced fu

[llvm-branch-commits] [clang] [clang] Implement TTP P0522 pack matching for deduced function template calls. (PR #111457)

2024-10-10 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: @zmodem FIY this will fix https://github.com/llvm/llvm-project/pull/96023#issuecomment-2393228464 https://github.com/llvm/llvm-project/pull/111457 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.ll

[llvm-branch-commits] [clang] [lldb] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to StrictPackMatch (PR #125418)

2025-02-04 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/125418 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [lldb] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to StrictPackMatch (PR #125418)

2025-02-04 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: All rebased, it's back to being a god-fearing all around NFC PR :) https://github.com/llvm/llvm-project/pull/125418 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/

[llvm-branch-commits] [clang] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to StrictPackMatch (PR #125418)

2025-02-04 Thread Matheus Izvekov via llvm-branch-commits
@@ -1842,19 +1842,19 @@ class ClassTemplateSpecializationDecl : public CXXRecordDecl, unsigned SpecializationKind : 3; /// Indicate that we have matched a parameter pack with a non pack - /// argument, when the opposite match is also allowed (strict pack match). + /// a

[llvm-branch-commits] [clang] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to StrictPackMatch (PR #125418)

2025-02-04 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/125418 >From f558c5838c48e47b62d3d0a3b5118c96d9ff47ec Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Sun, 2 Feb 2025 13:31:20 -0300 Subject: [PATCH] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to Strict

[llvm-branch-commits] [clang] release/20.x: [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (#121245) (PR #126289)

2025-02-07 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov approved this pull request. https://github.com/llvm/llvm-project/pull/126289 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement instantiation context note for checking template parameters (PR #126088)

2025-02-06 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/126088 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement evaluation context for checking template parameters (PR #126088)

2025-02-06 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: > (Did you mean `Implement *instantiation* context for checking template > parameters`?) Oops, yes of course :) https://github.com/llvm/llvm-project/pull/126088 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org h

[llvm-branch-commits] [clang] [clang] Implement instantiation context for checking template parameters (PR #126088)

2025-02-06 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/126088 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] Implement instantiation context note for checking template parameters (PR #126088)

2025-02-06 Thread Matheus Izvekov via llvm-branch-commits
@@ -637,6 +641,8 @@ namespace cwg431 { // cwg431: 2.8 namespace cwg432 { // cwg432: 3.0 template struct A {}; + // expected-note@-1{{template parameter is declared here}} + // since-cxx11-note@-2 {{template parameter is declared here}} mizvekov wrote:

[llvm-branch-commits] [clang] [clang] NFC: rename MatchedPackOnParmToNonPackOnArg to StrictPackMatch (PR #125418)

2025-02-02 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/125418 This rename follows the proposed wording in P3310R5, which introduces the term 'strict pack match' to refer to the same thing. >From 772973a841ad739172a9f23bc1403924eea4cba8 Mon Sep 17 00:00:00 2001 From: Math

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-24 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/124386 Converted template arguments need to be converted again, if the corresponding template parameter changed, as different conversions might apply in that case. >From 9b174f4505eaf19e0ccfb1ec905c8206bb575d4b Mon S

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-26 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/124386 >From 7b4befe667df321511fc75ea3a4ef8ab3067ced9 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 24 Jan 2025 19:25:38 -0300 Subject: [PATCH] [clang] fix template argument conversion Converted template

[llvm-branch-commits] [clang] [clang] fix nondeduced mismatch with nullptr template arguments (PR #124498)

2025-01-26 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/124498 In deduction, when comparing template arguments of value kind, we should check if the value matches. Values of different types can still match. For example, `short(0)` matches `int(0)`. Values of nullptr kind

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
@@ -5252,63 +5253,89 @@ bool Sema::CheckTemplateArgument( return true; } -switch (Arg.getArgument().getKind()) { -case TemplateArgument::Null: - llvm_unreachable("Should never see a NULL template argument here"); - -case TemplateArgument::Expressio

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
@@ -5252,63 +5253,89 @@ bool Sema::CheckTemplateArgument( return true; } -switch (Arg.getArgument().getKind()) { -case TemplateArgument::Null: - llvm_unreachable("Should never see a NULL template argument here"); - -case TemplateArgument::Expressio

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
@@ -5252,63 +5253,89 @@ bool Sema::CheckTemplateArgument( return true; } -switch (Arg.getArgument().getKind()) { -case TemplateArgument::Null: - llvm_unreachable("Should never see a NULL template argument here"); - -case TemplateArgument::Expressio

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/124386 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/124386 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/124386 >From b46ef4d836d53ace49eada1da0308de8dc43bf0a Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 24 Jan 2025 19:25:38 -0300 Subject: [PATCH] [clang] fix template argument conversion Converted template

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-27 Thread Matheus Izvekov via llvm-branch-commits
@@ -5252,63 +5253,73 @@ bool Sema::CheckTemplateArgument( return true; } -switch (Arg.getArgument().getKind()) { -case TemplateArgument::Null: - llvm_unreachable("Should never see a NULL template argument here"); - -case TemplateArgument::Expressio

[llvm-branch-commits] [clang] [clang] NFC: cleanup check template argument (PR #124668)

2025-01-27 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov created https://github.com/llvm/llvm-project/pull/124668 None >From 4387c95a4bd6ccfc74e95683da0829fde41560c1 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 27 Jan 2025 19:18:27 -0300 Subject: [PATCH] [clang] NFC: cleanup check template argument --- clan

[llvm-branch-commits] [clang] [clang] NFC: cleanup check template argument (PR #124668)

2025-01-28 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/124668 >From db745bb131582139f29d471636cebeb78f25fb1c Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 27 Jan 2025 19:18:27 -0300 Subject: [PATCH] [clang] NFC: cleanup check template argument --- clang/incl

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov edited https://github.com/llvm/llvm-project/pull/124386 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/124386 >From 0f821a22157df87237529a1bde777e82072fe473 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 24 Jan 2025 19:25:38 -0300 Subject: [PATCH] [clang] fix template argument conversion Converted template

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/124386 >From 4f4e65818c2fd85814efc63f779026853820ad76 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 24 Jan 2025 19:25:38 -0300 Subject: [PATCH] [clang] fix template argument conversion Converted template

[llvm-branch-commits] [clang] [clang] fix template argument conversion (PR #124386)

2025-01-25 Thread Matheus Izvekov via llvm-branch-commits
mizvekov wrote: I just pushed changes to fix pointer NTTP test cases. https://github.com/llvm/llvm-project/pull/124386 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-c

[llvm-branch-commits] [clang] [clang-tools-extra] [lldb] [clang] Template Specialization Resugaring - TypeDecl (PR #132441)

2025-03-21 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/132441 >From 4571fada1ea055a845bf5c4eb3d1a20904f768c6 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Mon, 30 May 2022 01:46:31 +0200 Subject: [PATCH] [clang] Template Specialization Resugaring - TypeDecl This i

[llvm-branch-commits] [clang] [clang] resugar decltype of DeclRefExpr (PR #132447)

2025-03-21 Thread Matheus Izvekov via llvm-branch-commits
https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/132447 >From 29cc63d882332f4c476388a8817def7de564ad4b Mon Sep 17 00:00:00 2001 From: Matheus Izvekov Date: Fri, 14 Mar 2025 19:41:38 -0300 Subject: [PATCH] [clang] resugar decltype of DeclRefExpr This keeps around th

  1   2   3   >