[clang-tools-extra] [clang-tidy] Add an option in 'readability-named-parameter' to print names without comment (PR #147953)

2025-07-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/147953 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy][readability-named-parameter] Add an option to print names without comment (PR #147953)

2025-07-10 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/147953 >From 0f6d49539df0269daed67af2c7c054f3501fcc0b Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 10 Jul 2025 05:26:11 -0700 Subject: [PATCH 1/3] [clang-tidy][readability-named-parameter] Add an option

[clang-tools-extra] [clang-tidy][readability-named-parameter] Add an option to print names without comment (PR #147953)

2025-07-10 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/147953 Add InsertPlainNamesInForwardDecls option to readability-named-parameter check to insert parameter names without comments for forward declarations only. When enabled, forward declarations get plain parameter

[clang-tools-extra] [clang-tidy] Add missing colon in the docs of performance-enum-size (PR #144525)

2025-06-17 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/144525 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Disable preferred_name when writing a C++20 header unit (PR #144377)

2025-06-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/144377 https://reviews.llvm.org/D130331 added workaround for named modules only. But the same issue happens for headees units. Link issue #56490 >From 107a61c1c7a2caf3a3801c36637f4393ba613255 Mon Sep 17 00:00:00 20

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From f277796a98f81bc3f0c6949adff3ad43eda51d5f Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/9] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From f277796a98f81bc3f0c6949adff3ad43eda51d5f Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/8] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-13 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/140912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-13 Thread Dmitry Polukhin via cfe-commits
@@ -63,7 +65,11 @@ void UnnecessaryValueParamCheck::registerMatchers(MatchFinder *Finder) { Finder->addMatcher( traverse( TK_AsIs, - functionDecl(hasBody(stmt()), isDefinition(), unless(isImplicit()), + functionDecl(hasBody(IsAllowedInCorout

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-13 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,65 @@ +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- -fix-errors dmpolukhin wrote: I prefer to have 3 command to also test the default value for the flag. https://github.com/llvm/llvm-project/pull/140912 _

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-13 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @vbvictor please take another look, all comments resolved. https://github.com/llvm/llvm-project/pull/140912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From f277796a98f81bc3f0c6949adff3ad43eda51d5f Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/6] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From f277796a98f81bc3f0c6949adff3ad43eda51d5f Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/5] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
@@ -265,6 +265,8 @@ Changes in existing checks ` check performance by tolerating fix-it breaking compilation when functions is used as pointers to avoid matching usage of functions within the current compilation unit. + Added an option `IsAllowedInCoroutines` with the de

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
@@ -73,6 +74,10 @@ void UnnecessaryValueParamCheck::registerMatchers(MatchFinder *Finder) { void UnnecessaryValueParamCheck::check(const MatchFinder::MatchResult &Result) { const auto *Param = Result.Nodes.getNodeAs("param"); const auto *Function = Result.Nodes.getNodeAs(

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
@@ -74,3 +74,9 @@ Options default is empty. If a name in the list contains the sequence `::`, it is matched against the qualified type name (i.e. ``namespace::Type``), otherwise it is matched against only the type name (i.e. ``Type``). + +.. option:: IsAllowedInCorouti

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,58 @@ +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- -fix-errors +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- \ +// RUN: -config='{CheckOptions: {performance-unnecessary-val

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-12 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,58 @@ +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- -fix-errors +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- \ +// RUN: -config='{CheckOptions: {performance-unnecessary-val

[clang] [C++20][Modules] Fix false compilation error with constexpr (PR #143168)

2025-06-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/143168 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-11 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @vbvictor and @HerrCai0907 @carlosgalvezp @PiotrZSL please take another look. https://github.com/llvm/llvm-project/pull/140912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cf

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-09 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From f277796a98f81bc3f0c6949adff3ad43eda51d5f Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/4] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang] [C++20][Modules] Fix false compilation error with constexpr (PR #143168)

2025-06-09 Thread Dmitry Polukhin via cfe-commits
@@ -6781,7 +6781,7 @@ static bool HandleConstructorCall(const Expr *E, const LValue &This, // and make sure we've initialized every step along it. auto IndirectFieldChain = IFD->chain(); for (auto *C : IndirectFieldChain) { -FD = cast(C); +FD

[clang] [C++20][Modules] Fix false compilation error with constexpr (PR #143168)

2025-06-09 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/143168 >From cc00e6ad5192bbd6059542196fac286e7182d153 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 23 May 2025 14:22:21 -0700 Subject: [PATCH 1/2] [C++20][Modules] Fix false compilation error with cons

[clang] [C++20][Modules] Fix false compilation error with constexpr (PR #143168)

2025-06-06 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/143168 Use canonical field decl when evaluating constexpr to avoid resetting computed union value due to using different instances of the merged field decl. Pointer to the field comparison `Value->isUnion() && Valu

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-05 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > I have a mixed feeling about whether we should always exclude all coroutines > by default or not. When a coroutine has only one `co-operator` and nothing > else should be safe to use a reference parameter? Am I wrong? No, it may not be safe even in case of single co_return

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-06-04 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @HerrCai0907 @carlosgalvezp @PiotrZSL one more friendly ping. Please take a look, the change is benign and trivial one liner + test. I think it will really improve this check and avoid long hours for developers to figure out dangling references. https://github.com/llvm/llvm-

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-27 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @HerrCai0907 @carlosgalvezp @PiotrZSL friendly ping, please take a look! https://github.com/llvm/llvm-project/pull/140912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-comm

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/140912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From e3ce9bb18f165649b00db14b2282649315b28883 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/3] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-21 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,81 @@ +// RUN: %check_clang_tidy -std=c++20-or-later %s performance-unnecessary-value-param %t -- -fix-errors + +namespace std { + +template struct coroutine_traits { + using promise_type = typename R::promise_type; +}; + +template struct coroutine_handle; + +templa

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/140912 >From e3ce9bb18f165649b00db14b2282649315b28883 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 21 May 2025 07:54:02 -0700 Subject: [PATCH 1/2] [clang-tidy][performance-unnecessary-value-param] Avoid

[clang-tools-extra] [clang-tidy][performance-unnecessary-value-param] Avoid in coroutines (PR #140912)

2025-05-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/140912 Summary: Replacing by-value parameters with passing by-reference is not safe for coroutines because the caller may be executed in parallel with the callee, which increases the chances of resulting in danglin

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/9] [clang] Fix for regression #130917 Changes in #111992

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-04 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 01/11] [clang] Fix for regression #130917 Changes in #11199

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-04 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin commented: PTAL https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-03 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-02 Thread Dmitry Polukhin via cfe-commits
@@ -1392,6 +1392,20 @@ class ASTReader llvm::DenseMap DefinitionSource; + /// The set of extra flags about declarations that we have read from + /// the module file. + struct ExternalDeclarationBits { +/// Indicates if given function declaration was a definition but

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-02 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > LGTM. > > But I didn't recognize you didn't update `MultiplexExternalSemaSource`. Every > time we add new interface to `ExternalASTSource`, we need to update > `MultiplexExternalSemaSource` too. Oh, thanks for the good catch! Fixed now. https://github.com/llvm/llvm-projec

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-02 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 01/10] [clang] Fix for regression #130917 Changes in #11199

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-04-02 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][clang] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-28 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/7] [clang] Fix for regression #130917 Changes in #111992

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-28 Thread Dmitry Polukhin via cfe-commits
@@ -1390,7 +1390,19 @@ class ASTReader /// predefines buffer may contain additional definitions. std::string SuggestedPredefines; - llvm::DenseMap DefinitionSource; + struct DefinitionSourceFlags { dmpolukhin wrote: Done https://github.com/llvm/llvm-pr

[clang] [modules] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-28 Thread Dmitry Polukhin via cfe-commits
@@ -1390,7 +1390,19 @@ class ASTReader /// predefines buffer may contain additional definitions. std::string SuggestedPredefines; - llvm::DenseMap DefinitionSource; + struct DefinitionSourceFlags { +ExtKind HasExternalDefinitions : 2; + +/// Indicates if given fu

[clang] [RFC][clang] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-28 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/6] [clang] Fix for regression #130917 Changes in #111992

[clang] [RFC][clang] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-27 Thread Dmitry Polukhin via cfe-commits
@@ -2572,7 +2572,7 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl( // Friend function defined withing class template may stop being function // definition during AST merges from different modules, in this case decl // with function body should be used for instantiat

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/132214 Changes in #111992 was too broad. This change reduces scope of previous fix. Unfortunately in clang there is no way to know when redeclaration was craeted artificially due to AST mergse and when it was the c

[clang] [RFC][clang] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
@@ -2572,7 +2572,7 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl( // Friend function defined withing class template may stop being function // definition during AST merges from different modules, in this case decl // with function body should be used for instantiat

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-25 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/5] [clang] Fix for regression #130917 Changes in #111992

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-25 Thread Dmitry Polukhin via cfe-commits
@@ -2572,7 +2572,7 @@ Decl *TemplateDeclInstantiator::VisitFunctionDecl( // Friend function defined withing class template may stop being function // definition during AST merges from different modules, in this case decl // with function body should be used for instantiat

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-25 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/3] [clang] Fix for regression #130917 Changes in #111992

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-25 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/132214 >From 91e057bf990e2c454b897982ed0b4e823bb3faba Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 20 Mar 2025 06:51:46 -0700 Subject: [PATCH 1/4] [clang] Fix for regression #130917 Changes in #111992

[clang] [RFC][clang] Fix for regression #130917 (PR #132214)

2025-03-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/132214 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (PR #121245)

2025-02-14 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @zixu-w and @ChuanqiXu9 Just want to clarify policies about changes reversion. As far as I understand it was one example in some private codebase with no reproducer publicly available. I can understand and completely agree if it breaks any existing test or llvm-build bot. But

[clang] [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (PR #121245)

2025-01-29 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,90 @@ +// RUN: rm -rf %t dmpolukhin wrote: Please add a comment that the test results in `llvm_unreachable` in debug builds so debug build should be used to investigate problems with the test. https://github.com/llvm/llvm-project/pull/121245

[clang] [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (PR #121245)

2025-01-29 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin commented: LGTM but let @ChuanqiXu9 approve. https://github.com/llvm/llvm-project/pull/121245 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules][Serialization] Delay marking pending incomplete decl chains until the end of `finishPendingActions`. (PR #121245)

2025-01-29 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/121245 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-23 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/123648 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-23 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/7] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
@@ -799,14 +813,14 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { } if (D->getFriendObjectKind()) { -// For a function defined inline within a class template, we have to force -// the canonical definition to be the one inside the canonical definition

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/7] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
@@ -799,14 +817,12 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { } if (D->getFriendObjectKind()) { -// For a function defined inline within a class template, we have to force -// the canonical definition to be the one inside the canonical definition

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/6] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/123648 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin commented: Added release note https://github.com/llvm/llvm-project/pull/123648 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
@@ -539,11 +539,12 @@ class ASTReader /// Mapping from main decl ID to the related decls IDs. /// - /// These related decls have to be loaded right after the main decl. - /// It is required to have canonical declaration for related decls from the - /// same module as th

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/5] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/4] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/3] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/123648 >From e5cd06ddbc4193f9d5910eba93f0eb309d67063c Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Mon, 20 Jan 2025 09:03:25 -0800 Subject: [PATCH 1/2] [C++20][Modules] Fix crash/compiler error due broken AS

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-21 Thread Dmitry Polukhin via cfe-commits
@@ -1571,9 +1571,10 @@ void ASTDeclWriter::VisitCXXRecordDecl(CXXRecordDecl *D) { } else { Record.push_back(0); } -// For lambdas inside canonical FunctionDecl remember the mapping. +// For lambdas inside template functions, remember the mapping to +/

[clang] [C++20][Modules] Fix crash/compiler error due broken AST links (PR #123648)

2025-01-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/123648 Summary: This PR fixes bugreport https://github.com/llvm/llvm-project/issues/122493 The root problem is the same as before lambda function and DeclRefExpr references a variable that does not belong to the sa

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-16 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ilya-biryukov and @ChuanqiXu9 thank you for your help with the review, testing and reproducers. Very appreciated! https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From d71fb50ca68448578b797bb85f3a607dc9739d45 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/9] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/9] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-12 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: FYI, I tested the latest version on our reproducers and it fixed all known issues due to friend inline functions. https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/8] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin commented: > The two problems I see are: > > * invalid `no matching constructor for initialization of` errors for some > particular type, I think it is due to applying my changes too wide (i.e. to normal member functions and use first decl for them). I hope I fix

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-11 Thread Dmitry Polukhin via cfe-commits
@@ -1976,14 +1976,16 @@ TemplateDeclInstantiator::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { if (!InstParams) return nullptr; + // Use canonical templated decl because only canonical decl has body + // if declarations were merged during loading from modules.

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/7] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin commented: Updated PR https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
@@ -1976,14 +1976,16 @@ TemplateDeclInstantiator::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { if (!InstParams) return nullptr; + // Use canonical templated decl because only canonical decl has body + // if declarations were merged during loading from modules.

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/6] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ilya-biryukov could you please test the latest version on your sources? It seems that I found generic enough solution for the problem when clang uses merged decl with no body for template instantiation. See changes in clang/lib/Sema/SemaTemplateInstantiateDecl.cpp. https://

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/5] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-05 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From 3eaaa7d70f4b57cc13bd00bd3a3a921f7914d599 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/4] [C++20][Modules] Load function body from the module tha

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-12-02 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > The missing bit was `-O1`, as soon as I've added that, I am now getting the > error with this commit and not getting any error without this commit. Here is > a proper reproducer: > [friends.tgz](https://github.com/user-attachments/files/17950471/friends.tgz) Thank you for

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-11-22 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ilya-biryukov unfortunately it seems that the reproducer is very sensitive to the exact clang revision. I tried it with current main b8eef18868570b2f5244d6d43de02a1812d1c880 and this PR on top of the revision. In both cases I don't see any problems at all (no errors, no warn

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-11-21 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: I do believe that the issue about ODR violation cannot be caused by this change itself. I suggest merging this PR as is and I'll take a look at the reproducer as soon as you create it. This PR fixes known issues with reproducers so I'm in doubt what makes this change so speci

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-11-15 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @alexfh and @ilya-biryukov do you have any updates? https://github.com/llvm/llvm-project/pull/111992 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] Fix the modification detection logic in `ClangdLSPServer::applyConfiguration`. (PR #115438)

2024-11-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin approved this pull request. I think it is unexpected side effect of https://reviews.llvm.org/D143436. The diff was written together https://reviews.llvm.org/D148663 that was rejected so this edge was accidentally broken. https://github.com/llvm/llvm-project/pull/1

[clang] [C++20][Modules] Load function body from the module that gives canonical decl (PR #111992)

2024-11-08 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > Update: we've found a failure with `"function X has different bodies"` but my > suspicion is that it's surfacing an existing issue rather than introducing a > new one. I've managed to workaround it in our codebase by modularizing a bit > more of the codebase. Thank you for

  1   2   3   4   5   >