@@ -171,6 +171,7 @@ template <typename Ty> struct EnumTraits {};
171
171
}
172
172
173
173
REGISTER_ENUM_TYPE (GlobalLinkageKind);
174
+ REGISTER_ENUM_TYPE (VisibilityKind);
174
175
REGISTER_ENUM_TYPE (CallingConv);
175
176
REGISTER_ENUM_TYPE (SideEffect);
176
177
REGISTER_ENUM_TYPE_WITH_NS (cir::sob, SignedOverflowBehavior);
@@ -179,7 +180,6 @@ REGISTER_ENUM_TYPE_WITH_NS(cir::sob, SignedOverflowBehavior);
179
180
// / Parse an enum from the keyword, or default to the provided default value.
180
181
// / The return type is the enum type by default, unless overriden with the
181
182
// / second template argument.
182
- // / TODO: teach other places in this file to use this function.
183
183
template <typename EnumTy, typename RetTy = EnumTy>
184
184
static RetTy parseOptionalCIRKeyword (AsmParser &parser, EnumTy defaultValue) {
185
185
llvm::SmallVector<llvm::StringRef, 10 > names;
@@ -259,16 +259,8 @@ void printVisibilityAttr(OpAsmPrinter &printer,
259
259
}
260
260
261
261
void parseVisibilityAttr (OpAsmParser &parser, cir::VisibilityAttr &visibility) {
262
- cir::VisibilityKind visibilityKind;
263
-
264
- if (parser.parseOptionalKeyword (" hidden" ).succeeded ()) {
265
- visibilityKind = cir::VisibilityKind::Hidden;
266
- } else if (parser.parseOptionalKeyword (" protected" ).succeeded ()) {
267
- visibilityKind = cir::VisibilityKind::Protected;
268
- } else {
269
- visibilityKind = cir::VisibilityKind::Default;
270
- }
271
-
262
+ cir::VisibilityKind visibilityKind =
263
+ parseOptionalCIRKeyword (parser, cir::VisibilityKind::Default);
272
264
visibility = cir::VisibilityAttr::get (parser.getContext (), visibilityKind);
273
265
}
274
266
0 commit comments