Lines Matching refs:IdentifierInfo

11 /// \brief Defines the clang::IdentifierInfo, clang::IdentifierTable, and
32 class IdentifierInfo;
39 typedef std::pair<IdentifierInfo*, SourceLocation> IdentifierLocPair;
47 class IdentifierInfo {
74 llvm::StringMapEntry<IdentifierInfo*> *Entry;
76 IdentifierInfo(const IdentifierInfo&) = delete;
77 void operator=(const IdentifierInfo&) = delete;
82 IdentifierInfo();
101 // std::pair<IdentifierInfo, const char*>, where internal pointer
103 typedef std::pair<IdentifierInfo, const char*> actualtype;
114 // std::pair<IdentifierInfo, const char*>, where internal pointer
116 typedef std::pair<IdentifierInfo, const char*> actualtype;
313 bool operator<(const IdentifierInfo &RHS) const {
337 IdentifierInfo *const II;
340 PoisonIdentifierRAIIObject(IdentifierInfo *II, bool NewValue)
386 /// \brief Return the IdentifierInfo for the specified named identifier.
389 /// of a reference. If the pointer is null then the IdentifierInfo cannot
391 virtual IdentifierInfo* get(StringRef Name) = 0;
399 /// IdentifierInfo objects for each.
408 /// IdentifierInfo pointers.
416 virtual IdentifierInfo *GetIdentifier(unsigned ID) = 0;
419 /// \brief Implements an efficient mapping from strings to IdentifierInfo nodes.
427 typedef llvm::StringMap<IdentifierInfo*, llvm::BumpPtrAllocator> HashTableTy;
454 IdentifierInfo &get(StringRef Name) {
457 IdentifierInfo *&II = Entry.second;
467 // Lookups failed, make a new IdentifierInfo.
468 void *Mem = getAllocator().Allocate<IdentifierInfo>();
469 II = new (Mem) IdentifierInfo();
471 // Make sure getName() knows how to find the IdentifierInfo
478 IdentifierInfo &get(StringRef Name, tok::TokenKind TokenCode) {
479 IdentifierInfo &II = get(Name);
485 /// \brief Gets an IdentifierInfo for the given name without consulting
491 IdentifierInfo &getOwn(StringRef Name) {
494 IdentifierInfo *&II = Entry.second;
498 // Lookups failed, make a new IdentifierInfo.
499 void *Mem = getAllocator().Allocate<IdentifierInfo>();
500 II = new (Mem) IdentifierInfo();
502 // Make sure getName() knows how to find the IdentifierInfo
602 /// This class will either point to an IdentifierInfo or a
616 uintptr_t InfoPtr; // a pointer to the MultiKeywordSelector or IdentifierInfo.
618 Selector(IdentifierInfo *II, unsigned nArgs) {
620 assert((InfoPtr & ArgFlags) == 0 &&"Insufficiently aligned IdentifierInfo");
626 assert((InfoPtr & ArgFlags) == 0 &&"Insufficiently aligned IdentifierInfo");
630 IdentifierInfo *getAsIdentifierInfo() const {
632 return reinterpret_cast<IdentifierInfo *>(InfoPtr & ~ArgFlags);
693 IdentifierInfo *getIdentifierInfoForSlot(unsigned argIndex) const;
745 Selector getSelector(unsigned NumArgs, IdentifierInfo **IIV);
747 Selector getUnarySelector(IdentifierInfo *ID) {
750 Selector getNullarySelector(IdentifierInfo *ID) {
769 const IdentifierInfo *Name);
842 // Provide PointerLikeTypeTraits for IdentifierInfo pointers, which
845 class PointerLikeTypeTraits<clang::IdentifierInfo*> {
847 static inline void *getAsVoidPointer(clang::IdentifierInfo* P) {
850 static inline clang::IdentifierInfo *getFromVoidPointer(void *P) {
851 return static_cast<clang::IdentifierInfo*>(P);
857 class PointerLikeTypeTraits<const clang::IdentifierInfo*> {
859 static inline const void *getAsVoidPointer(const clang::IdentifierInfo* P) {
862 static inline const clang::IdentifierInfo *getFromVoidPointer(const void *P) {
863 return static_cast<const clang::IdentifierInfo*>(P);