https://github.com/Endilll updated 
https://github.com/llvm/llvm-project/pull/237113

>From 22a0fa3b24570012022d4e5c4dac0853be006ec0 Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <[email protected]>
Date: Fri, 30 Oct 2026 08:39:19 +0300
Subject: [PATCH 1/5] [clang] Add tests for CWG issues about namespaces

---
 clang/test/CXX/drs/cwg10xx.cpp | 30 ++++++++++++++++
 clang/test/CXX/drs/cwg14xx.cpp | 36 +++++++++++++++++++
 clang/test/CXX/drs/cwg16xx.cpp | 30 ++++++++++++++++
 clang/test/CXX/drs/cwg17xx.cpp | 11 ++++++
 clang/test/CXX/drs/cwg1xx.cpp  |  3 +-
 clang/test/CXX/drs/cwg8xx.cpp  | 40 +++++++++++++++++++++
 clang/test/CXX/drs/cwg9xx.cpp  | 64 ++++++++++++++++++++++++++++++++++
 7 files changed, 212 insertions(+), 2 deletions(-)

diff --git a/clang/test/CXX/drs/cwg10xx.cpp b/clang/test/CXX/drs/cwg10xx.cpp
index 28c5e2e40129af..cdca0ff35a82d4 100644
--- a/clang/test/CXX/drs/cwg10xx.cpp
+++ b/clang/test/CXX/drs/cwg10xx.cpp
@@ -47,6 +47,10 @@ namespace cwg1004 { // cwg1004: 5
   Third<A<int> > t; // #cwg1004-t
 } // namespace cwg1004
 
