mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-05-13 17:37:00 +00:00

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
12 lines
275 B
C++
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
|