Reapply "[NFC] Update CXXSTatus to show we implement CWG 2061""
authorErich Keane <erich.keane@intel.com>
Tue, 3 Jan 2023 14:27:07 +0000 (06:27 -0800)
committerErich Keane <erich.keane@intel.com>
Tue, 3 Jan 2023 14:58:45 +0000 (06:58 -0800)
This reverts commit a5ae5afa521f75e87f9018d8361aa5a1cadc7a86.

FIx the test that didn't consider the test was running in pre-C++11
mode.

clang/test/CXX/drs/dr20xx.cpp
clang/www/cxx_dr_status.html

index aef14dd..c167f41 100644 (file)
@@ -310,3 +310,31 @@ namespace dr2094 { // dr2094: 5
   static_assert(__is_trivially_assignable(A, const A&), "");
   static_assert(__is_trivially_assignable(B, const B&), "");
 }
+
+namespace dr2061 { // dr2061: yes
+#if __cplusplus >= 201103L
+  namespace A {
+    inline namespace b {
+      namespace C {
+        // 'f' is the example from the DR.  'S' is an example where if we didn't
+        // properly handle the two being the same, we would get an incomplete
+        // type error during attempted instantiation.
+        template<typename T> void f();
+        template<typename T> struct S;
+      }
+    }
+  }
+
+  namespace A {
+    namespace C {
+      template<> void f<int>() { }
+      template<> struct S<int> { };
+    }
+  }
+
+  void use() {
+    A::C::f<int>();
+    A::C::S<int> s;
+  }
+#endif // C++11
+}
index 11c90cc..fe609ea 100755 (executable)
@@ -12173,7 +12173,7 @@ and <I>POD class</I></td>
     <td><a href="https://wg21.link/cwg2061">2061</a></td>
     <td>CD4</td>
     <td>Inline namespace after simplifications</td>
-    <td class="none" align="center">Unknown</td>
+    <td class="full" align="center">Yes</td>
   </tr>
   <tr id="2062">
     <td><a href="https://wg21.link/cwg2062">2062</a></td>