[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-26 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @AaronBallman @cor3ntin @mizvekov So, I've made improvements to our implementation of `isTemplateArgumentList` that allow us to issue a warning instead of an error for most of the cases where applying the DR breaks existing code: ```cpp template struct A { int x; }; template

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-26 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > I am still concerned about the double error on the `t.A<1 < 4>::x` example. The ideal outcome would be to turn the second error into a note. How feasible to fix you think that is? That's trivial to fix, just need to add a note variant of the "missing template" diagnostic.

[clang] [Clang][Sema] Make UnresolvedLookupExprs in class scope explicit specializations instantiation dependent (PR #100392)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/100392 >From c4f8a620a2a4692c9fa27b41f7e86c8cb042e533 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 24 Jul 2024 10:15:47 -0400 Subject: [PATCH] [Clang][Sema] Make UnresolvedLookupExprs in class scope

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
@@ -767,6 +757,7 @@ bool Sema::BuildCXXNestedNameSpecifier(Scope *S, NestedNameSpecInfo &IdInfo, else Diag(IdInfo.IdentifierLoc, diag::err_undeclared_var_use) << IdInfo.Identifier; +#endif sdkrystian wrote: Yeah, these changes shouldn't really b

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 037fb12412e9b3787e91d0a8ca826e098eab4e85 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/7] [Clang][Parse] Fix ambiguity with nested-name-specif

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 037fb12412e9b3787e91d0a8ca826e098eab4e85 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/8] [Clang][Parse] Fix ambiguity with nested-name-specif

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 691b0d3b23aa89af08ff6b1f4e09ff62c4b36ef6 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/8] [Clang][Parse] Fix ambiguity with nested-name-specif

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 496e0cf24b07622bd9354297c20091c2057a55c6 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/8] [Clang][Parse] Fix ambiguity with nested-name-specif

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: I think this is ready to merge. I have [a branch](https://github.com/sdkrystian/llvm-project/tree/perf/backtrack-raii) which fully implements annotated/unannotated preprocessor backtrack using RAII objects, but I think this is beyond the scope of this PR. https://github.com/

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/96364 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: I've further improved `isTemplateArgumentList` so we only consider `<` as the start of a potential template-argument-list if it follows an _identifier_ or the name in an _operator-function-id_/_literal-operator-id_ when trying to find the closing `>`. Also, explicit casts (a

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/100425 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Also added support for names prefixed with the `template` keyword. https://github.com/llvm/llvm-project/pull/100425 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: With these changes, we can now issue warnings for the missing `template` keyword in the _vast_ majority of cases: ```cpp template struct A { int x; }; template struct B { int x; }; template struct C { int x; }; template struct D { int x; }; template constexpr inline int V =

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: With these changes, we can now issue warnings for the missing `template` keyword in the _vast_ majority of cases: ```cpp template struct A { int x; }; template struct B { int x; }; template struct C { int x; }; template struct D { int x; }; template constexpr inline int V =

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
@@ -1779,6 +1779,42 @@ void Parser::checkPotentialAngleBracket(ExprResult &PotentialTemplateName) { Priority); } +bool Parser::isMissingTemplateKeywordBeforeScope(bool AnnotateInvalid) { + assert(Tok.is(tok::coloncolon)); + Sema::DisableTypoCorrectionRAI

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/100425 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-31 Thread Krystian Stasiowski via cfe-commits
@@ -1779,6 +1779,42 @@ void Parser::checkPotentialAngleBracket(ExprResult &PotentialTemplateName) { Priority); } +bool Parser::isMissingTemplateKeywordBeforeScope(bool AnnotateInvalid) { + assert(Tok.is(tok::coloncolon)); + Sema::DisableTypoCorrectionRAI

[clang] [libcxx] Reapply "[Clang] Implement resolution for CWG1835 (#92957, #98547)" (PR #100425)

2024-07-31 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/100425 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-16 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin Well, if the alternative is not implementing the resolution at all I'll look into the feasibility of identifying missing `template` keywords in the non-type template parameter case. If I can get that working, I think it's pretty safe to reland this patch. Also, I r

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-17 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 0d0a1e242db6a117ffb37ab4ce3d72e6adf26a2e Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/4] [Clang][Parse] Fix ambiguity with nested-name-specif

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-19 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: I have a [new branch](https://github.com/sdkrystian/llvm-project/tree/reapply-cwg-1835-again) ready where: - We only apply the resolution to CWG1835 in C++23 and later, and - We issue a diagnostic when its application results in a missing template keyword that breaks whatever

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-19 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > Another option would be to apply the resolution to all modes, but recover and > issue a warning instead of an error. How feasible would that be? @mizvekov Without unannotated tentative parsing (to be _properly_ introduced by #96364), issuing a warning is infeasible. Either

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-19 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > > @mizvekov Without unannotated tentative parsing (to be _properly_ > > introduced by #96364), issuing a warning is infeasible. Either way, by the > > time we detect the error we could be who knows how deep into the second > > operand of a `>` operator. > > So when we are

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > > I'm also seeing a hard "missing 'template' keyword prior to dependent > > template name" error when building the 510.parest_r benchmark from SPEC CPU > > 2017 > > Hitting this same error compiling the ares emulator on 19. Could either of you provide an example @KyunLFA @

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > Independent of the other issues, it looks like this also re-introduces #98878 @nico #98878 still occurs without this patch applied: ```cpp struct A { void f(); }; template int g(T t) { using U = A; // clang 18.1: 'warning: unused type alias 'U'' t.U::f(); } ```

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > > We already do that :) the problem is when what follows `A` _doesn't_ > > unambiguously look like a template argument list: > > Sure, but before CWG1835, we would perform the lookup anyway and treat the > `<0>` as a template argument list, even if it isn't unambiguously a

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @mizvekov Consider a slightly altered version of the motivating example [in the DR](https://cplusplus.github.io/CWG/issues/1835.html): ```cpp template void end(); template bool Foo(T it0, T it1) { return it0->end < it1->end || it0->end > it1->end; } ``` `< it1->end || it0

[clang] [Clang][AST] Don't use canonical type when checking dependence in Type::isOverloadable (PR #98563)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/98563 >From 5cefddec13ca2bafb58a6f714fd2bef435166c8d Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 11 Jul 2024 18:28:50 -0400 Subject: [PATCH 1/2] [Clang][AST] Don't use canonical type when checking

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: [Ping](https://github.com/llvm/llvm-project/pull/98547#issuecomment-2240040530) @cor3ntin @AaronBallman. https://github.com/llvm/llvm-project/pull/98547 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/

[clang] [Clang][AST] Don't use canonical type when checking dependence in Type::isOverloadable (PR #98563)

2024-07-22 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/98563 >From 5cefddec13ca2bafb58a6f714fd2bef435166c8d Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 11 Jul 2024 18:28:50 -0400 Subject: [PATCH 1/2] [Clang][AST] Don't use canonical type when checking

[clang] [clang-tools-extra] [Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base clas

2024-04-25 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/84050 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Fix warnings after #84050 (PR #90104)

2024-04-25 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/90104 None >From 3999d7bab286fd3228254700514695610c1a3bee Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 15:03:59 -0400 Subject: [PATCH] [Clang][Sema] Fix warnings after #84050 --- clan

[clang] [Clang][Sema] Fix warnings after #84050 (PR #90104)

2024-04-25 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/90104 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base clas

2024-04-25 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @pranavk @ilovepi I have a potential fix ready... give me a few to test some edge cases https://github.com/llvm/llvm-project/pull/84050 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/l

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-25 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/90152 Reapplies #84050, addressing a bug which cases a crash when an expression with the type of the current instantiation is used as the _postfix-expression_ in a class member access expression (arrow form). >Fro

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-25 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Will add tests tomorrow... https://github.com/llvm/llvm-project/pull/90152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 6ea7f9d476910681ad01e2fe4525fb4d2c556c6f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/2] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 6ea7f9d476910681ad01e2fe4525fb4d2c556c6f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/2] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 6ea7f9d476910681ad01e2fe4525fb4d2c556c6f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/2] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 6ea7f9d476910681ad01e2fe4525fb4d2c556c6f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/4] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 6ea7f9d476910681ad01e2fe4525fb4d2c556c6f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/4] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 99d48cf8ae4987eb747f3baf128265dadb7d2038 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/2] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @erichkeane I placed all the new changes into a [single commit](https://github.com/llvm/llvm-project/pull/90152/commits/b8fda8106405eed0c234802fff8eecde53f2562e) https://github.com/llvm/llvm-project/pull/90152 ___ cfe-commits mailing

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-26 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Tests have already been added :) @erichkeane https://github.com/llvm/llvm-project/pull/90152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Propagate 'SystemDrive' environment variable for unit tests (PR #90478)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/90478 On windows, running unit tests by directly invoking `llvm-lit.py` (e.g. `python3 llvm-lit.py clang/test/Unit`) will (at least on my system) create a folder named `%SystemDrive%` in the working directory. This

[clang] [Clang] Propagate 'SystemDrive' environment variable for unit tests (PR #90478)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
@@ -32,6 +32,8 @@ if "HOME" in os.environ: config.environment["HOME"] = os.environ["HOME"] +if "SystemDrive" in os.environ: +config.environment["SystemDrive"] = os.environ["SystemDrive"] sdkrystian wrote: Sure https://github.com/llvm/llvm-project/pul

[clang] [Clang] Propagate 'SystemDrive' environment variable for unit tests (PR #90478)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90478 >From b52984893c1f83963f90c4784e17f4cf2243e046 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 10:01:14 -0400 Subject: [PATCH 1/2] [Clang] Propagate 'SystemDrive' environment variable

[clang] [Clang] Propagate 'SystemDrive' environment variable for unit tests (PR #90478)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin Updated https://github.com/llvm/llvm-project/pull/90478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Propagate 'SystemDrive' environment variable for unit tests (PR #90478)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/90478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Earlier type checking for builtin unary operators (PR #90500)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/90500 Currently, clang postpones all semantic analysis of unary operators with operands of pointer/pointer to member/array/function type until instantiation whenever that type is dependent (e.g. `T*` where `T` is a

[clang] [Clang][Sema] Earlier type checking for builtin unary operators (PR #90500)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90500 >From 6a2d3719508fbd765a97e81688ae06996e7daf21 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 08:17:21 -0400 Subject: [PATCH] [Clang][Sema] Earlier type checking for builtin unary o

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/90517 According to [[class.mem.general] p8](http://eel.is/c++draft/class.mem.general#8): > A complete-class context of a class (template) is a > - function body, > - default argument, > - default template argument,

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Note: This still needs a release note + test updates https://github.com/llvm/llvm-project/pull/90517 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-29 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: This actually requires a little more work... (the delayed exception specification parsing code seems to only expect `CXXMethodDecl`s). I'll take care of that tomorrow. https://github.com/llvm/llvm-project/pull/90517 ___ cfe-commits

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From 3f5feb2b17c06f6e001e9324e90eef07fd720539 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/2] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From 3f5feb2b17c06f6e001e9324e90eef07fd720539 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/2] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From 3f5feb2b17c06f6e001e9324e90eef07fd720539 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/3] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/90517 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From eece4c22a0431ce64d159bf15218c1dfc1771c5f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/3] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From eece4c22a0431ce64d159bf15218c1dfc1771c5f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/3] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From eece4c22a0431ce64d159bf15218c1dfc1771c5f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/4] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: PR updated with full implementation, tests, and release note https://github.com/llvm/llvm-project/pull/90517 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From eece4c22a0431ce64d159bf15218c1dfc1771c5f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/4] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [lldb] [llvm] [AArch64][TargetParser] autogen ArchExtKind enum - renaming (PR #90320)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @tmatheson-arm This breaks builds without the `AArch64` target enabled (e.g. `LLVM_TARGETS_TO_BUILD=X86` ) https://github.com/llvm/llvm-project/pull/90320 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
@@ -4101,8 +4101,8 @@ class Sema final : public SemaBase { /// (or member function template). The exception-specification was parsed /// after the method itself was declared. void actOnDelayedExceptionSpecification( - Decl *Method, ExceptionSpecificationType EST, -

[clang] [Clang][Sema][Parse] Delay parsing of noexcept-specifiers in friend function declarations (PR #90517)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90517 >From b942879801617a9642c3298bafaa6e21f22f42a7 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Mon, 29 Apr 2024 15:34:40 -0400 Subject: [PATCH 1/5] [Clang][Parse] Delay parsing of noexcept-specifiers

[clang] [clang-tools-extra] Reapply "[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent

2024-04-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/90152 >From 2d613e80a59d69a263eaa713d080b97c307fe91b Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 25 Apr 2024 14:50:53 -0400 Subject: [PATCH 1/2] Reapply "[Clang][Sema] Diagnose class member access

[clang] [clang-tools-extra] [Clang] Unify interface for accessing template arguments as written for class/variable template specializations (PR #81642)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Ping @AaronBallman https://github.com/llvm/llvm-project/pull/81642 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [Clang] Unify interface for accessing template arguments as written for class/variable template specializations (PR #81642)

2024-04-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: I'd like someone to review the AST matcher changes (the code owner listed in `CodeOwners.rst` appears to be inactive). https://github.com/llvm/llvm-project/pull/81642 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://li

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-08-26 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin What's the deadline? https://github.com/llvm/llvm-project/pull/104458 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
@@ -809,8 +809,9 @@ class RedeclarableTemplateDecl : public TemplateDecl, }; /// Pointer to the common data shared by all declarations of this - /// template. - mutable CommonBase *Common = nullptr; + /// template, and a flag indicating if the template is a member + //

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
@@ -317,7 +317,8 @@ struct ConvertConstructorToDeductionGuideTransform { } if (NestedPattern) - OuterInstantiationArgs = SemaRef.getTemplateInstantiationArgs(Template); + OuterInstantiationArgs = SemaRef.getTemplateInstantiationArgs( + /*D=*/nullptr,

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
@@ -1056,16 +1052,20 @@ bool Sema::AreConstraintExpressionsEqual(const NamedDecl *Old, bool Sema::FriendConstraintsDependOnEnclosingTemplate(const FunctionDecl *FD) { assert(FD->getFriendObjectKind() && "Must be a friend!"); + FunctionTemplateDecl *FTD = FD->getDescribedFu

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
@@ -171,374 +139,379 @@ bool isLambdaEnclosedByTypeAliasDecl( .TraverseType(Underlying); } -// Add template arguments from a variable template instantiation. -Response -HandleVarTemplateSpec(const VarTemplateSpecializationDecl *VarTemplSpec, -

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
@@ -1669,25 +1640,43 @@ namespace { ExprResult RebuildLambdaExpr(SourceLocation StartLoc, SourceLocation EndLoc, LambdaScopeInfo *LSI) { +#if 1 CXXMethodDecl *MD = LSI->CallOperator; - for (ParmVarDecl *PVD : MD->parameters())

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/106585 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: > Also, do you plan to fix #102320 in this or the follow-up patches? @zyn0217 This patch (in its current state) fixes #102320 :) https://github.com/llvm/llvm-project/pull/106585 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-08-30 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/106585 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
@@ -33,11 +33,12 @@ class D{}; // expected-note{{previous definition is here}} template class D{}; // expected-error{{class template partial specialization does not specialize any template argument; to define the primary template, remove the template argument list}} expected-e

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
@@ -2112,6 +2078,33 @@ DeclResult Sema::CheckClassTemplate( NewClass->setLexicalDeclContext(CurContext); NewTemplate->setLexicalDeclContext(CurContext); + // Ensure that the template parameter lists are compatible. Skip this check + // for a friend in a dependent context

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin After giving it another look, I think the existing tests are sufficient (the tests updated by this PR were written by me to test this exact scenario). WDYT? https://github.com/llvm/llvm-project/pull/104458 ___ cfe-commits

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: Ping @mizvekov https://github.com/llvm/llvm-project/pull/106585 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin Excellent, then I think this is good to go https://github.com/llvm/llvm-project/pull/104458 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
@@ -7939,7 +7927,14 @@ ExprResult Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base, } } return ExprError(); + } else if (Result.isUnset()) { +// BuildOverloadedArrowExpr returns an empty expression to indicate +// that we n

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
@@ -7939,7 +7927,14 @@ ExprResult Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base, } } return ExprError(); + } else if (Result.isUnset()) { +// BuildOverloadedArrowExpr returns an empty expression to indicate +// that we n

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/104458 >From a719de89be6af3607f67baddd8868f8e0fc7882f Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Thu, 15 Aug 2024 11:27:34 -0400 Subject: [PATCH 1/3] [Clang][Sema] Use the correct lookup context when

[clang] [Clang][Sema] Use the correct lookup context when building overloaded 'operator->' in the current instantiation (PR #104458)

2024-09-03 Thread Krystian Stasiowski via cfe-commits
@@ -7981,7 +7969,7 @@ ExprResult Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base, SmallVector OperatorArrows; CTypes.insert(Context.getCanonicalType(BaseType)); -while (BaseType->isRecordType()) { +while (BaseType->getAsRecordDecl()) {

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @mizvekov My initial implementation used the existing `UnannotatedTentativeParsingAction` implementation, but that had a _significant_ performance hit (7% vs 0.01%) compared to the new implementation. My new implementation of `UnannotatedTentativeParsingAction` is also more

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian created https://github.com/llvm/llvm-project/pull/98167 The following code causes [this assert](https://github.com/llvm/llvm-project/blob/main/clang/lib/Sema/SemaExprMember.cpp#L981) to fail: ```cpp struct A { }; struct B; void f(A *x) { x->B::y; // crash here

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/98167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/98167 >From 57b79eb4ac71bfe13fbcece0c86ec0c9b7604494 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Tue, 9 Jul 2024 11:03:14 -0400 Subject: [PATCH] [Clang][Sema] Handle class member access expressions with

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian edited https://github.com/llvm/llvm-project/pull/98167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @cor3ntin This fixes a bug introduced in this release, so I don't believe a release note is needed. https://github.com/llvm/llvm-project/pull/98167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-b

[clang] [Clang][Sema] Fix crash when rebuilding MemberExprs with invalid object expressions (PR #97455)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/97455 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Handle class member access expressions with valid nested-name-specifiers that become invalid after lookup (PR #98167)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/98167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-07-09 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/92957 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-11 Thread Krystian Stasiowski via cfe-commits
sdkrystian wrote: @chapuni This fixes the Ubuntu-20.04 g++ build issues you brought up in #98252. https://github.com/llvm/llvm-project/pull/98547 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cf

[clang] [libcxx] [llvm] Reapply "[Clang] Implement resolution for CWG1835 (#92957)" (PR #98547)

2024-07-11 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian closed https://github.com/llvm/llvm-project/pull/98547 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Parse] Fix ambiguity with nested-name-specifiers that may declarative (PR #96364)

2024-07-11 Thread Krystian Stasiowski via cfe-commits
https://github.com/sdkrystian updated https://github.com/llvm/llvm-project/pull/96364 >From 29f2e6e418d61de15453dbfca77ede0126b6d384 Mon Sep 17 00:00:00 2001 From: Krystian Stasiowski Date: Wed, 12 Jun 2024 14:14:26 -0400 Subject: [PATCH 1/2] [Clang][Parse] Fix ambiguity with nested-name-specif

<    1   2   3   4   5   6   7   8   9   10   >