unsigned Friend_specified : 1;
// constexpr-specifier
- ConstexprSpecKind ConstexprSpecifier : 2;
+ unsigned ConstexprSpecifier : 2;
union {
UnionParsedType TypeRep;
bool isModulePrivateSpecified() const { return ModulePrivateLoc.isValid(); }
SourceLocation getModulePrivateSpecLoc() const { return ModulePrivateLoc; }
- ConstexprSpecKind getConstexprSpecifier() const { return ConstexprSpecifier; }
+ ConstexprSpecKind getConstexprSpecifier() const {
+ return ConstexprSpecKind(ConstexprSpecifier);
+ }
+
SourceLocation getConstexprSpecLoc() const { return ConstexprLoc; }
bool hasConstexprSpecifier() const {
return ConstexprSpecifier != CSK_unspecified;
bool DeclSpec::SetConstexprSpec(ConstexprSpecKind ConstexprKind,
SourceLocation Loc, const char *&PrevSpec,
unsigned &DiagID) {
- if (ConstexprSpecifier != CSK_unspecified) {
- if (ConstexprSpecifier == CSK_consteval || ConstexprKind == CSK_consteval)
- return BadSpecifier(ConstexprKind, ConstexprSpecifier, PrevSpec, DiagID);
+ if (getConstexprSpecifier() != CSK_unspecified) {
+ if (getConstexprSpecifier() == CSK_consteval || ConstexprKind == CSK_consteval)
+ return BadSpecifier(ConstexprKind, getConstexprSpecifier(), PrevSpec, DiagID);
DiagID = diag::warn_duplicate_declspec;
PrevSpec = "constexpr";
return true;