enum DeclarationName::StoredNameKind
Description
StoredNameKind represent the kind of name that is actually stored in the upper bits of the Ptr field. This is only used internally. NameKind, StoredNameKind, and DeclarationNameExtra::ExtraKind must satisfy the following properties. These properties enable efficient conversion between the various kinds. * The first seven enumerators of StoredNameKind must have the same numerical value as the first seven enumerators of NameKind. This enable efficient conversion between the two enumerations in the usual case. * The enumerations values of DeclarationNameExtra::ExtraKind must start at zero, and correspond to the numerical value of the first non-inline enumeration values of NameKind minus an offset. This makes conversion between DeclarationNameExtra::ExtraKind and NameKind possible with a single addition/substraction. * The enumeration values of Selector::IdentifierInfoFlag must correspond to the relevant enumeration values of StoredNameKind. More specifically: * ZeroArg == StoredObjCZeroArgSelector, * OneArg == StoredObjCOneArgSelector, * MultiArg == StoredDeclarationNameExtra * PtrMask must mask the low 3 bits of Ptr.
Declared at: clang/include/clang/AST/DeclarationName.h:174
Enumerators
Name | Value | Comment |
---|---|---|
StoredIdentifier | 0 | |
StoredObjCZeroArgSelector | 1 | |
StoredObjCOneArgSelector | 2 | |
StoredCXXConstructorName | 3 | |
StoredCXXDestructorName | 4 | |
StoredCXXConversionFunctionName | 5 | |
StoredCXXOperatorName | 6 | |
StoredDeclarationNameExtra | 7 | |
PtrMask | 7 | |
UncommonNameKindOffset | 8 |