Author: Vlad Serebrennikov Date: 2023-11-08T15:44:46+03:00 New Revision: 5e09c4e6a865707ed26f9a893dbef8b499591459
URL: https://github.com/llvm/llvm-project/commit/5e09c4e6a865707ed26f9a893dbef8b499591459 DIFF: https://github.com/llvm/llvm-project/commit/5e09c4e6a865707ed26f9a893dbef8b499591459.diff LOG: [clang][NFC] Partially annotate `IdentifierInfo` with `preferred_type` This patch leaves `ObjCOrBuiltinID` alone, because of performance concerns with potential refactoring that would enable correct types in debug info. Added: Modified: clang/include/clang/Basic/IdentifierTable.h Removed: ################################################################################ diff --git a/clang/include/clang/Basic/IdentifierTable.h b/clang/include/clang/Basic/IdentifierTable.h index 2eafe5938406749..0898e7d39dd7dee 100644 --- a/clang/include/clang/Basic/IdentifierTable.h +++ b/clang/include/clang/Basic/IdentifierTable.h @@ -110,6 +110,7 @@ class alignas(IdentifierInfoAlignment) IdentifierInfo { friend class IdentifierTable; // Front-end token ID or tok::identifier. + LLVM_PREFERRED_TYPE(tok::TokenKind) unsigned TokenID : 9; // ObjC keyword ('protocol' in '@protocol') or builtin (__builtin_inf). @@ -118,58 +119,75 @@ class alignas(IdentifierInfoAlignment) IdentifierInfo { unsigned ObjCOrBuiltinID : ObjCOrBuiltinIDBits; // True if there is a #define for this. + LLVM_PREFERRED_TYPE(bool) unsigned HasMacro : 1; // True if there was a #define for this. + LLVM_PREFERRED_TYPE(bool) unsigned HadMacro : 1; // True if the identifier is a language extension. + LLVM_PREFERRED_TYPE(bool) unsigned IsExtension : 1; // True if the identifier is a keyword in a newer or proposed Standard. + LLVM_PREFERRED_TYPE(bool) unsigned IsFutureCompatKeyword : 1; // True if the identifier is poisoned. + LLVM_PREFERRED_TYPE(bool) unsigned IsPoisoned : 1; // True if the identifier is a C++ operator keyword. + LLVM_PREFERRED_TYPE(bool) unsigned IsCPPOperatorKeyword : 1; // Internal bit set by the member function RecomputeNeedsHandleIdentifier. // See comment about RecomputeNeedsHandleIdentifier for more info. + LLVM_PREFERRED_TYPE(bool) unsigned NeedsHandleIdentifier : 1; // True if the identifier was loaded (at least partially) from an AST file. + LLVM_PREFERRED_TYPE(bool) unsigned IsFromAST : 1; // True if the identifier has changed from the definition // loaded from an AST file. + LLVM_PREFERRED_TYPE(bool) unsigned ChangedAfterLoad : 1; // True if the identifier's frontend information has changed from the // definition loaded from an AST file. + LLVM_PREFERRED_TYPE(bool) unsigned FEChangedAfterLoad : 1; // True if revertTokenIDToIdentifier was called. + LLVM_PREFERRED_TYPE(bool) unsigned RevertedTokenID : 1; // True if there may be additional information about // this identifier stored externally. + LLVM_PREFERRED_TYPE(bool) unsigned OutOfDate : 1; // True if this is the 'import' contextual keyword. + LLVM_PREFERRED_TYPE(bool) unsigned IsModulesImport : 1; // True if this is a mangled OpenMP variant name. + LLVM_PREFERRED_TYPE(bool) unsigned IsMangledOpenMPVariantName : 1; // True if this is a deprecated macro. + LLVM_PREFERRED_TYPE(bool) unsigned IsDeprecatedMacro : 1; // True if this macro is unsafe in headers. + LLVM_PREFERRED_TYPE(bool) unsigned IsRestrictExpansion : 1; // True if this macro is final. + LLVM_PREFERRED_TYPE(bool) unsigned IsFinal : 1; // 22 bits left in a 64-bit word. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits