Revert "[NFC, Refactor] Modernize StorageClass from Specifiers.h to a scoped enum (II)"
This reverts commit efc82c4ad2bcb256a4f4c20238d08cd3afba4d2d.
diff --git a/clang/include/clang/AST/Decl.h b/clang/include/clang/AST/Decl.h
index e73ec07..47c282f 100644
--- a/clang/include/clang/AST/Decl.h
+++ b/clang/include/clang/AST/Decl.h
@@ -1057,7 +1057,7 @@
/// Returns true if a variable with function scope is a non-static local
/// variable.
bool hasLocalStorage() const {
- if (getStorageClass() == StorageClass::None) {
+ if (getStorageClass() == SC_None) {
// OpenCL v1.2 s6.5.3: The __constant or constant address space name is
// used to describe variables allocated in global memory and which are
// accessed inside a kernel(s) as read-only variables. As such, variables
@@ -1069,40 +1069,29 @@
}
// Global Named Register (GNU extension)
- if (getStorageClass() == StorageClass::Register && !isLocalVarDeclOrParm())
+ if (getStorageClass() == SC_Register && !isLocalVarDeclOrParm())
return false;
// Return true for: Auto, Register.
// Return false for: Extern, Static, PrivateExtern, OpenCLWorkGroupLocal.
- switch (getStorageClass()) {
- case StorageClass::Auto:
- case StorageClass::Register:
- return true;
- case StorageClass::Extern:
- case StorageClass::None:
- case StorageClass::PrivateExtern:
- case StorageClass::Static:
- return false;
- }
- llvm_unreachable("unknown storage class");
+ return getStorageClass() >= SC_Auto;
}
/// Returns true if a variable with function scope is a static local
/// variable.
bool isStaticLocal() const {
- return (getStorageClass() == StorageClass::Static ||
+ return (getStorageClass() == SC_Static ||
// C++11 [dcl.stc]p4
- (getStorageClass() == StorageClass::None &&
- getTSCSpec() == TSCS_thread_local)) &&
- !isFileVarDecl();
+ (getStorageClass() == SC_None && getTSCSpec() == TSCS_thread_local))
+ && !isFileVarDecl();
}
/// Returns true if a variable has extern or __private_extern__
/// storage.
bool hasExternalStorage() const {
- return getStorageClass() == StorageClass::Extern ||
- getStorageClass() == StorageClass::PrivateExtern;
+ return getStorageClass() == SC_Extern ||
+ getStorageClass() == SC_PrivateExtern;
}
/// Returns true for all variables that do not have local storage.
@@ -1604,7 +1593,7 @@
IdentifierInfo *Id, QualType Type,
ImplicitParamKind ParamKind)
: VarDecl(ImplicitParam, C, DC, IdLoc, IdLoc, Id, Type,
- /*TInfo=*/nullptr, StorageClass::None) {
+ /*TInfo=*/nullptr, SC_None) {
NonParmVarDeclBits.ImplicitParamKind = ParamKind;
setImplicit();
}
@@ -1612,7 +1601,7 @@
ImplicitParamDecl(ASTContext &C, QualType Type, ImplicitParamKind ParamKind)
: VarDecl(ImplicitParam, C, /*DC=*/nullptr, SourceLocation(),
SourceLocation(), /*Id=*/nullptr, Type,
- /*TInfo=*/nullptr, StorageClass::None) {
+ /*TInfo=*/nullptr, SC_None) {
NonParmVarDeclBits.ImplicitParamKind = ParamKind;
setImplicit();
}
@@ -2549,7 +2538,7 @@
/// Sets the storage class as written in the source.
void setStorageClass(StorageClass SClass) {
- FunctionDeclBits.SClass = static_cast<uint64_t>(SClass);
+ FunctionDeclBits.SClass = SClass;
}
/// Determine whether the "inline" keyword was specified for this
@@ -2576,7 +2565,7 @@
bool doesDeclarationForceExternallyVisibleDefinition() const;
- bool isStatic() const { return getStorageClass() == StorageClass::Static; }
+ bool isStatic() const { return getStorageClass() == SC_Static; }
/// Whether this function declaration represents an C++ overloaded
/// operator, e.g., "operator+".