class DeclarationNameExtra

Declaration

class DeclarationNameExtra { /* full declaration omitted */ };

Description

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).

Declared at: clang/include/clang/Basic/IdentifierTable.h:952

Member Variables

protected unsigned int ExtraKindOrNumArgs
* Otherwise it is ObjCMultiArgSelector+NumArgs, where NumArgs is the number of arguments in the Objective-C selector, in which case the DeclarationNameExtra is also a MultiKeywordSelector.

Method Overview

Methods

DeclarationNameExtra(
    clang::detail::DeclarationNameExtra::ExtraKind
        Kind)

Declared at: clang/include/clang/Basic/IdentifierTable.h:981

Parameters

clang::detail::DeclarationNameExtra::ExtraKind Kind

DeclarationNameExtra(unsigned int NumArgs)

Declared at: clang/include/clang/Basic/IdentifierTable.h:982

Parameters

unsigned int NumArgs

clang::detail::DeclarationNameExtra::ExtraKind
getKind() const

Description

Return the corresponding ExtraKind.

Declared at: clang/include/clang/Basic/IdentifierTable.h:986

unsigned int getNumArgs() const

Description

Return the number of arguments in an ObjC selector. Only valid when this is indeed an ObjCMultiArgSelector.

Declared at: clang/include/clang/Basic/IdentifierTable.h:995