Skip to content

Commit 8312ca4

Browse files
committed
Skip sentinels for empty enums
1 parent 82829a6 commit 8312ca4

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,17 @@ static void generateEnumClass(ArrayRef<const Record *> Records, raw_ostream &OS,
106106
bool ExportEnums) {
107107
OS << "\n";
108108
OS << "enum class " << Enum << " {\n";
109-
std::string N;
110-
for (auto [I, R] : llvm::enumerate(Records)) {
111-
N = getIdentifierName(R, Prefix);
112-
OS << " " << N << ",\n";
113-
// Make the sentinel names less likely to conflict with actual names...
114-
if (I == 0)
115-
OS << " First_ = " << N << ",\n";
109+
if (!Records.empty()) {
110+
std::string N;
111+
for (auto [I, R] : llvm::enumerate(Records)) {
112+
N = getIdentifierName(R, Prefix);
113+
OS << " " << N << ",\n";
114+
// Make the sentinel names less likely to conflict with actual names...
115+
if (I == 0)
116+
OS << " First_ = " << N << ",\n";
117+
}
118+
OS << " Last_ = " << N << ",\n";
116119
}
117-
OS << " Last_ = " << N << ",\n";
118120
OS << "};\n";
119121
OS << "\n";
120122
OS << "static constexpr std::size_t " << Enum

0 commit comments

Comments
 (0)