diff --git a/clang/test/CXX/drs/cwg7xx.cpp b/clang/test/CXX/drs/cwg7xx.cpp index 507eb8fb71435..842d172d37900 100644 --- a/clang/test/CXX/drs/cwg7xx.cpp +++ b/clang/test/CXX/drs/cwg7xx.cpp @@ -337,3 +337,15 @@ template void h(int i = 0, T ...args, int j = 1) {} #endif } + +namespace cwg794 { // cwg794: 2.7 +struct B {}; +struct D : B {}; +struct X { + D d; +}; +struct Y : X {}; +B Y::*pm = &X::d; +// expected-error@-1 {{cannot initialize a variable of type 'B Y::*' with an rvalue of type 'D cwg794::X::*': different classes ('Y' vs 'cwg794::X')}} +// FIXME: why diagnostic says just `Y` and not `cwg794::Y`, like `cwg794::X`? +} // namespace cwg794 diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index c069e155fd547..98766b71d4284 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -4775,7 +4775,7 @@

C++ defect report implementation status

794 NAD Base-derived conversion in member type of pointer-to-member conversion - Unknown + Clang 2.7 795