parent
0f5a7ddc39
commit
3ed28de5cc
|
@ -300,35 +300,35 @@ public:
|
||||||
Expr *getInit() { return Init; }
|
Expr *getInit() { return Init; }
|
||||||
void setInit(Expr *I) { Init = I; }
|
void setInit(Expr *I) { Init = I; }
|
||||||
|
|
||||||
// hasAutoStorage - Returns true if either the implicit or explicit
|
/// hasAutoStorage - Returns true if either the implicit or explicit
|
||||||
// storage class of a variable is "auto." In particular, variables
|
/// storage class of a variable is "auto." In particular, variables
|
||||||
// declared within a function that lack a storage keyword are
|
/// declared within a function that lack a storage keyword are
|
||||||
// implicitly "auto", but are represented internally with a storage
|
/// implicitly "auto", but are represented internally with a storage
|
||||||
// class of None.
|
/// class of None.
|
||||||
bool hasAutoStorage() const {
|
bool hasAutoStorage() const {
|
||||||
return getStorageClass() == Auto ||
|
return getStorageClass() == Auto ||
|
||||||
(getStorageClass() == None && getKind() != FileVar);
|
(getStorageClass() == None && getKind() != FileVar);
|
||||||
}
|
}
|
||||||
|
|
||||||
// hasStaticStorage - Returns true if either the implicit or
|
/// hasStaticStorage - Returns true if either the implicit or
|
||||||
// explicit storage class of a variable is "static." In
|
/// explicit storage class of a variable is "static." In
|
||||||
// particular, variables declared within a file (outside of a
|
/// particular, variables declared within a file (outside of a
|
||||||
// function) that lack a storage keyword are implicitly "static,"
|
/// function) that lack a storage keyword are implicitly "static,"
|
||||||
// but are represented internally with a storage class of "None".
|
/// but are represented internally with a storage class of "None".
|
||||||
bool hasStaticStorage() const {
|
bool hasStaticStorage() const {
|
||||||
if (getStorageClass() == Static) return true;
|
if (getStorageClass() == Static) return true;
|
||||||
return getKind() == FileVar;
|
return getKind() == FileVar;
|
||||||
}
|
}
|
||||||
|
|
||||||
// hasLocalStorage - Returns true if a variable with function scope
|
/// hasLocalStorage - Returns true if a variable with function scope
|
||||||
// is a non-static local variable.
|
/// is a non-static local variable.
|
||||||
bool hasLocalStorage() const {
|
bool hasLocalStorage() const {
|
||||||
return hasAutoStorage() || getStorageClass() == Register;
|
return hasAutoStorage() || getStorageClass() == Register;
|
||||||
}
|
}
|
||||||
|
|
||||||
// hasGlobalStorage - Returns true for all variables that do not
|
/// hasGlobalStorage - Returns true for all variables that do not
|
||||||
// have local storage. This includs all global variables as well
|
/// have local storage. This includs all global variables as well
|
||||||
// as static variables declared within a function.
|
/// as static variables declared within a function.
|
||||||
bool hasGlobalStorage() const { return !hasAutoStorage(); }
|
bool hasGlobalStorage() const { return !hasAutoStorage(); }
|
||||||
|
|
||||||
// Implement isa/cast/dyncast/etc.
|
// Implement isa/cast/dyncast/etc.
|
||||||
|
|
Loading…
Reference in New Issue