+namespace cwg1012 { // cwg1012: 2.7
+static void f() {}
+} // namespace cwg1012
+
 namespace cwg1042 { // cwg1042: 3.5
 #if __cplusplus >= 201402L
   // C++14 added an attribute that we can test the semantics of.
@@ -112,6 +116,32 @@ namespace cwg1070 { // cwg1070: 3.5
 #endif
 } // namespace cwg1070
 
+namespace cwg1077 { // cwg1077: 2.7
+namespace N {
+  template <typename>
+  void f(); // #cwg1077-f
+
+  template <typename, typename>
+  struct S; // #cwg1077-S
+}
+namespace M {
+  template <>
+  void N::f<int>();
+  // expected-error@-1 {{function template specialization of 'f' not in a 
namespace enclosing 'N'}}
+  //   expected-note@#cwg1077-f {{explicitly specialized declaration is here}}
+
+  template <>
+  struct N::S<int, int>;
+  // expected-error@-1 {{class template specialization of 'S' not in a 
namespace enclosing 'N'}}
+  //   expected-note@#cwg1077-S {{explicitly specialized declaration is here}}
+
+  template <typename T>
+  struct N::S<int, T>;
+  // expected-error@-1 {{class template partial specialization of 'S' not in a 
namespace enclosing 'N'}}
+  //   expected-note@#cwg1077-S {{explicitly specialized declaration is here}}
+}
+} // namespace cwg1077
+
 namespace cwg1094 { // cwg1094: 24
 #if __cplusplus >= 201103L
 enum class E : bool { Zero, One };
diff --git a/clang/test/CXX/drs/cwg14xx.cpp b/clang/test/CXX/drs/cwg14xx.cpp
index f3b2bab8e7f3ac..c082cc62c827aa 100644
--- a/clang/test/CXX/drs/cwg14xx.cpp
+++ b/clang/test/CXX/drs/cwg14xx.cpp
@@ -110,6 +110,42 @@ namespace cwg1432 { // cwg1432: 16 open 2022-11-11
 #endif
 } // namespace cwg1432
 
+namespace cwg1439 { // cwg1439: 2.7
+class A {
+  template <typename>
+  friend void f();
+
+  template <typename>
+  friend struct B;
+};
+
+void (*p1)() = &f<int>;
+// expected-error@-1 {{use of undeclared identifier 'f'}}
+
+// FIXME: only the first error is relevant, others are noise
+void (*p2)() = &cwg1439::f<int>;
+// expected-error@-1 {{no member named 'f' in namespace 'cwg1439'}}
+// expected-error@-2 {{expected '(' for function-style cast or type 
construction}}
+// expected-error@-3 {{expected expression}}
+
+B<int>* p3;
+// expected-error@-1 {{no template named 'B'}}
+
+cwg1439::B<int>* p4;
+// expected-error@-1 {{no template named 'B' in namespace 'cwg1439'}}
+
+template <typename>
+void f();
+
+template <typename>
+struct B;
+
+void (*p5)() = &f<int>;
+void (*p6)() = &cwg1439::f<int>;
+B<int>* p7;
+cwg1439::B<int>* p8;
+} // namespace cwg1439
+
 namespace cwg1443 { // cwg1443: 2.7
 struct A {
   int i;
diff --git a/clang/test/CXX/drs/cwg16xx.cpp b/clang/test/CXX/drs/cwg16xx.cpp
index 91cc8261eb6bef..eedb50ca954f9a 100644
--- a/clang/test/CXX/drs/cwg16xx.cpp
+++ b/clang/test/CXX/drs/cwg16xx.cpp
@@ -175,6 +175,36 @@ namespace cwg1653 { // cwg1653: 4 c++17
   }
 } // namespace cwg1653
 
+namespace cwg1657 { // cwg1657: 3.6
+#if __cplusplus >= 201103L
+enum {
+  one [[]]
+  // cxx11-14-error@-1 {{attributes on an enumerator declaration are a C++17 
extension}}
+};
+enum E {
+  two [[]]
+  // cxx11-14-error@-1 {{attributes on an enumerator declaration are a C++17 
extension}}
+};
+enum struct E2 {
+  three [[]]
+  // cxx11-14-error@-1 {{attributes on an enumerator declaration are a C++17 
extension}}
+};
+
+inline namespace [[]] {} // #cwg1657-unnamed
+// cxx11-14-error@-1 {{attributes on a namespace declaration are a C++17 
extension}}
+namespace [[]] {}
+// cxx11-14-error@-1 {{attributes on a namespace declaration are a C++17 
extension}}
+// since-cxx11-warning@-2 {{inline namespace reopened as a non-inline 
namespace}}
+//   since-cxx11-note@#cwg1657-unnamed {{previous definition is here}}
+
+inline namespace [[]] N {}
+// cxx11-14-error@-1 {{attributes on a namespace declaration are a C++17 
extension}}
+
+namespace [[]] M {}
+// cxx11-14-error@-1 {{attributes on a namespace declaration are a C++17 
extension}}
+#endif
+} // namespace cwg1657
+
 namespace cwg1658 { // cwg1658: 5
   namespace DefCtor {
     class A { A(); }; // #cwg1658-A1
diff --git a/clang/test/CXX/drs/cwg17xx.cpp b/clang/test/CXX/drs/cwg17xx.cpp
index 62ea94c4c21733..96280e0ee08a81 100644
--- a/clang/test/CXX/drs/cwg17xx.cpp
+++ b/clang/test/CXX/drs/cwg17xx.cpp
@@ -264,3 +264,14 @@ template auto GLL::operator()<int>(int a) const -> int;
 
 #endif
 } // namespace cwg1780
+
+namespace cwg1795 { // cwg1975: 2.7
+namespace N {
+  struct S{}; // #cwg1795-S
+}
+namespace N {
+  struct S{};
+  // expected-error@-1 {{redefinition of 'S'}}
+  //   expected-note@#cwg1795-S {{previous definition is here}}
+}
+} // namespace cwg1795
diff --git a/clang/test/CXX/drs/cwg1xx.cpp b/clang/test/CXX/drs/cwg1xx.cpp
index e85adff7bb7fba..3bd8cd4c2f5265 100644
--- a/clang/test/CXX/drs/cwg1xx.cpp
+++ b/clang/test/CXX/drs/cwg1xx.cpp
@@ -1005,10 +1005,9 @@ namespace cwg165 { // cwg165: no
     struct A { friend struct B; };
     void f() { void g(); }
   }
-  // FIXME: cwg1477 says this is ok, cwg165 says it's ill-formed
   struct N::B {};
-  // FIXME: cwg165 says this is ill-formed, but the argument in cwg1477 says 
it's ok
   void N::g() {}
+  // FIXME-error@-1 {{'g' is not nominable in 'N'}}
 } // namespace cwg165
 
 namespace cwg166 { // cwg166: 2.9
diff --git a/clang/test/CXX/drs/cwg8xx.cpp b/clang/test/CXX/drs/cwg8xx.cpp
index b512411bdf27b7..688cd0ee27264c 100644
--- a/clang/test/CXX/drs/cwg8xx.cpp
+++ b/clang/test/CXX/drs/cwg8xx.cpp
@@ -6,6 +6,30 @@
 // RUN: %clang_cc1 -std=c++23 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,since-cxx20,since-cxx11
 // RUN: %clang_cc1 -std=c++2c -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,since-cxx20,since-cxx11
 
+namespace cwg812 { // cwg812: 2.8
+#if __cplusplus >= 201103L
+namespace Q {
+  inline namespace V1 {
+    int i = 1; // #cwg812-v1-i
+    int j = 1; // #cwg812-v1-j
+  }
+  inline namespace V2 {
+    int j = 2; // #cwg812-v2-j
+  }
+  int i = 0;   // #cwg812-Q-i
+}
+
+static_assert(Q::i, "");
+// since-cxx11-error@-1 {{reference to 'i' is ambiguous}}
+//   since-cxx11-note@#cwg812-v1-i {{candidate found by name lookup is 
'cwg812::Q::V1::i'}}
+//   since-cxx11-note@#cwg812-Q-i  {{candidate found by name lookup is 
'cwg812::Q::i'}}
+static_assert(Q::j, "");
+// since-cxx11-error@-1 {{reference to 'j' is ambiguous}}
+//   since-cxx11-note@#cwg812-v1-j {{candidate found by name lookup is 
'cwg812::Q::V1::j'}}
+//   since-cxx11-note@#cwg812-v2-j {{candidate found by name lookup is 
'cwg812::Q::V2::j'}}
+#endif
+} // namespace cwg812
+
 namespace cwg820 { // cwg820: 2.7
 export template <class T> struct B {};
 // cxx98-17-warning@-1 {{exported templates are unsupported}}
@@ -15,6 +39,22 @@ export template<typename T> void f() {}
 // since-cxx20-error@-2 {{export declaration can only be used within a module 
interface}}
 } // namespace cwg820
 
