[all-commits] [llvm/llvm-project] e5c790: [C++20][Modules] Implement P2615R1 revised export ...

Iain Sandoe via All-commits all-commits at lists.llvm.org
Sat Jun 24 01:02:33 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e5c7904fa0bfa5a24f192cfa7b9116560e1f5d43
      https://github.com/llvm/llvm-project/commit/e5c7904fa0bfa5a24f192cfa7b9116560e1f5d43
  Author: Iain Sandoe <iain at sandoe.co.uk>
  Date:   2023-06-24 (Sat, 24 Jun 2023)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaModule.cpp
    M clang/test/CXX/module/module.interface/p3.cpp
    M clang/test/Modules/cxx20-10-2-ex1.cpp
    M clang/test/Modules/cxx20-10-2-ex7.cpp
    M clang/test/SemaCXX/modules.cppm

  Log Message:
  -----------
  [C++20][Modules] Implement P2615R1 revised export diagnostics.

It has been reported to that the current clang  errors for, specifically,
static_assert in export contexts are a serious blocker to adoption of
modules in some cases.

There is also implementation divergence with GCC and MSVC allowing the
constructs mentioned below where clang currently rejects them with an
error.

The category of errors [for declarations in an exported context] is:
(unnamed, static_assert, empty and asm decls). These are now permitted
after P2615R1 which was approved by WG21 as a DR (and thus should be
applied to C++20 as well).

This patch removes these diagnostics and amends the testsuite accordingly.

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




More information about the All-commits mailing list