diff --git a/clang/test/CXX/drs/dr20xx.cpp b/clang/test/CXX/drs/dr20xx.cpp index aef14dd222595c..0e39015868c7df 100644 --- a/clang/test/CXX/drs/dr20xx.cpp +++ b/clang/test/CXX/drs/dr20xx.cpp @@ -310,3 +310,29 @@ namespace dr2094 { // dr2094: 5 static_assert(__is_trivially_assignable(A, const A&), ""); static_assert(__is_trivially_assignable(B, const B&), ""); } + +namespace dr2061 { // dr2061: yes + 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 void f(); + template struct S; + } + } + } + + namespace A { + namespace C { + template<> void f() { } + template<> struct S { }; + } + } + + void use() { + A::C::f(); + A::C::S s; + } +} diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 11c90cc9e940dc..fe609ea08a63d9 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -12173,7 +12173,7 @@

C++ defect report implementation status

2061 CD4 Inline namespace after simplifications - Unknown + Yes 2062