+namespace cwg861 { // cwg861: 2.7
+#if __cplusplus >= 201103L
+namespace A {
+  inline namespace B {
+    namespace C {
+      constexpr int i = 0;
+    }
+    using namespace C;
+  }
+  constexpr int i = 1;
+}
+
+static_assert(A::i == 1, "");
+#endif
+} // namespace cwg861
+
 namespace cwg873 { // cwg873: 3.0
 #if __cplusplus >= 201103L
 template <typename T> void f(T &&);
diff --git a/clang/test/CXX/drs/cwg9xx.cpp b/clang/test/CXX/drs/cwg9xx.cpp
index f218ecddb9686d..2826a69cebcd74 100644
--- a/clang/test/CXX/drs/cwg9xx.cpp
+++ b/clang/test/CXX/drs/cwg9xx.cpp
@@ -15,6 +15,52 @@ namespace std {
   };
 } // namespace std
 
+namespace cwg919 { // cwg919: 2.7
+#if __cplusplus >= 201103L
+namespace N {
+  inline namespace M {
+    template <typename, typename>
+    struct S;
+
+    template <typename>
+    void f();
+  }
+}
+
+template <>
+struct N::S<int, int> {};
+
+template <typename T>
+struct N::S<float, T> {};
+
+template <>
+void N::f<int>() {}
+#endif
+} // namespace cwg919
+
+namespace cwg921 { // cwg921: 3.1
+#if __cplusplus >= 201103L
+namespace N {
+  struct S {};
+  inline namespace M {
+    int f(S);
+  }
+}
+int i = f(N::S{});
+#endif
+} // namespace cwg921
+
+namespace cwg926 { // cwg926: 2.8
+#if __cplusplus >= 201103L
+namespace N {
+  inline namespace {
+    struct S {};
+  }
+}
+N::S s;
+#endif
+} // namespace cwg926
+
 namespace cwg930 { // cwg930: 2.7
 #if __cplusplus >= 201103L
 static_assert(alignof(int[]) == alignof(int), "");
@@ -207,6 +253,24 @@ enum struct E4 : int { e = static_cast<int>(E4()) };
 #endif
 } // namespace cwg977
 
