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

2024-05-29 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

Changes to `Sema.h` and DR test suite look good.

https://github.com/llvm/llvm-project/pull/93448
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (PR #94056)

2024-06-02 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

`Sema.h` changes look good.

https://github.com/llvm/llvm-project/pull/94056
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (PR #94056)

2024-06-08 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

@asl It would be nice if you submit the next round of review as a single 
review, instead of 29 individual comments.

https://github.com/llvm/llvm-project/pull/94056
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-06-19 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

`Sema.h` changes look good.

https://github.com/llvm/llvm-project/pull/96023
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/19.x: [clang] Remove `__is_layout_compatible` from revertible type traits list (#100572) (PR #100590)

2024-07-26 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

Release note for `__is_layout_compatible` is already present. This change in 
particular is not worth a release note.

https://github.com/llvm/llvm-project/pull/100590
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/19.x: [clang][Sema] Add support for OpenBSD's syslog format attribute (#97366) (PR #100703)

2024-07-26 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

I'm not sure we want to backport a feature this late.
I also don't see any discussion of this being critical for 19 in #97366

https://github.com/llvm/llvm-project/pull/100703
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [llvm] release/19.x: [clang] Fix definition of layout-compatible to ignore empty classes (PR #101491)

2024-08-01 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll created 
https://github.com/llvm/llvm-project/pull/101491

Backport of #92103, as suggested by me and Aaron Ballman in 
https://github.com/llvm/llvm-project/pull/92103#discussion_r1699172578 and 
https://github.com/llvm/llvm-project/pull/92103#discussion_r1699982348 
respectively.

>From c6c4598d090a90675c9b19c5c33c33f84c976b1d Mon Sep 17 00:00:00 2001
From: Mital Ashok 
Date: Thu, 1 Aug 2024 15:05:46 +0100
Subject: [PATCH] [Clang] Fix definition of layout-compatible to ignore empty
 classes (#92103)

Also changes the behaviour of `__builtin_is_layout_compatible`

None of the historic nor the current definition of layout-compatible
classes mention anything about base classes (other than implicitly
through being standard-layout) and are defined in terms of members, not
direct members.
---
 clang/include/clang/AST/DeclCXX.h  |  7 +++
 clang/lib/AST/DeclCXX.cpp  | 36 +++
 clang/lib/Sema/SemaChecking.cpp| 74 ++
 clang/test/SemaCXX/type-traits.cpp | 11 +
 llvm/include/llvm/ADT/STLExtras.h  |  6 +++
 5 files changed, 84 insertions(+), 50 deletions(-)

diff --git a/clang/include/clang/AST/DeclCXX.h 
b/clang/include/clang/AST/DeclCXX.h
index fb52ac804849d8..0923736a95f97e 100644
--- a/clang/include/clang/AST/DeclCXX.h
+++ b/clang/include/clang/AST/DeclCXX.h
@@ -1210,6 +1210,13 @@ class CXXRecordDecl : public RecordDecl {
 return D.HasPublicFields || D.HasProtectedFields || D.HasPrivateFields;
   }
 
+  /// If this is a standard-layout class or union, any and all data members 
will
+  /// be declared in the same type.
+  ///
+  /// This retrieves the type where any fields are declared,
+  /// or the current class if there is no class with fields.
+  const CXXRecordDecl *getStandardLayoutBaseWithFields() const;
+
   /// Whether this class is polymorphic (C++ [class.virtual]),
   /// which means that the class contains or inherits a virtual function.
   bool isPolymorphic() const { return data().Polymorphic; }
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index b573c2713a3aaa..9a3ede426e9143 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -561,6 +561,42 @@ void CXXRecordDecl::addedClassSubobject(CXXRecordDecl 
*Subobj) {
 data().StructuralIfLiteral = false;
 }
 
+const CXXRecordDecl *CXXRecordDecl::getStandardLayoutBaseWithFields() const {
+  assert(
+  isStandardLayout() &&
+  "getStandardLayoutBaseWithFields called on a non-standard-layout type");
+#ifdef EXPENSIVE_CHECKS
+  {
+unsigned NumberOfBasesWithFields = 0;
+if (!field_empty())
+  ++NumberOfBasesWithFields;
+llvm::SmallPtrSet UniqueBases;
+forallBases([&](const CXXRecordDecl *Base) -> bool {
+  if (!Base->field_empty())
+++NumberOfBasesWithFields;
+  assert(
+  UniqueBases.insert(Base->getCanonicalDecl()).second &&
+  "Standard layout struct has multiple base classes of the same type");
+  return true;
+});
+assert(NumberOfBasesWithFields <= 1 &&
+   "Standard layout struct has fields declared in more than one 
class");
+  }
+#endif
+  if (!field_empty())
+return this;
+  const CXXRecordDecl *Result = this;
+  forallBases([&](const CXXRecordDecl *Base) -> bool {
+if (!Base->field_empty()) {
+  // This is the base where the fields are declared; return early
+  Result = Base;
+  return false;
+}
+return true;
+  });
+  return Result;
+}
+
 bool CXXRecordDecl::hasConstexprDestructor() const {
   auto *Dtor = getDestructor();
   return Dtor ? Dtor->isConstexpr() : defaultedDestructorIsConstexpr();
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index cf1196ad23c217..9088b5e285bf81 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -13664,10 +13664,11 @@ void Sema::DiagnoseSelfMove(const Expr *LHSExpr, 
const Expr *RHSExpr,
 
 //===--- Layout compatibility --//
 
-static bool isLayoutCompatible(ASTContext &C, QualType T1, QualType T2);
+static bool isLayoutCompatible(const ASTContext &C, QualType T1, QualType T2);
 
 /// Check if two enumeration types are layout-compatible.
-static bool isLayoutCompatible(ASTContext &C, EnumDecl *ED1, EnumDecl *ED2) {
+static bool isLayoutCompatible(const ASTContext &C, const EnumDecl *ED1,
+   const EnumDecl *ED2) {
   // C++11 [dcl.enum] p8:
   // Two enumeration types are layout-compatible if they have the same
   // underlying type.
@@ -13678,8 +13679,8 @@ static bool isLayoutCompatible(ASTContext &C, EnumDecl 
*ED1, EnumDecl *ED2) {
 /// Check if two fields are layout-compatible.
 /// Can be used on union members, which are exempt from alignment requirement
 /// of common initial sequence.
-static bool isLayoutCompatible(ASTContext &C, FieldDecl *Field1,
-   FieldDecl *Field2,
+static bool isLayoutCompatible(const ASTC

[llvm-branch-commits] [clang] [llvm] release/19.x: [clang] Fix definition of layout-compatible to ignore empty classes (PR #101491)

2024-08-01 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll milestoned 
https://github.com/llvm/llvm-project/pull/101491
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [llvm] release/19.x: [clang] Fix definition of layout-compatible to ignore empty classes (PR #101491)

2024-08-01 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/101491
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [Clang] Add a release note deprecating __is_nullptr (PR #101638)

2024-08-02 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll milestoned 
https://github.com/llvm/llvm-project/pull/101638
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [Clang] Add a release note deprecating __is_nullptr (PR #101638)

2024-08-02 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.


https://github.com/llvm/llvm-project/pull/101638
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [llvm] release/19.x: [clang] Fix definition of layout-compatible to ignore empty classes (PR #101491)

2024-08-02 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

This should only affect `__builtin_is_layout_compatible` introduced in Clang 
19, so we don't have an ABI we need to be compatible with.

https://github.com/llvm/llvm-project/pull/101491
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/19.x: [libclang] Fix symbol version of `getBinaryOpcode` functions (#101820) (PR #101824)

2024-08-03 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.

I don't consider this critical, but I can see this becoming a source of 
confusion for a long time.

https://github.com/llvm/llvm-project/pull/101824
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang] Revise IDE folder structure (PR #89743)

2024-05-06 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

CC @AaronBallman 

https://github.com/llvm/llvm-project/pull/89743
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-20 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-20 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -10082,7 +10082,9 @@ class Sema final : public SemaBase {
 
   bool SubstTemplateArgument(const TemplateArgumentLoc &Input,
  const MultiLevelTemplateArgumentList 
&TemplateArgs,
- TemplateArgumentLoc &Output);
+ TemplateArgumentLoc &Output,
+ SourceLocation Loc = {},
+ const DeclarationName &Entity = {});

Endilll wrote:

Changes to both declaration and implementation of `SubstTemplateArgument` 
doesn't seem related.

https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-20 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

It looks like you have two sets of changes here:
1) the ones related to `TemplateTypeParmDecl::getDefaultArgument()`
2) the ones related to `Sema::SubstTemplateArgument()`
You don't seem to touch the latter in PR description. It would be nice if you 
can explain why you do both sets of changes in one PR, or split the PR in two.

https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-20 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-20 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -10082,7 +10082,9 @@ class Sema final : public SemaBase {
 
   bool SubstTemplateArgument(const TemplateArgumentLoc &Input,
  const MultiLevelTemplateArgumentList 
&TemplateArgs,
- TemplateArgumentLoc &Output);
+ TemplateArgumentLoc &Output,
+ SourceLocation Loc = {},
+ const DeclarationName &Entity = {});

Endilll wrote:

Can you add this to the description?

https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-21 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

LGTM, but you should wait for someone with more knowledge of our templates.

https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-21 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/92854
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-27 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/93433
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2024-05-27 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

`Sema.h` changes look good to me.

https://github.com/llvm/llvm-project/pull/93433
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [libcxx] [clang] PR for llvm/llvm-project#79762 (PR #79763)

2024-01-28 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.

Changes to DR tests look good to me.

https://github.com/llvm/llvm-project/pull/79763
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -1503,6 +1505,7 @@ namespace cwg389 { // cwg389: no
 typedef enum {} const D; // #cwg389-D
   };
   template struct T {};
+  // cxx98-note@-1 5{{template parameter is declared here}}

Endilll wrote:

Those, too, should go to their respective errors

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

Good job following the way expected directives are written in C++ DR tests, but 
I have to ask you to fix the remaining discrepancies to keep them consistent.

I also spotted the same note emitted twice for the same line. That seems 
unfortunate.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -637,6 +641,8 @@ namespace cwg431 { // cwg431: 2.8
 
 namespace cwg432 { // cwg432: 3.0
   template struct A {};
+  // expected-note@-1{{template parameter is declared here}}
+  // since-cxx11-note@-2 {{template parameter is declared here}}

Endilll wrote:

Hmm, why do you have this note emitted twice in C++11 and on?

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll edited 
https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -83,6 +83,7 @@ namespace cwg603 { // cwg603: 3.1
   typedef S<'\001'> S1;
   typedef S<(1ul << __CHAR_BIT__) + 1> S1;
   // since-cxx11-error@-1 {{non-type template argument evaluates to 257, which 
cannot be narrowed to type 'unsigned char'}}
+  //   since-cxx11-note@-4 {{template parameter is declared here}}

Endilll wrote:

Use a label instead of `-4`, readers shouldn't have to count lines to 
understand which line the note is emitted for.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -637,6 +641,8 @@ namespace cwg431 { // cwg431: 2.8
 
 namespace cwg432 { // cwg432: 3.0
   template struct A {};
+  // expected-note@-1{{template parameter is declared here}}
+  // since-cxx11-note@-2 {{template parameter is declared here}}

Endilll wrote:

```suggestion
  //   since-cxx11-note@-2 {{template parameter is declared here}}
```

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -318,6 +318,7 @@ namespace cwg319 { // cwg319: no
   pa parr; // ok, type has linkage despite using 'n1'
 
   template struct X {};
+  // cxx98-note@-1 2{{template parameter is declared here}}

Endilll wrote:

Those two notes should go to their respective errors

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -1018,9 +1019,9 @@ namespace cwg62 { // cwg62: 2.9
   struct A {
 struct { int n; } b;
   };
-  template struct X {};
-  template T get() { return get(); }
-  template int take(T) { return 0; }
+  template struct X {}; // cxx98-note 6{{template parameter is 
declared here}}

Endilll wrote:

Those notes have to be places together with their respective errors, one by 
one, without matching for multiple notes with one expected directive.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-06 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -637,6 +641,8 @@ namespace cwg431 { // cwg431: 2.8
 
 namespace cwg432 { // cwg432: 3.0
   template struct A {};
+  // expected-note@-1{{template parameter is declared here}}
+  // since-cxx11-note@-2 {{template parameter is declared here}}

Endilll wrote:

Oh, put them closer to their respective errors then.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/20.x: [clang] Handle f(no-)strict-overflow, f(no-)wrapv, f(no-)wrapv-pointer like gcc (#126524) (PR #126535)

2025-02-18 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

@nico I think that the release note from #122486 doesn't cover changes in this 
PR. Can you expand existing release notes or add another one, which explains 
how we handle combination of those driver arguments?

https://github.com/llvm/llvm-project/pull/126535
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang-tools-extra] [clang] improve class type sugar preservation in pointers to members (PR #130537)

2025-03-09 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

Changes to C++ DR tests look good.
> FIXME: why diagnostic says just `Y` and not `cwg794::Y`, like `cwg794::X`?

This FIXME resolved in the opposite direction I anticipated back when I wrote 
it, but that's fine, as long as we print both types in a consistent manner.

https://github.com/llvm/llvm-project/pull/130537
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-19 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -1018,9 +1019,9 @@ namespace cwg62 { // cwg62: 2.9
   struct A {
 struct { int n; } b;
   };
-  template struct X {};
-  template T get() { return get(); }
-  template int take(T) { return 0; }
+  template struct X {}; // cxx98-note 6{{template parameter is 
declared here}}

Endilll wrote:

> There was no discussion about these points I raised on that PR, was there any 
> other discussions in other mediums, like Discourse?

No.

> I think the more important question is, do we need this amount of detail for 
> the diagnostic messages of DR tests specifically, what makes them more 
> special than the other tests in this case?

It happened with DR tests, because I've been spending a significant chunk of my 
time in `clang/test/CXX/drs`, so I had a holistic view on everything in there, 
and was willing to improve the status quo. If we as a community think that this 
approach to `-verify` tests is good, it can be applied elsewhere too, but 
that's an RFC material, I guess. I remember @erichkeane being sad that so 
little tests use bookmarks, precisely for readability reasons for reviewers, so 
I think there is support to write expected directives in a similar way outside 
of DR tests.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


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

2025-02-19 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -1018,9 +1019,9 @@ namespace cwg62 { // cwg62: 2.9
   struct A {
 struct { int n; } b;
   };
-  template struct X {};
-  template T get() { return get(); }
-  template int take(T) { return 0; }
+  template struct X {}; // cxx98-note 6{{template parameter is 
declared here}}

Endilll wrote:

Good point about tooling, I think that something along the lines of 
`-verify-check-directives-order` sounds implementable, and I'll look into that 
in the future. For now, I would like to see the changes I requested, for 
consistency with the rest of DR tests if anything else. I can do that myself if 
you don't have time for this.

https://github.com/llvm/llvm-project/pull/126088
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use LLVM_ENABLE_RUNTIMES for runtimes builds on Linux (PR #142694)

2025-06-05 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

> We're using LLVM_ENABLE_RUNTIMES. It uses the just built clang to build the 
> runtimes specified.

That explains it, thank you.
There's still an outstanding question of unrelated changes to libc++ tests that 
are included in this PR.

https://github.com/llvm/llvm-project/pull/142694
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use LLVM_ENABLE_RUNTIMES for runtimes builds on Linux (PR #142694)

2025-06-05 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.


https://github.com/llvm/llvm-project/pull/142694
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [CI] Migrate to runtimes build (PR #142696)

2025-06-05 Thread Vlad Serebrennikov via llvm-branch-commits


@@ -49,8 +49,7 @@
 },
 "lld": {"bolt", "cross-project-tests"},
 # TODO(issues/132795): LLDB should be enabled on clang changes.
-"clang": {"clang-tools-extra", "compiler-rt", "cross-project-tests"},
-"clang-tools-extra": {"libc"},

Endilll wrote:

I see that `clang-tools-extra` used to depend on `libc`, but I can't find it 
anywhere now

https://github.com/llvm/llvm-project/pull/142696
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use Github Native Groups in monolithic-* scripts (PR #143481)

2025-06-10 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.

It would be nice to give them properly formatted names (e.g. `Ninja Runtimes 
(Clang modules)`), because when I wrote them, the context I expected them to be 
seen was local editor with lengthy log file opened. Now it's going to be in UI.

https://github.com/llvm/llvm-project/pull/143481
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use LLVM_ENABLE_RUNTIMES for runtimes builds on Linux (PR #142694)

2025-06-03 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll commented:

Something feels wrong with this PR:
1) There's a "full changes here" button on the Files Changed tab, which shows 
me a bunch of changes to libc++ tests adding `#include `
2) In the new version, I don't see `LLVM_ENABLE_RUTIMES` passed to cmake. Not 
even `CMAKE_BUILD_TYPE` and `CMAKE_CXX_COMPILER`.

What's going on?

https://github.com/llvm/llvm-project/pull/142694
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use LLVM_ENABLE_RUNTIMES for runtimes builds on Linux (PR #142694)

2025-06-04 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

> I'm not sure how you're seeing this.

![image](https://github.com/user-attachments/assets/98a45827-267f-4666-8211-d9868d785ff2)
![image](https://github.com/user-attachments/assets/e030812d-c9a1-40b1-aef7-1b9cd03369d9)


https://github.com/llvm/llvm-project/pull/142694
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [CI] Use LLVM_ENABLE_RUNTIMES for runtimes builds on Linux (PR #142694)

2025-06-04 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

I just opened 9e3490b51f85d1aff3978dc32aadde4531363774 in my local git, and 
yes, all libc++ changes are there alongside changes to `monolithic-linux.sh` 
that we're interested in

https://github.com/llvm/llvm-project/pull/142694
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [CI] Migrate to runtimes build (PR #142696)

2025-06-05 Thread Vlad Serebrennikov via llvm-branch-commits

Endilll wrote:

> > It doesn't relate to multilib, I understand that, but does it mean we're 
> > going to test more than one runtime or that we'll test the same runtime 
> > multiple ways?
> 
> It's runtimes that we test in multiple ways (`-std=c++26` and 
> `enable_modules=clang` currently). I felt multiconfig covered that and 
> couldn't really think of a better name. If anyone else has better ideas I'd 
> be happy to change it up.

Multiconfig in this context has some strong associations with CMake's Ninja 
Multi-Config generator for me. My suggestion is `needs_reconfig`.

https://github.com/llvm/llvm-project/pull/142696
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/21.x: [libclang] Fix version for symbol clang_visitCXXMethods (#148958) (PR #148980)

2025-07-16 Thread Vlad Serebrennikov via llvm-branch-commits

https://github.com/Endilll approved this pull request.


https://github.com/llvm/llvm-project/pull/148980
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits