[clang] 131acb0 - [clang][NFC] Move static assert on StmtClass bounds from header to source
Ziqing Luo via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 20 12:42:49 PST 2024
Author: Ziqing Luo
Date: 2024-12-20T12:42:21-08:00
New Revision: 131acb07d814fabcc969dcaa63f4f352cd529267
URL: https://github.com/llvm/llvm-project/commit/131acb07d814fabcc969dcaa63f4f352cd529267
DIFF: https://github.com/llvm/llvm-project/commit/131acb07d814fabcc969dcaa63f4f352cd529267.diff
LOG: [clang][NFC] Move static assert on StmtClass bounds from header to source
A follow-up change to PR #120341 & #120643. Address @nikic's concern:
https://github.com/llvm/llvm-project/pull/120341#discussion_r1893822845
Added:
Modified:
clang/include/clang/AST/Stmt.h
clang/lib/AST/Stmt.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/AST/Stmt.h b/clang/include/clang/AST/Stmt.h
index f188bd47f5c0aa..405c6166adb15a 100644
--- a/clang/include/clang/AST/Stmt.h
+++ b/clang/include/clang/AST/Stmt.h
@@ -109,16 +109,7 @@ class alignas(void *) Stmt {
//===--- Statement bitfields classes ---===//
- enum { NumStmtBits = 9 };
-
-#define STMT(CLASS, PARENT)
-#define STMT_RANGE(BASE, FIRST, LAST)
-#define LAST_STMT_RANGE(BASE, FIRST, LAST) \
- static_assert(llvm::isUInt<NumStmtBits>(StmtClass::LAST##Class), \
- "The number of 'StmtClass'es is strictly bound " \
- "by a bitfield of width NumStmtBits");
-#define ABSTRACT_STMT(STMT)
-#include "clang/AST/StmtNodes.inc"
+ #define NumStmtBits 9
class StmtBitfields {
friend class ASTStmtReader;
diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp
index 1e527ed0b2a2ea..d6a351a78c7ba8 100644
--- a/clang/lib/AST/Stmt.cpp
+++ b/clang/lib/AST/Stmt.cpp
@@ -47,6 +47,15 @@
using namespace clang;
+#define STMT(CLASS, PARENT)
+#define STMT_RANGE(BASE, FIRST, LAST)
+#define LAST_STMT_RANGE(BASE, FIRST, LAST) \
+ static_assert(llvm::isUInt<NumStmtBits>(Stmt::StmtClass::LAST##Class), \
+ "The number of 'StmtClass'es is strictly bound " \
+ "by a bitfield of width NumStmtBits");
+#define ABSTRACT_STMT(STMT)
+#include "clang/AST/StmtNodes.inc"
+
static struct StmtClassNameTable {
const char *Name;
unsigned Counter;
More information about the cfe-commits
mailing list