[all-commits] [llvm/llvm-project] 576c75: [clang] Add test for CWG1894 and CWG2199

Vlad Serebrennikov via All-commits all-commits at lists.llvm.org
Fri Apr 14 00:15:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 576c752410e71229f271ec7defb22f3596338c00
      https://github.com/llvm/llvm-project/commit/576c752410e71229f271ec7defb22f3596338c00
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2023-04-14 (Fri, 14 Apr 2023)

  Changed paths:
    M clang/test/CXX/drs/dr18xx.cpp
    M clang/test/CXX/drs/dr21xx.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add test for CWG1894 and CWG2199

[[https://wg21.link/p1787 | P1787]]: CWG1894 and its duplicate CWG2199 are resolved per Richard’s proposal for [[ https://listarchives.isocpp.org/cgi-bin/wg21/message?wg=core&msg=28415 | “dr407 still leaves open questions about typedef / tag hiding” ]], using generic conflicting-declaration rules even for typedef, and discarding a redundant typedef-name when looking up an elaborated-type-specifier.
Wording: See changes to [dcl.typedef], [basic.lookup.elab], and [basic.lookup]/4.

Generic conflicting-declaration rules are specified in changes to [basic.scope.scope]. [[ https://cplusplus.github.io/CWG/issues/407.html | CWG407]], [[ https://cplusplus.github.io/CWG/issues/1894.html | CWG1894 ]], and [[ https://cplusplus.github.io/CWG/issues/2199.html | CWG2199 ]] discuss how elaborated type specifiers interact with typedefs, using directives, and using declarations. Since existing test for CWG407 covers examples provided in CWG1894 and CWG2199, and does it in accordance with P1787, I reused parts of it.

Reviewed By: #clang-language-wg, cor3ntin

Differential Revision: https://reviews.llvm.org/D148136




More information about the All-commits mailing list