Endill created this revision. Endill added reviewers: clang-language-wg, shafik. Herald added a project: All. Endill requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
P1787 <https://wg21.link/p1787>: CWG2331 is resolved by defining lookup from complete-class contexts and out-of-line member definitions. The rest of CWG2009 is resolved by making it ill-formed NDR for forward lookup outside a complete-class context to change the results (before overload resolution, to avoid differences in instantiation). Wording: The result of the search is the declaration set of S(N, T). If it is an invalid set, the program is ill-formed. If it differs from the result of a search in T for N from immediately after the class-specifier of T, the program is ill-formed, no diagnostic required. ([class.member.lookup]/7) Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D148263 Files: clang/test/CXX/drs/dr20xx.cpp clang/www/cxx_dr_status.html Index: clang/www/cxx_dr_status.html =================================================================== --- clang/www/cxx_dr_status.html +++ clang/www/cxx_dr_status.html @@ -11861,7 +11861,7 @@ <td><a href="https://cplusplus.github.io/CWG/issues/2009.html">2009</a></td> <td>CD6</td> <td>Unclear specification of class scope</td> - <td class="none" align="center">Unknown</td> + <td class="na" align="center">N/A</td> </tr> <tr id="2010"> <td><a href="https://cplusplus.github.io/CWG/issues/2010.html">2010</a></td> Index: clang/test/CXX/drs/dr20xx.cpp =================================================================== --- clang/test/CXX/drs/dr20xx.cpp +++ clang/test/CXX/drs/dr20xx.cpp @@ -19,6 +19,8 @@ int b = __builtin_addressof(b2)->foo; // expected-error {{no member}} } +// dr2009: na + namespace dr2026 { // dr2026: 11 template<int> struct X {};
Index: clang/www/cxx_dr_status.html =================================================================== --- clang/www/cxx_dr_status.html +++ clang/www/cxx_dr_status.html @@ -11861,7 +11861,7 @@ <td><a href="https://cplusplus.github.io/CWG/issues/2009.html">2009</a></td> <td>CD6</td> <td>Unclear specification of class scope</td> - <td class="none" align="center">Unknown</td> + <td class="na" align="center">N/A</td> </tr> <tr id="2010"> <td><a href="https://cplusplus.github.io/CWG/issues/2010.html">2010</a></td> Index: clang/test/CXX/drs/dr20xx.cpp =================================================================== --- clang/test/CXX/drs/dr20xx.cpp +++ clang/test/CXX/drs/dr20xx.cpp @@ -19,6 +19,8 @@ int b = __builtin_addressof(b2)->foo; // expected-error {{no member}} } +// dr2009: na + namespace dr2026 { // dr2026: 11 template<int> struct X {};
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits