Class VariableDeclarationEntry
A particular declaration or definition of a C/C++ variable. For example, in
the following code there are six variable declaration entries - two each for
a
and d
, and one each for b
and c
:
extern int a;
int a;
void myFunction(int b) {
int c;
}
namespace N {
extern int d;
int d = 1;
}
Import path
import cpp
Direct supertypes
Indirect supertypes
Known direct subtypes
Predicates
getAPrimaryQlClass | Gets the name of a primary CodeQL class to which this element belongs. |
getASpecifier | Gets a specifier associated with this declaration entry. |
getDeclaration | Gets the declaration for which this is a declaration entry. |
getLocation | Gets the primary location of this element. |
getName | Gets the name, if any, used for the variable at this declaration or definition. |
getType | Gets the type of the variable which is being declared or defined. |
getVariable | Gets the variable which is being declared or defined. |
isDefinition | Holds if this is a definition of a variable. |
Inherited predicates
findRootCause | Gets the source of this element: either itself or a macro that expanded to this element. | from Element |
fromLibrary | Holds if this element may be from a library. | from Element |
fromSource | Holds if this element may be from source. | from Element |
getCanonicalName | Gets the name associated with the corresponding definition (where available), or the name declared by this entry otherwise. | from DeclarationEntry |
getCanonicalQLClass | DEPRECATED: use | from ElementBase |
getEnclosingElement | Gets the closest | from Element |
getFile | Gets the primary file where this element occurs. | from Element |
getParentScope | Gets the parent scope of this | from Element |
getUnspecifiedType | Gets the type associated with this declaration entry after specifiers have been deeply stripped and typedefs have been resolved. | from DeclarationEntry |
hasSpecifier | Holds if this declaration entry has a specifier with the given name. | from DeclarationEntry |
isAffectedByMacro | Holds if this element is affected in any way by a macro. All elements that are totally or partially generated by a macro are included, so this is a super-set of | from Element |
isFromTemplateInstantiation | Holds if this | from Element |
isFromUninstantiatedTemplate | Holds if this | from Element |
isInMacroExpansion | Holds if this element comes from a macro expansion. Only elements that are entirely generated by a macro are included - for elements that partially come from a macro, see | from Element |
toString | Gets a textual representation of this element. | from DeclarationEntry |