+namespace cwg986 { // cwg986: 2.7
+namespace A {
+  int f(); // #cwg986-A-f
+}
+namespace B {
+  using namespace A;
+  int f();  // #cwg986-B-f
+}
+namespace C {
+  using namespace B;
+  int i = C::f();
+  int j = f();
+  // expected-error@-1 {{call to 'f' is ambiguous}}
+  //   expected-note@#cwg986-A-f {{candidate function}}
+  //   expected-note@#cwg986-B-f {{candidate function}}
+}
+} // namespace cwg986
+
 namespace cwg988 { // cwg988: 2.7
 #if __cplusplus >= 201103L
 void f(int& lvalue_ref, int&& rvalue_ref) {

>From 3c848a254bd1800e4c22367c859079b3f741f1ea Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <[email protected]>
Date: Fri, 30 Oct 2026 12:06:32 +0300
Subject: [PATCH 2/5] Fix CWG1012 test

---
 clang/test/CXX/drs/cwg10xx.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/CXX/drs/cwg10xx.cpp b/clang/test/CXX/drs/cwg10xx.cpp
index cdca0ff35a82d4..19436f610a2264 100644
--- a/clang/test/CXX/drs/cwg10xx.cpp
+++ b/clang/test/CXX/drs/cwg10xx.cpp
@@ -48,7 +48,7 @@ namespace cwg1004 { // cwg1004: 5
 } // namespace cwg1004
 
 namespace cwg1012 { // cwg1012: 2.7
-static void f() {}
+static int f;
 } // namespace cwg1012
 
 namespace cwg1042 { // cwg1042: 3.5

>From ff6782aa42b510948491b3a3fcd0aecea6de0c32 Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <[email protected]>
Date: Fri, 30 Oct 2026 12:29:56 +0300
Subject: [PATCH 3/5] Make sure that CWG1439 checks that friendship was granted

---
 clang/test/CXX/drs/cwg14xx.cpp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/clang/test/CXX/drs/cwg14xx.cpp b/clang/test/CXX/drs/cwg14xx.cpp
index c082cc62c827aa..dcc88e76437832 100644
--- a/clang/test/CXX/drs/cwg14xx.cpp
+++ b/clang/test/CXX/drs/cwg14xx.cpp
@@ -113,17 +113,19 @@ namespace cwg1432 { // cwg1432: 16 open 2022-11-11
 namespace cwg1439 { // cwg1439: 2.7
 class A {
   template <typename>
-  friend void f();
+  friend int f();
 
   template <typename>
   friend struct B;
+
+  static int private_i;
 };
 
-void (*p1)() = &f<int>;
+int (*p1)() = &f<int>;
 // expected-error@-1 {{use of undeclared identifier 'f'}}
 
 // FIXME: only the first error is relevant, others are noise
-void (*p2)() = &cwg1439::f<int>;
+int (*p2)() = &cwg1439::f<int>;
 // expected-error@-1 {{no member named 'f' in namespace 'cwg1439'}}
 // expected-error@-2 {{expected '(' for function-style cast or type 
construction}}
 // expected-error@-3 {{expected expression}}
@@ -135,13 +137,15 @@ cwg1439::B<int>* p4;
 // expected-error@-1 {{no template named 'B' in namespace 'cwg1439'}}
 
 template <typename>
-void f();
+int f() { return A::private_i; }
 
 template <typename>
-struct B;
+struct B {
+  int i = A::private_i;
+};
 
-void (*p5)() = &f<int>;
-void (*p6)() = &cwg1439::f<int>;
+int (*p5)() = &f<int>;
+int (*p6)() = &cwg1439::f<int>;
 B<int>* p7;
 cwg1439::B<int>* p8;
 } // namespace cwg1439

>From 21742e25790de4ef2d7a105ce2e0309b887ff9f9 Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <[email protected]>
Date: Fri, 30 Oct 2026 13:21:45 +0300
Subject: [PATCH 4/5] Add test for CWG987

---
 clang/test/CXX/drs/cwg14xx.cpp |  4 +++-
 clang/test/CXX/drs/cwg17xx.cpp | 25 +++++++++++++++++-----
 clang/test/CXX/drs/cwg9xx.cpp  | 39 +++++++++++++++++++++++++++++++++-
 clang/www/cxx_dr_status.html   | 24 ++++++++++-----------
 4 files changed, 73 insertions(+), 19 deletions(-)

diff --git a/clang/test/CXX/drs/cwg14xx.cpp b/clang/test/CXX/drs/cwg14xx.cpp
index dcc88e76437832..7e81681e5aeb42 100644
--- a/clang/test/CXX/drs/cwg14xx.cpp
+++ b/clang/test/CXX/drs/cwg14xx.cpp
@@ -141,7 +141,9 @@ int f() { return A::private_i; }
 
 template <typename>
 struct B {
-  int i = A::private_i;
+  int g() {
+    return A::private_i;
+  }
 };
 
 int (*p5)() = &f<int>;
diff --git a/clang/test/CXX/drs/cwg17xx.cpp b/clang/test/CXX/drs/cwg17xx.cpp
index 96280e0ee08a81..26913154f98b91 100644
--- a/clang/test/CXX/drs/cwg17xx.cpp
+++ b/clang/test/CXX/drs/cwg17xx.cpp
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -std=c++98 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected
-// RUN: %clang_cc1 -std=c++11 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
-// RUN: %clang_cc1 -std=c++14 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
-// RUN: %clang_cc1 -std=c++17 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
+// RUN: %clang_cc1 -std=c++11 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11,cxx11-17
+// RUN: %clang_cc1 -std=c++14 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11,cxx11-17
+// RUN: %clang_cc1 -std=c++17 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11,cxx11-17
 // RUN: %clang_cc1 -std=c++20 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
 // RUN: %clang_cc1 -std=c++23 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
 // RUN: %clang_cc1 -std=c++2c %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
@@ -119,6 +119,21 @@ template B::B(int, double);
 
 // cwg1739: na
 
+namespace cwg1742 { // cwg1742: 13
+#if __cplusplus >= 201103L
+enum struct E {
+  one
+};
+using E::one;
+// cxx11-17-error@-1 {{using declaration naming a scoped enumerator is a C++20 
extension}}
+struct S {
+  using E::one;
+  // cxx11-17-error@-1 {{using declaration naming a scoped enumerator is a 
C++20 extension}}
+  // cxx11-17-error@-2 {{using declaration in class refers into 'E', which is 
not a class}}
+};
+#endif
+} // namespace cwg1742
+
 // cwg1748 is in cwg1748.cpp
 
 namespace cwg1753 { // cwg1753: 11
@@ -267,10 +282,10 @@ template auto GLL::operator()<int>(int a) const -> int;
 
 namespace cwg1795 { // cwg1975: 2.7
 namespace N {
-  struct S{}; // #cwg1795-S
+  struct S {}; // #cwg1795-S
 }
 namespace N {
-  struct S{};
+  struct S {};
   // expected-error@-1 {{redefinition of 'S'}}
   //   expected-note@#cwg1795-S {{previous definition is here}}
 }
diff --git a/clang/test/CXX/drs/cwg9xx.cpp b/clang/test/CXX/drs/cwg9xx.cpp
index 2826a69cebcd74..1917748c8b0391 100644
--- a/clang/test/CXX/drs/cwg9xx.cpp
+++ b/clang/test/CXX/drs/cwg9xx.cpp
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -std=c++98 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected
+// RUN: %clang_cc1 -std=c++98 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,cxx98
 // RUN: %clang_cc1 -std=c++11 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
 // RUN: %clang_cc1 -std=c++14 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
 // RUN: %clang_cc1 -std=c++17 %s -fexceptions -fcxx-exceptions 
-pedantic-errors -verify-directives -verify=expected,since-cxx11
@@ -271,6 +271,43 @@ namespace C {
 }
 } // namespace cwg986
 
+namespace cwg987 { // cwg987: 2.7
+namespace N {
+  template <typename, typename>
+  struct S; // #cwg987-S
+
+  template <typename>
+  int f();  // #cwg987-f
+}
+
+template <>
+struct N::S<int, int> {};
+
+template <typename T>
+struct N::S<float, T> {};
+
+template <>
+int N::f<int>() { return 0; }
+
+S<int, int> s1;
+// expected-error@-1 {{no template named 'S'; did you mean 'N::S'?}}
+//   expected-note@#cwg987-S {{'N::S' declared here}}
+cwg987::S<int, int> s2;
+// expected-error@-1 {{no template named 'S' in namespace 'cwg987'; did you 
mean 'N::S'?}}
+//   expected-note@#cwg987-S {{'N::S' declared here}}
+
+int (*p1)() = &f<int>;
+// since-cxx11-error@-1 {{use of undeclared identifier 'f'}}
+// cxx98-error@-2 {{use of undeclared identifier 'f'; did you mean 'N::f'?}}
+//   cxx98-note@#cwg987-f {{'N::f' declared here}}
+int (*p2)() = &cwg987::f<int>;
+// since-cxx11-error@-1 {{no member named 'f' in namespace 'cwg987'}}
+// since-cxx11-error@-2 {{expected '(' for function-style cast or type 
construction}}
+// since-cxx11-error@-3 {{expected expression}}
+// cxx98-error@-4 {{no template named 'f' in namespace 'cwg987'; did you mean 
'N::f'?}}
+//   cxx98-note@#cwg987-f {{'N::f' declared here}}
+} // namespace cwg987
+
 namespace cwg988 { // cwg988: 2.7
 #if __cplusplus >= 201103L
 void f(int& lvalue_ref, int&& rvalue_ref) {
diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index 31f4e026353961..319e16af5c9301 100755
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -5678,7 +5678,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.def";>namespace.def</a>]</td>
     <td>CD2</td>
     <td>Duplicate names in inline namespaces</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.8</td>
   </tr>
   <tr class="open" id="813">
     <td><a href="https://cplusplus.github.io/CWG/issues/813.html";>813</a></td>
@@ -5923,7 +5923,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.qual";>namespace.qual</a>]</td>
     <td>CD2</td>
     <td>Unintended ambiguity in inline namespace lookup</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="862">
     <td><a href="https://cplusplus.github.io/CWG/issues/862.html";>862</a></td>
@@ -6210,7 +6210,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.def";>namespace.def</a>]</td>
     <td>CD2</td>
     <td>Contradictions regarding inline namespaces</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="920">
     <td><a href="https://cplusplus.github.io/CWG/issues/920.html";>920</a></td>
@@ -6224,7 +6224,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.def";>namespace.def</a>]</td>
     <td>CD2</td>
     <td>Unclear specification of inline namespaces</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 3.1</td>
   </tr>
   <tr id="922">
     <td><a href="https://cplusplus.github.io/CWG/issues/922.html";>922</a></td>
@@ -6259,7 +6259,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a 
href="https://wg21.link/namespace.unnamed";>namespace.unnamed</a>]</td>
     <td>CD2</td>
     <td>Inline unnamed namespaces</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.8</td>
   </tr>
   <tr id="927">
     <td><a href="https://cplusplus.github.io/CWG/issues/927.html";>927</a></td>
@@ -6679,14 +6679,14 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.udir";>namespace.udir</a>]</td>
     <td>CD2</td>
     <td>Transitivity of <I>using-directive</I>s versus qualified lookup</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="987">
     <td><a href="https://cplusplus.github.io/CWG/issues/987.html";>987</a></td>
     <td>[<a href="https://wg21.link/basic.namespace";>basic.namespace</a>]</td>
     <td>CD4</td>
     <td>Which declarations introduce namespace members?</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="988">
     <td><a href="https://cplusplus.github.io/CWG/issues/988.html";>988</a></td>
@@ -6861,7 +6861,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a 
href="https://wg21.link/namespace.unnamed";>namespace.unnamed</a>]</td>
     <td>C++11</td>
     <td>Undeprecating <TT>static</TT></td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="1013">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1013.html";>1013</a></td>
