llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Michael Buch (Michael137) <details> <summary>Changes</summary> `TemplateArgument::ArgKind::StructuralValue` was introduced in https://github.com/llvm/llvm-project/pull/78041 The AST dump for such template arguments would yield the following: ``` |-ClassTemplateSpecializationDecl `- TemplateArgument ``` With this patch we would dump as: ``` |-ClassTemplateSpecializationDecl `-TemplateArgument structural '1.000000e+00' ``` --- Patch is 155.45 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/126937.diff 3 Files Affected: - (modified) clang/include/clang/AST/TextNodeDumper.h (+1) - (modified) clang/lib/AST/TextNodeDumper.cpp (+5) - (modified) clang/test/AST/ast-dump-templates.cpp (+679-671) ``````````diff diff --git a/clang/include/clang/AST/TextNodeDumper.h b/clang/include/clang/AST/TextNodeDumper.h index bfd205ffb0d99..b0eff62bf9a9f 100644 --- a/clang/include/clang/AST/TextNodeDumper.h +++ b/clang/include/clang/AST/TextNodeDumper.h @@ -253,6 +253,7 @@ class TextNodeDumper void VisitTemplateExpansionTemplateArgument(const TemplateArgument &TA); void VisitExpressionTemplateArgument(const TemplateArgument &TA); void VisitPackTemplateArgument(const TemplateArgument &TA); + void VisitStructuralValueTemplateArgument(const TemplateArgument &TA); void VisitIfStmt(const IfStmt *Node); void VisitSwitchStmt(const SwitchStmt *Node); diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp index 6da1f776b4b63..98f6e8a26ffb1 100644 --- a/clang/lib/AST/TextNodeDumper.cpp +++ b/clang/lib/AST/TextNodeDumper.cpp @@ -1226,6 +1226,11 @@ void TextNodeDumper::VisitIntegralTemplateArgument(const TemplateArgument &TA) { dumpTemplateArgument(TA); } +void TextNodeDumper::VisitStructuralValueTemplateArgument(const TemplateArgument &TA) { + OS << " structural"; + dumpTemplateArgument(TA); +} + void TextNodeDumper::dumpTemplateName(TemplateName TN, StringRef Label) { AddChild(Label, [=] { { diff --git a/clang/test/AST/ast-dump-templates.cpp b/clang/test/AST/ast-dump-templates.cpp index 86af8c50f3174..11b159b8a5304 100644 --- a/clang/test/AST/ast-dump-templates.cpp +++ b/clang/test/AST/ast-dump-templates.cpp @@ -3,6 +3,7 @@ // RUN: FileCheck < %t %s -check-prefix=CHECK1 // RUN: FileCheck < %t %s -check-prefix=CHECK2 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump %s | FileCheck --check-prefix=DUMP %s +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++20 -ast-dump -DCXX20=1 %s | FileCheck --check-prefix=DUMP-CPP20 %s // Test with serialization: // RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -emit-pch -o %t %s @@ -100,6 +101,13 @@ void test() { // differently in this way. // CHECK1: {{^ }}template<> struct foo<1, 0 + 0L> { template struct foo<1, 0 + 0L>; + +#ifdef CXX20 +// DUMP-CPP20: TemplateArgument structural '1.{{.*}}' +// DUMP-CPP20: TemplateArgument structural '-2.{{.*}}' +template struct foo<1, 1.0f>; +template struct foo<1, -2.0>; +#endif // CXX20 } namespace test5 { @@ -294,22 +302,22 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "ClassTemplateDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 812, +// JSON-NEXT: "offset": 937, // JSON-NEXT: "file": "{{.*}}", -// JSON-NEXT: "line": 15, +// JSON-NEXT: "line": 16, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 765, -// JSON-NEXT: "line": 14, +// JSON-NEXT: "offset": 890, +// JSON-NEXT: "line": 15, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 879, -// JSON-NEXT: "line": 19, +// JSON-NEXT: "offset": 1004, +// JSON-NEXT: "line": 20, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -320,19 +328,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "NonTypeTemplateParmDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 779, -// JSON-NEXT: "line": 14, +// JSON-NEXT: "offset": 904, +// JSON-NEXT: "line": 15, // JSON-NEXT: "col": 15, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 775, +// JSON-NEXT: "offset": 900, // JSON-NEXT: "col": 11, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 779, +// JSON-NEXT: "offset": 904, // JSON-NEXT: "col": 15, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -349,18 +357,18 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "TemplateTypeParmDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 791, +// JSON-NEXT: "offset": 916, // JSON-NEXT: "col": 27, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 782, +// JSON-NEXT: "offset": 907, // JSON-NEXT: "col": 18, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 791, +// JSON-NEXT: "offset": 916, // JSON-NEXT: "col": 27, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -375,18 +383,18 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "NonTypeTemplateParmDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 798, +// JSON-NEXT: "offset": 923, // JSON-NEXT: "col": 34, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 794, +// JSON-NEXT: "offset": 919, // JSON-NEXT: "col": 30, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 802, +// JSON-NEXT: "offset": 927, // JSON-NEXT: "col": 38, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -407,12 +415,12 @@ namespace test7 { // JSON-NEXT: "kind": "TemplateArgument", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 802, +// JSON-NEXT: "offset": 927, // JSON-NEXT: "col": 38, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 802, +// JSON-NEXT: "offset": 927, // JSON-NEXT: "col": 38, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -424,12 +432,12 @@ namespace test7 { // JSON-NEXT: "kind": "IntegerLiteral", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 802, +// JSON-NEXT: "offset": 927, // JSON-NEXT: "col": 38, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 802, +// JSON-NEXT: "offset": 927, // JSON-NEXT: "col": 38, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -448,20 +456,20 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXRecordDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 812, -// JSON-NEXT: "line": 15, +// JSON-NEXT: "offset": 937, +// JSON-NEXT: "line": 16, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 805, +// JSON-NEXT: "offset": 930, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 879, -// JSON-NEXT: "line": 19, +// JSON-NEXT: "offset": 1004, +// JSON-NEXT: "line": 20, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -517,19 +525,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXRecordDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 812, -// JSON-NEXT: "line": 15, +// JSON-NEXT: "offset": 937, +// JSON-NEXT: "line": 16, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 805, +// JSON-NEXT: "offset": 930, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 812, +// JSON-NEXT: "offset": 937, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: } @@ -543,19 +551,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "FieldDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 824, -// JSON-NEXT: "line": 16, +// JSON-NEXT: "offset": 949, +// JSON-NEXT: "line": 17, // JSON-NEXT: "col": 7, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 820, +// JSON-NEXT: "offset": 945, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 824, +// JSON-NEXT: "offset": 949, // JSON-NEXT: "col": 7, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: } @@ -569,19 +577,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXConstructorDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 836, -// JSON-NEXT: "line": 17, +// JSON-NEXT: "offset": 961, +// JSON-NEXT: "line": 18, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 836, +// JSON-NEXT: "offset": 961, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 843, +// JSON-NEXT: "offset": 968, // JSON-NEXT: "col": 10, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -596,12 +604,12 @@ namespace test7 { // JSON-NEXT: "kind": "CompoundStmt", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 842, +// JSON-NEXT: "offset": 967, // JSON-NEXT: "col": 9, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 843, +// JSON-NEXT: "offset": 968, // JSON-NEXT: "col": 10, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -613,19 +621,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXMethodDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 849, -// JSON-NEXT: "line": 18, +// JSON-NEXT: "offset": 974, +// JSON-NEXT: "line": 19, // JSON-NEXT: "col": 5, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 847, +// JSON-NEXT: "offset": 972, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 877, +// JSON-NEXT: "offset": 1002, // JSON-NEXT: "col": 33, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -640,12 +648,12 @@ namespace test7 { // JSON-NEXT: "kind": "CompoundStmt", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 858, +// JSON-NEXT: "offset": 983, // JSON-NEXT: "col": 14, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 877, +// JSON-NEXT: "offset": 1002, // JSON-NEXT: "col": 33, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -656,12 +664,12 @@ namespace test7 { // JSON-NEXT: "kind": "ReturnStmt", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 860, +// JSON-NEXT: "offset": 985, // JSON-NEXT: "col": 16, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 874, +// JSON-NEXT: "offset": 999, // JSON-NEXT: "col": 30, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -672,12 +680,12 @@ namespace test7 { // JSON-NEXT: "kind": "CXXUnresolvedConstructExpr", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 867, +// JSON-NEXT: "offset": 992, // JSON-NEXT: "col": 23, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 874, +// JSON-NEXT: "offset": 999, // JSON-NEXT: "col": 30, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -692,12 +700,12 @@ namespace test7 { // JSON-NEXT: "kind": "BinaryOperator", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 869, +// JSON-NEXT: "offset": 994, // JSON-NEXT: "col": 25, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 873, +// JSON-NEXT: "offset": 998, // JSON-NEXT: "col": 29, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -713,12 +721,12 @@ namespace test7 { // JSON-NEXT: "kind": "DeclRefExpr", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 869, +// JSON-NEXT: "offset": 994, // JSON-NEXT: "col": 25, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 869, +// JSON-NEXT: "offset": 994, // JSON-NEXT: "col": 25, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -741,12 +749,12 @@ namespace test7 { // JSON-NEXT: "kind": "DeclRefExpr", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 873, +// JSON-NEXT: "offset": 998, // JSON-NEXT: "col": 29, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 873, +// JSON-NEXT: "offset": 998, // JSON-NEXT: "col": 29, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -780,21 +788,21 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "ClassTemplateSpecializationDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 812, -// JSON-NEXT: "line": 15, +// JSON-NEXT: "offset": 937, +// JSON-NEXT: "line": 16, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 765, -// JSON-NEXT: "line": 14, +// JSON-NEXT: "offset": 890, +// JSON-NEXT: "line": 15, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 879, -// JSON-NEXT: "line": 19, +// JSON-NEXT: "offset": 1004, +// JSON-NEXT: "line": 20, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -871,19 +879,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXRecordDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 812, -// JSON-NEXT: "line": 15, +// JSON-NEXT: "offset": 937, +// JSON-NEXT: "line": 16, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 805, +// JSON-NEXT: "offset": 930, // JSON-NEXT: "col": 1, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 812, +// JSON-NEXT: "offset": 937, // JSON-NEXT: "col": 8, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: } @@ -896,19 +904,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "FieldDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 824, -// JSON-NEXT: "line": 16, +// JSON-NEXT: "offset": 949, +// JSON-NEXT: "line": 17, // JSON-NEXT: "col": 7, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 820, +// JSON-NEXT: "offset": 945, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 824, +// JSON-NEXT: "offset": 949, // JSON-NEXT: "col": 7, // JSON-NEXT: "tokLen": 8 // JSON-NEXT: } @@ -922,19 +930,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXConstructorDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 836, -// JSON-NEXT: "line": 17, +// JSON-NEXT: "offset": 961, +// JSON-NEXT: "line": 18, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 836, +// JSON-NEXT: "offset": 961, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 3 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 843, +// JSON-NEXT: "offset": 968, // JSON-NEXT: "col": 10, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -951,12 +959,12 @@ namespace test7 { // JSON-NEXT: "kind": "CompoundStmt", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 842, +// JSON-NEXT: "offset": 967, // JSON-NEXT: "col": 9, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 843, +// JSON-NEXT: "offset": 968, // JSON-NEXT: "col": 10, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -968,19 +976,19 @@ namespace test7 { // JSON-NEXT: "id": "0x{{.*}}", // JSON-NEXT: "kind": "CXXMethodDecl", // JSON-NEXT: "loc": { -// JSON-NEXT: "offset": 849, -// JSON-NEXT: "line": 18, +// JSON-NEXT: "offset": 974, +// JSON-NEXT: "line": 19, // JSON-NEXT: "col": 5, // JSON-NEXT: "tokLen": 6 // JSON-NEXT: }, // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 847, +// JSON-NEXT: "offset": 972, // JSON-NEXT: "col": 3, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-NEXT: "offset": 877, +// JSON-NEXT: "offset": 1002, // JSON-NEXT: "col": 33, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: } @@ -997,12 +1005,12 @@ namespace test7 { // JSON-NEXT: "kind": "CompoundStmt", // JSON-NEXT: "range": { // JSON-NEXT: "begin": { -// JSON-NEXT: "offset": 858, +// JSON-NEXT: "offset": 983, // JSON-NEXT: "col": 14, // JSON-NEXT: "tokLen": 1 // JSON-NEXT: }, // JSON-NEXT: "end": { -// JSON-... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/126937 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits