|
clang 23.0.0git
|
DeclarationNameExtra is used as a base of various uncommon special names. More...
#include "clang/Basic/IdentifierTable.h"
Protected Types | |
| enum | ExtraKind { CXXDeductionGuideName , CXXLiteralOperatorName , CXXUsingDirective , ObjCMultiArgSelector } |
| The kind of "extra" information stored in the DeclarationName. More... | |
Protected Member Functions | |
| DeclarationNameExtra (ExtraKind Kind) | |
| DeclarationNameExtra (unsigned NumArgs) | |
| ExtraKind | getKind () const |
| Return the corresponding ExtraKind. | |
| unsigned | getNumArgs () const |
| Return the number of arguments in an ObjC selector. | |
Protected Attributes | |
| unsigned | ExtraKindOrNumArgs |
| ExtraKindOrNumArgs has one of the following meaning: | |
Friends | |
| class | clang::DeclarationName |
| class | clang::DeclarationNameTable |
DeclarationNameExtra is used as a base of various uncommon special names.
This class is needed since DeclarationName has not enough space to store the kind of every possible names. Therefore the kind of common names is stored directly in DeclarationName, and the kind of uncommon names is stored in DeclarationNameExtra. It is aligned to 8 bytes because DeclarationName needs the lower 3 bits to store the kind of common names. DeclarationNameExtra is tightly coupled to DeclarationName and any change here is very likely to require changes in DeclarationName(Table).
Definition at line 931 of file IdentifierTable.h.
|
protected |
The kind of "extra" information stored in the DeclarationName.
See ExtraKindOrNumArgs for an explanation of how these enumerator values are used. Note that DeclarationName depends on the numerical values of the enumerators in this enum. See DeclarationName::StoredNameKind for more info.
| Enumerator | |
|---|---|
| CXXDeductionGuideName | |
| CXXLiteralOperatorName | |
| CXXUsingDirective | |
| ObjCMultiArgSelector | |
Definition at line 941 of file IdentifierTable.h.
|
inlineprotected |
Definition at line 960 of file IdentifierTable.h.
References ExtraKindOrNumArgs.
Referenced by clang::detail::CXXDeductionGuideNameExtra::clang::DeclarationNameTable, clang::detail::CXXLiteralOperatorIdName::clang::DeclarationNameTable, and clang::MultiKeywordSelector::MultiKeywordSelector().
|
inlineprotected |
Definition at line 961 of file IdentifierTable.h.
References ExtraKindOrNumArgs, and ObjCMultiArgSelector.
|
inlineprotected |
Return the corresponding ExtraKind.
Definition at line 965 of file IdentifierTable.h.
References ExtraKindOrNumArgs, and ObjCMultiArgSelector.
|
inlineprotected |
Return the number of arguments in an ObjC selector.
Only valid when this is indeed an ObjCMultiArgSelector.
Definition at line 974 of file IdentifierTable.h.
References ExtraKindOrNumArgs, and ObjCMultiArgSelector.
Referenced by clang::MultiKeywordSelector::getIdentifierInfoForSlot(), clang::Selector::getNumArgs(), clang::MultiKeywordSelector::keyword_end(), and clang::MultiKeywordSelector::Profile().
|
friend |
Definition at line 932 of file IdentifierTable.h.
|
friend |
Definition at line 933 of file IdentifierTable.h.
|
protected |
ExtraKindOrNumArgs has one of the following meaning:
Definition at line 958 of file IdentifierTable.h.
Referenced by DeclarationNameExtra(), DeclarationNameExtra(), getKind(), and getNumArgs().