@@ -7316,7 +7316,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a 
href="https://wg21.link/namespace.memdef";>namespace.memdef</a>]</td>
     <td>NAD</td>
     <td>Explicit specializations in non-containing namespaces</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="1078">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1078.html";>1078</a></td>
@@ -9854,7 +9854,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a 
href="https://wg21.link/namespace.memdef";>namespace.memdef</a>]</td>
     <td>CD3</td>
     <td>Lookup and friend template declarations</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="1440">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1440.html";>1440</a></td>
@@ -11384,7 +11384,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.def";>namespace.def</a>]</td>
     <td>CD4</td>
     <td>Attributes for namespaces and enumerators</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 3.6</td>
   </tr>
   <tr id="1658">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1658.html";>1658</a></td>
@@ -12350,7 +12350,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>[<a href="https://wg21.link/namespace.def";>namespace.def</a>]</td>
     <td>CD4</td>
     <td>Disambiguating <I>original-namespace-definition</I> and 
<I>extension-namespace-definition</I></td>
-    <td class="unknown" align="center">Unknown</td>
+    <td class="full" align="center">Clang 2.7</td>
   </tr>
   <tr id="1796">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1796.html";>1796</a></td>

>From 7acb3d40d0995529789242a1039433777c216708 Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <[email protected]>
Date: Fri, 30 Oct 2026 16:38:01 +0300
Subject: [PATCH 5/5] Add missing RUN line changes to cwg16xx.cpp

---
 clang/test/CXX/drs/cwg16xx.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/test/CXX/drs/cwg16xx.cpp b/clang/test/CXX/drs/cwg16xx.cpp
index eedb50ca954f9a..02cc8e24f139a9 100644
--- a/clang/test/CXX/drs/cwg16xx.cpp
+++ b/clang/test/CXX/drs/cwg16xx.cpp
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -std=c++98 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx98-14,cxx98
-// RUN: %clang_cc1 -std=c++11 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,cxx98-14,since-cxx11,cxx11
-// RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,since-cxx14,cxx98-14,since-cxx11
+// RUN: %clang_cc1 -std=c++11 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,cxx11-14,cxx98-14,since-cxx11,cxx11
+// RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,cxx11-14,since-cxx14,cxx98-14,since-cxx11
 // RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,since-cxx14,since-cxx17,since-cxx11
 // RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,cxx11-20,since-cxx14,since-cxx20,since-cxx17,since-cxx11
 // RUN: %clang_cc1 -std=c++23 -triple x86_64-unknown-unknown %s -fexceptions 
-fcxx-exceptions -pedantic-errors -verify-directives 
-verify=expected,since-cxx23,since-cxx14,since-cxx20,since-cxx17,since-cxx11

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to