[clang-tools-extra] [clang-tidy][readability-identifier-naming] Resolve symlinks for checking style for file (PR #81985)

2024-02-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/81985 >From ddafb4672e1a481d4a9556ebe31ca9a07e1f3569 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 16 Feb 2024 03:51:07 -0800 Subject: [PATCH 1/3] [clang-tidy][readability-identifier-naming] Resolve sym

[clang-tools-extra] [clang-tidy][readability-identifier-naming] Resolve symlinks for checking style for file (PR #81985)

2024-02-16 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/81985 >From ddafb4672e1a481d4a9556ebe31ca9a07e1f3569 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 16 Feb 2024 03:51:07 -0800 Subject: [PATCH 1/3] [clang-tidy][readability-identifier-naming] Resolve sym

[clang-tools-extra] [clang-tidy][readability-identifier-naming] Resolve symlinks for checking style for file (PR #81985)

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

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-03 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee Message-ID: In-Reply-To: dmpolukhin wrote: > Got it. I am pretty interested use case for modules. And from your commit > history, it looks like you prefer header units than named modules? Yes, we prefer header units for the time being

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-06 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin Message-ID: In-Reply-To: https://github.com/dmpolukhin ready_for_review https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lists.llvm.

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-06 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin Message-ID: In-Reply-To: dmpolukhin wrote: @ChuanqiXu9 please take a look, I had to load lambdas delayed to avoid bad cycles when current function was not fully deserialized yet but lambda inside reference it. Now t

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-09 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: @@ -764,6 +792,15 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { Record.push_back(D->param_size()); for (auto *P : D->parameters()) Re

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-09 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From 8772795571c9e36c498cb3dba5496e695dfcb7a2 Mon Sep 17 00:00:00 2001 From: Dmitry P

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-09 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw==?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: @@ -764,6 +792,15 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) { Record.push_back(D->param_size()); for (auto *P : D->parameters()) R

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-09 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw==?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: @@ -1188,6 +1188,11 @@ class ASTReader /// once recursing loading has been completed. llvm::SmallVector PendingOdrMergeChecks; + /// Lambdas that ne

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-09 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: @@ -1155,6 +1155,16 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { for (unsigned I = 0; I != NumParams; ++I) Params.push_back(readDeclAs

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-10 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: https://github.com/dmpolukhin edited https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lis

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-10 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lis

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-10 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: dmpolukhin wrote: @ChuanqiXu9 thank you a lot for the review and help with the changes, very appreciated! https://github.com/llvm/llvm-project/pull/104512 _

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-15 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/104512 Summary: Because AST loading code is lazy and happens in unpredictable order it could happen that function and lambda inside function can be loaded from different modules. In this case, captured DeclRefExpr

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-16 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > I feel the change is somewhat odd to me. Since the description is about the > lambda but the change is about VarDecls. I feel there is a mismatch and I > feel this may not solve the underlying problem fundamentally. I feel it'll be > better to make it more straight forward.

[clang] [C++20][Modules] Allow using stdarg.h with header units (PR #100739)

2024-07-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/100739 Summary: Macro like `va_start`/`va_end` marked as builtin functions that makes these identifiers special and it results in redefinition of the identifiers as builtins and it hides macro definitions during pr

[clang] [C++20][Modules] Allow using stdarg.h with header units (PR #100739)

2024-07-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/100739 >From edc7f5c84caefeae197a5884c91ec2194fd3148b Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 26 Jul 2024 05:02:52 -0700 Subject: [PATCH 1/2] [C++20][Modules] Allow using stdarg.h with header units

[clang] [C++20][Modules] Allow using stdarg.h with header units (PR #100739)

2024-07-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/100739 >From edc7f5c84caefeae197a5884c91ec2194fd3148b Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 26 Jul 2024 05:02:52 -0700 Subject: [PATCH 1/3] [C++20][Modules] Allow using stdarg.h with header units

[clang] [C++20][Modules] Allow using stdarg.h with header units (PR #100739)

2024-07-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/100739 >From edc7f5c84caefeae197a5884c91ec2194fd3148b Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 26 Jul 2024 05:02:52 -0700 Subject: [PATCH 1/4] [C++20][Modules] Allow using stdarg.h with header units

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

2024-07-15 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/98488 >From a05c4ca2c2e61653e7bd8d3a2f5faa6b86daa615 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 11 Jul 2024 07:01:49 -0700 Subject: [PATCH 1/3] [clang-tidy] Fix false in unnecessary-value-param inside

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

2024-07-15 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/98488 >From a05c4ca2c2e61653e7bd8d3a2f5faa6b86daa615 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 11 Jul 2024 07:01:49 -0700 Subject: [PATCH 1/4] [clang-tidy] Fix false in unnecessary-value-param inside

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

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

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-27 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: Quick update, all clang/cxx-library tests pass with the change but when I test it on my real project with modules I see crash or assert in [ASTDeclMerger::MergeDefinitionData](https://github.com/llvm/llvm-project/blob/main/clang/lib/Serialization/ASTReaderDecl.cpp#L2081) abou

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-02 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee Message-ID: In-Reply-To: https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From d54f01fe6c49131a3ff4514520e5270889b9affb Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 15 Aug 2024 14:03

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-02 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee Message-ID: In-Reply-To: dmpolukhin wrote: > I am curious about your real project, is it open source? Unfortunately, it is not an open source project but we use bunch of OSS libraries like Folly, Thrift and many other so I see bugs th

[clang] [C++20][Modules] static data members of template classes should be allowed in header units (PR #98309)

2024-07-10 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/98309 Summary: These is no sense to report this cases as an error or add `inline` explicitly in this cases. If it is not required in normal headers. Similar to #60079. Test Plan: check-clang >From 7fd31fea6d4a3003

[clang] [C++20][Modules] static data members of template classes should be allowed in header units (PR #98309)

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

[clang] [C++20][Modules] static data members of template classes should be allowed in header units (PR #98309)

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

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

2024-07-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/98488 Summary: If callExpr is type dependent, there is no way to analyze individual arguments until template specialization. Before this diff only calls with dependent callees were skipped so unnecessary-value-para

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

2024-07-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/98488 >From a05c4ca2c2e61653e7bd8d3a2f5faa6b86daa615 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 11 Jul 2024 07:01:49 -0700 Subject: [PATCH 1/2] [clang-tidy] Fix false in unnecessary-value-param inside

[clang] [clang-tools-extra] [clang-tidy] Fix false in unnecessary-value-param inside templates (PR #98488)

2024-07-15 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/98488 >From a05c4ca2c2e61653e7bd8d3a2f5faa6b86daa615 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 11 Jul 2024 07:01:49 -0700 Subject: [PATCH 1/2] [clang-tidy] Fix false in unnecessary-value-param inside

[clang] [Modules] Enable MS Windows test for implicit-module-no-timestamp.cpp (PR #91738)

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

[clang] [Modules] Enable MS Windows test for implicit-module-no-timestamp.cpp (PR #91738)

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

[clang] [Modules] Enable MS Windows test for implicit-module-no-timestamp.cpp (PR #91738)

2024-05-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin approved this pull request. https://github.com/llvm/llvm-project/pull/91738 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [clang-tidy] Optimize realpath in readability-identifier-naming (PR #92659)

2024-05-23 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin approved this pull request. https://github.com/llvm/llvm-project/pull/92659 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20][Modules] Allow using stdarg.h with header units (PR #100739)

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

[clang-tools-extra] 338d162 - [clang-tidy] Ignore all spaces in the list of checks

2021-03-24 Thread Dmitry Polukhin via cfe-commits
Author: Dmitry Polukhin Date: 2021-03-24T06:43:13-07:00 New Revision: 338d16275571df4d841609d7e12bcb310b3a95e6 URL: https://github.com/llvm/llvm-project/commit/338d16275571df4d841609d7e12bcb310b3a95e6 DIFF: https://github.com/llvm/llvm-project/commit/338d16275571df4d841609d7e12bcb310b3a95e6.dif

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin converted_to_draft https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From 8e11c66e4515bb35671853b89152b43d1ff60ffa Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 15 Aug 2024 14:03:57 -0700 Subject: [PATCH 1/3] [RFC][C++20][Modules] Fix crash when function and lambd

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From 8e11c66e4515bb35671853b89152b43d1ff60ffa Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 15 Aug 2024 14:03:57 -0700 Subject: [PATCH 1/4] [RFC][C++20][Modules] Fix crash when function and lambd

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From 8e11c66e4515bb35671853b89152b43d1ff60ffa Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 15 Aug 2024 14:03:57 -0700 Subject: [PATCH 1/4] [RFC][C++20][Modules] Fix crash when function and lambd

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > Here is another example that merging lambdas are problematic: #102721. > Although I think we need to solve the problems separately. They are different > problems. Thank you for the reference, we need this fix too. > But the current patch still smells bad. Let's try to find

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin ready_for_review https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

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

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-21 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > And I am still slightly unclear about how we load the wrong lambda first. Here is stack trace how decl from wrong module becomes canonical. Full stack trace ``` frame #0: 0x5e651e29 clang`clang::ASTDeclReader::VisitCXXRecordDeclImpl(this=0x7ffe0b70, D=0x00

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-21 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin converted_to_draft https://github.com/llvm/llvm-project/pull/104512 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-22 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/104512 >From 8e11c66e4515bb35671853b89152b43d1ff60ffa Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Thu, 15 Aug 2024 14:03:57 -0700 Subject: [PATCH 1/5] [RFC][C++20][Modules] Fix crash when function and lambd

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-08-22 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ChuanqiXu9 please take another look. I changed approach to remember which lambdas exist in FunctionDecl and load them for the first decl. I'm still testing it but interested to know does it look like something that address your concernes? https://github.com/llvm/llvm-proje

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-12 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: dmpolukhin wrote: > this is causing a crash with precompiled headers. I can try to reduce, but > hopefully the problem is obvious from this assert/stack trace? @aeubanks co

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-12 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw=?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: @@ -1155,6 +1155,16 @@ void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) { for (unsigned I = 0; I != NumParams; ++I) Params.push_back(readDeclAs

[clang] [RFC][C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #104512)

2024-09-13 Thread Dmitry Polukhin via cfe-commits
Valentin Clement =?utf-8?b?KOODkOODrOODsw==?=,Kyungwoo Lee ,Dmitry Polukhin ,Dmitry Polukhin Message-ID: In-Reply-To: dmpolukhin wrote: > [repro.zip](https://github.com/user-attachments/files/16986643/repro.zip) > > edit: got a better reduced repro, see attachment Thank you for the reprod

[clang] [Modules][NFC] Rewrite friend-definition-2.cpp with split-file (PR #112380)

2024-10-15 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/112380 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Modules][NFC] Rewrite friend-definition-2.cpp with split-file (PR #112380)

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

[clang] [Modules][NFC] Rewrite friend-definition-2.cpp with split-file (PR #112380)

2024-10-15 Thread Dmitry Polukhin via cfe-commits
@@ -1,32 +1,53 @@ -// RUN: %clang_cc1 -std=c++14 -fmodules %s -verify -// RUN: %clang_cc1 -std=c++14 -fmodules %s -verify -triple i686-windows -// expected-no-diagnostics -#pragma clang module build A -module A {} -#pragma clang module contents -#pragma clang module begin A +// RU

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-10-08 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > still trying to reduce the reproducer... Please create a reproducer, the stack trace doesn't have information to understand what is causing the issue. https://github.com/llvm/llvm-project/pull/109167 ___ cfe-commits mailing list c

[clang] [C++20][Modules] Allow import for a header unit after #pragma (PR #111662)

2024-10-09 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/111662 Summary: `#pragma` and headers that finish with them shouldn't prevent `import "header_unit.h"` syntax. Test Plan: check-clang >From 300a567bd983754cc1187dc122f98c0f7d408b99 Mon Sep 17 00:00:00 2001 From: D

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-09 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/60 >From dc4a79c2ee5630eb551ea3a40b4bd67da20c7034 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 4 Oct 2024 06:41:34 -0700 Subject: [PATCH 1/4] [RFC][C++20][Modules] Relax ODR check in unnamed modules

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-09 Thread Dmitry Polukhin via cfe-commits
@@ -2527,7 +2527,7 @@ class BitsUnpacker { inline bool shouldSkipCheckingODR(const Decl *D) { return D->getASTContext().getLangOpts().SkipODRCheckInGMF && - D->isFromGlobalModule(); + (D->isFromGlobalModule() || !D->isInNamedModule()); dmpolu

[clang] [C++20][Modules] Allow import for a header unit after #pragma (PR #111662)

2024-10-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/111662 ___ 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-10-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/111992 Summary: Fix crash from reproducer provided in https://github.com/llvm/llvm-project/pull/109167#issuecomment-2405289565 Test Plan: TBD (need to further reduce the reproducer) >From 0d02e79ced894769cfbea45a1

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-10-11 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > Here is the reproducer that crashes at head. > [lambdas.tgz](https://github.com/user-attachments/files/17329901/lambdas.tgz) I reproduced this issue on my machine and confirm that it is indeed due to my changes. https://github.com/llvm/llvm-project/pull/111992 has fix that

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

2024-10-11 Thread Dmitry Polukhin via cfe-commits
@@ -10057,15 +10057,18 @@ void ASTReader::finishPendingActions() { // For a function defined inline within a class template, force the // canonical definition to be the one inside the canonical definition of // the template. This ensures that we instantiate fr

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

2024-10-11 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin ready_for_review 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] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-10-11 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > I've checked #111992 and it does fix the problem, so let's land it? Yes, I would like to create a test case to don't regress this feature in future. I need to reduce libc++ `functional` header to something smaller. https://github.com/llvm/llvm-project/pull/109167 __

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

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

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-04 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/60 Summary: Option `-fskip-odr-check-in-gmf` is set by default and I think it is what most of C++ developers want. But in header units, Clang ODR checking is too strict, making them hard to use, as seen in the

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-10-04 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > this has also caused the following issue to pop up in our modules build > > ``` > error: variable 'param' cannot be implicitly captured in a lambda with no > capture-default specified > ``` > > hopefully the error provides some guidance for where to look, but I can try > t

[clang] [Modules][NFC] Rewrite friend-definition-2.cpp with split-file (PR #112380)

2024-10-16 Thread Dmitry Polukhin via cfe-commits
@@ -1,32 +1,53 @@ -// RUN: %clang_cc1 -std=c++14 -fmodules %s -verify -// RUN: %clang_cc1 -std=c++14 -fmodules %s -verify -triple i686-windows -// expected-no-diagnostics -#pragma clang module build A -module A {} -#pragma clang module contents -#pragma clang module begin A +// RU

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

2024-10-16 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > @dmpolukhin I am still confusing about the problem. I mean, why your previous > patch will break the reproducer and why this patch can "fix" it? I feel the > current patch is somewhat workaround. It's not your fault. The original codes > are somewhat tricky already. But let

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

2024-10-21 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ilya-biryukov could you please take a look? 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-10-17 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111992 >From f7740527720756a469f7f3e7a17a354097438abf Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 11 Oct 2024 05:35:18 -0700 Subject: [PATCH 1/3] [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-10-17 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > Thanks for the analysis. I feel (2) is easier to me IIUC. I feel it is a > natural extension of your previous work. WDYT? I implemented this approach and it works. I tried to limit eager deserialization to the minimal set of functions (at the moment it is friend inline fri

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-08 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/60 >From dc4a79c2ee5630eb551ea3a40b4bd67da20c7034 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 4 Oct 2024 06:41:34 -0700 Subject: [PATCH 1/3] [RFC][C++20][Modules] Relax ODR check in unnamed modules

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-08 Thread Dmitry Polukhin via cfe-commits
@@ -2527,7 +2527,7 @@ class BitsUnpacker { inline bool shouldSkipCheckingODR(const Decl *D) { return D->getASTContext().getLangOpts().SkipODRCheckInGMF && - D->isFromGlobalModule(); + (D->isFromGlobalModule() || !D->isInNamedModule()); dmpolu

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-08 Thread Dmitry Polukhin via cfe-commits
@@ -0,0 +1,32 @@ +// RUN: rm -fR %t +// RUN: split-file %s %t +// RUN: cd %t +// RUN: %clang_cc1 -verify -std=c++20 -fskip-odr-check-in-gmf -emit-header-unit -xc++-user-header bz0.h +// RUN: %clang_cc1 -verify -std=c++20 -fskip-odr-check-in-gmf -emit-header-unit -xc++-user-heade

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

2024-10-08 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/60 >From dc4a79c2ee5630eb551ea3a40b4bd67da20c7034 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Fri, 4 Oct 2024 06:41:34 -0700 Subject: [PATCH 1/2] [RFC][C++20][Modules] Relax ODR check in unnamed modules

[clang] [RFC][C++20][Modules] Relax ODR check in unnamed modules (PR #111160)

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

[clang] [C++20][Modules] Allow import for a header unit after #pragma (PR #111662)

2024-10-10 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/111662 >From b92fc2c1b59f655ddd426bdc853621e91c0f70b4 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 9 Oct 2024 04:01:42 -0700 Subject: [PATCH 1/2] [C++20][Modules] Allow import for a header unit after #

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

2024-10-14 Thread Dmitry Polukhin via cfe-commits
@@ -10057,15 +10057,18 @@ void ASTReader::finishPendingActions() { // For a function defined inline within a class template, force the // canonical definition to be the one inside the canonical definition of // the template. This ensures that we instantiate fr

[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

[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] Quote header unit name in preprocessor output (-E) (PR #112883)

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

[clang] [C++20][Modules] Quote header unit name in preprocessor output (-E) (PR #112883)

2024-10-23 Thread Dmitry Polukhin via cfe-commits
@@ -952,13 +952,15 @@ static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok, continue; } else if (Tok.is(tok::annot_header_unit)) { // This is a header-name that has been (effectively) converted into a - // module-name. + // module-name, pr

[clang] [C++20][Modules] Fix non-determinism in serialized AST (PR #110131)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
@@ -5713,8 +5713,7 @@ void ASTWriter::WriteDeclAndTypes(ASTContext &Context) { // efficent becuase it allows lazy deserialization. RecordData FunctionToLambdasMapRecord; for (const auto &Pair : FunctionToLambdasMap) { dmpolukhin wrote: @rnk yes, th

[clang] [C++20][Modules] Fix non-determinism in serialized AST (PR #110131)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/110131 Summary: https://github.com/llvm/llvm-project/pull/109167 serializes FunctionToLambdasMap in the order of pointers in DenseMap. It gives different order with different memory layouts. Fix this issue by using

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @eaeltsin do you know which artifacts become non-deterministic? Is it produced object file or serialized AST? https://github.com/llvm/llvm-project/pull/109167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-25 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/109167 ___ 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 when function and lambda inside loaded from different modules (PR #109167)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: I think it is due to this change :( I'm iterating over `Decl*` in `FunctionToLambdasMap`. I'm fixing it by replacing the pointers with LocalDeclID that should be stable. https://github.com/llvm/llvm-project/pull/109167 ___ cfe-commi

[clang] [C++20][Modules] Fix non-determinism in serialized AST (PR #110131)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @eaeltsin because I don't have a reproducer for the issue, could you please check that fix helps on your reproducer? https://github.com/llvm/llvm-project/pull/110131 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lis

[clang] [C++20][Modules] Fix non-determinism in serialized AST (PR #110131)

2024-09-26 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin closed https://github.com/llvm/llvm-project/pull/110131 ___ 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 when function and lambda inside loaded from different modules (PR #109167)

2024-09-18 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin created https://github.com/llvm/llvm-project/pull/109167 Summary: Because AST loading code is lazy and happens in unpredictable order, it is possible that a function and lambda inside the function can be loaded from different modules. As a result, the captured Dec

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/109167 >From 72b43bd2f392a009187e1cdd90627691a4017707 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 18 Sep 2024 09:02:23 -0700 Subject: [PATCH 1/5] [C++20][Modules] Fix crash when function and lambda in

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-20 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/109167 >From 72b43bd2f392a009187e1cdd90627691a4017707 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 18 Sep 2024 09:02:23 -0700 Subject: [PATCH 1/4] [C++20][Modules] Fix crash when function and lambda in

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-20 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: @ChuanqiXu9 thank you for the detailed steps, I uploaded new version. Does it look like something you had in mind? https://github.com/llvm/llvm-project/pull/109167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-19 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/109167 >From 72b43bd2f392a009187e1cdd90627691a4017707 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 18 Sep 2024 09:02:23 -0700 Subject: [PATCH 1/2] [C++20][Modules] Fix crash when function and lambda in

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-19 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: With DeclContext visitor collectLambdas takes 0.03% or smaller, sometime I don't even see it in sampling profile. https://github.com/llvm/llvm-project/pull/109167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-19 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/109167 >From 72b43bd2f392a009187e1cdd90627691a4017707 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 18 Sep 2024 09:02:23 -0700 Subject: [PATCH 1/3] [C++20][Modules] Fix crash when function and lambda in

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-19 Thread Dmitry Polukhin via cfe-commits
dmpolukhin wrote: > Would you like to explain more why this fail previously in more detail? Original code in `ASTReader::finishPendingActions` looked like this: ``` for (auto ID : PendingLambdas) GetDecl(ID); PendingLambdas.clear(); ``` The issue here is that the code uses implicit

[clang] [C++20][Modules] Fix crash when function and lambda inside loaded from different modules (PR #109167)

2024-09-24 Thread Dmitry Polukhin via cfe-commits
https://github.com/dmpolukhin updated https://github.com/llvm/llvm-project/pull/109167 >From 72b43bd2f392a009187e1cdd90627691a4017707 Mon Sep 17 00:00:00 2001 From: Dmitry Polukhin Date: Wed, 18 Sep 2024 09:02:23 -0700 Subject: [PATCH 1/6] [C++20][Modules] Fix crash when function and lambda in

<    1   2   3   4   >