llvm-capstone/clang/test/Modules/cxx20-10-2-ex7.cpp
Iain Sandoe e5c7904fa0 [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
2023-06-24 09:01:59 +01:00

12 lines
275 B
C++

// Based on C++20 10.2 example 6.
// RUN: %clang_cc1 -std=c++20 -emit-module-interface %s -verify -o %t
// expected-no-diagnostics
export module M;
export namespace N {
int x; // OK
static_assert(1 == 1); // No diagnostic after P2615R1 DR
} // namespace N