[clang] b178cec - [clang][NFC] Annotate most of `clang/Basic` headers with `preferred_type`
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 6 03:18:32 PST 2023
Author: Vlad Serebrennikov
Date: 2023-11-06T14:18:26+03:00
New Revision: b178cec84f95210db615cfa0a84e78585445f16b
URL: https://github.com/llvm/llvm-project/commit/b178cec84f95210db615cfa0a84e78585445f16b
DIFF: https://github.com/llvm/llvm-project/commit/b178cec84f95210db615cfa0a84e78585445f16b.diff
LOG: [clang][NFC] Annotate most of `clang/Basic` headers with `preferred_type`
This patch doesn't touch `CodeGenOptions.h`, `DiagnosticOptions.h`, `LangOptions.h`, `IdentifierTable.h`.
Added:
Modified:
clang/include/clang/Basic/AttributeCommonInfo.h
clang/include/clang/Basic/Diagnostic.h
clang/include/clang/Basic/DiagnosticIDs.h
clang/include/clang/Basic/Module.h
clang/include/clang/Basic/ParsedAttrInfo.h
clang/include/clang/Basic/SourceManager.h
clang/include/clang/Basic/Specifiers.h
clang/include/clang/Basic/TargetInfo.h
Removed:
################################################################################
diff --git a/clang/include/clang/Basic/AttributeCommonInfo.h b/clang/include/clang/Basic/AttributeCommonInfo.h
index 7dc05418498d0ae..908e0c71544279c 100644
--- a/clang/include/clang/Basic/AttributeCommonInfo.h
+++ b/clang/include/clang/Basic/AttributeCommonInfo.h
@@ -74,11 +74,16 @@ class AttributeCommonInfo {
SourceRange AttrRange;
const SourceLocation ScopeLoc;
// Corresponds to the Kind enum.
+ LLVM_PREFERRED_TYPE(Kind)
unsigned AttrKind : 16;
/// Corresponds to the Syntax enum.
+ LLVM_PREFERRED_TYPE(Syntax)
unsigned SyntaxUsed : 4;
+ LLVM_PREFERRED_TYPE(bool)
unsigned SpellingIndex : 4;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsAlignas : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsRegularKeywordAttribute : 1;
protected:
@@ -123,9 +128,12 @@ class AttributeCommonInfo {
: SyntaxUsed(SyntaxUsed), SpellingIndex(SpellingNotCalculated),
IsAlignas(0), IsRegularKeywordAttribute(0) {}
+ LLVM_PREFERRED_TYPE(Syntax)
unsigned SyntaxUsed : 4;
unsigned SpellingIndex : 4;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsAlignas : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsRegularKeywordAttribute : 1;
};
diff --git a/clang/include/clang/Basic/Diagnostic.h b/clang/include/clang/Basic/Diagnostic.h
index 3df037b793b3946..0c7836c2ea569cc 100644
--- a/clang/include/clang/Basic/Diagnostic.h
+++ b/clang/include/clang/Basic/Diagnostic.h
@@ -314,18 +314,23 @@ class DiagnosticsEngine : public RefCountedBase<DiagnosticsEngine> {
// "Global" configuration state that can actually vary between modules.
// Ignore all warnings: -w
+ LLVM_PREFERRED_TYPE(bool)
unsigned IgnoreAllWarnings : 1;
// Enable all warnings.
+ LLVM_PREFERRED_TYPE(bool)
unsigned EnableAllWarnings : 1;
// Treat warnings like errors.
+ LLVM_PREFERRED_TYPE(bool)
unsigned WarningsAsErrors : 1;
// Treat errors like fatal errors.
+ LLVM_PREFERRED_TYPE(bool)
unsigned ErrorsAsFatal : 1;
// Suppress warnings in system headers.
+ LLVM_PREFERRED_TYPE(bool)
unsigned SuppressSystemWarnings : 1;
// Map extensions to warnings or errors?
@@ -1822,12 +1827,17 @@ class ForwardingDiagnosticConsumer : public DiagnosticConsumer {
struct TemplateDiffTypes {
intptr_t FromType;
intptr_t ToType;
+ LLVM_PREFERRED_TYPE(bool)
unsigned PrintTree : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned PrintFromType : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned ElideType : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned ShowColors : 1;
// The printer sets this variable to true if the template
diff was used.
+ LLVM_PREFERRED_TYPE(bool)
unsigned TemplateDiffUsed : 1;
};
diff --git a/clang/include/clang/Basic/DiagnosticIDs.h b/clang/include/clang/Basic/DiagnosticIDs.h
index 06ef1c6904c31d1..0cdda42793f6f0a 100644
--- a/clang/include/clang/Basic/DiagnosticIDs.h
+++ b/clang/include/clang/Basic/DiagnosticIDs.h
@@ -100,11 +100,17 @@ namespace clang {
}
class DiagnosticMapping {
+ LLVM_PREFERRED_TYPE(diag::Severity)
unsigned Severity : 3;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsUser : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsPragma : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasNoWarningAsError : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasNoErrorAsFatal : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned WasUpgradedFromWarning : 1;
public:
diff --git a/clang/include/clang/Basic/Module.h b/clang/include/clang/Basic/Module.h
index 6a7423938bdb8fa..239eb5a637f3ecf 100644
--- a/clang/include/clang/Basic/Module.h
+++ b/clang/include/clang/Basic/Module.h
@@ -298,50 +298,62 @@ class alignas(8) Module {
/// Whether this module has declared itself unimportable, either because
/// it's missing a requirement from \p Requirements or because it's been
/// shadowed by another module.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsUnimportable : 1;
/// Whether we tried and failed to load a module file for this module.
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasIncompatibleModuleFile : 1;
/// Whether this module is available in the current translation unit.
///
/// If the module is missing headers or does not meet all requirements then
/// this bit will be 0.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsAvailable : 1;
/// Whether this module was loaded from a module file.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsFromModuleFile : 1;
/// Whether this is a framework module.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsFramework : 1;
/// Whether this is an explicit submodule.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsExplicit : 1;
/// Whether this is a "system" module (which assumes that all
/// headers in it are system headers).
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsSystem : 1;
/// Whether this is an 'extern "C"' module (which implicitly puts all
/// headers in it within an 'extern "C"' block, and allows the module to be
/// imported within such a block).
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsExternC : 1;
/// Whether this is an inferred submodule (module * { ... }).
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsInferred : 1;
/// Whether we should infer submodules for this module based on
/// the headers.
///
/// Submodules can only be inferred for modules with an umbrella header.
+ LLVM_PREFERRED_TYPE(bool)
unsigned InferSubmodules : 1;
/// Whether, when inferring submodules, the inferred submodules
/// should be explicit.
+ LLVM_PREFERRED_TYPE(bool)
unsigned InferExplicitSubmodules : 1;
/// Whether, when inferring submodules, the inferr submodules should
/// export all modules they import (e.g., the equivalent of "export *").
+ LLVM_PREFERRED_TYPE(bool)
unsigned InferExportWildcard : 1;
/// Whether the set of configuration macros is exhaustive.
@@ -349,18 +361,22 @@ class alignas(8) Module {
/// When the set of configuration macros is exhaustive, meaning
/// that no identifier not in this list should affect how the module is
/// built.
+ LLVM_PREFERRED_TYPE(bool)
unsigned ConfigMacrosExhaustive : 1;
/// Whether files in this module can only include non-modular headers
/// and headers from used modules.
+ LLVM_PREFERRED_TYPE(bool)
unsigned NoUndeclaredIncludes : 1;
/// Whether this module came from a "private" module map, found next
/// to a regular (public) module map.
+ LLVM_PREFERRED_TYPE(bool)
unsigned ModuleMapIsPrivate : 1;
/// Whether this C++20 named modules doesn't need an initializer.
/// This is only meaningful for C++20 modules.
+ LLVM_PREFERRED_TYPE(bool)
unsigned NamedModuleHasInit : 1;
/// Describes the visibility of the various names within a
diff --git a/clang/include/clang/Basic/ParsedAttrInfo.h b/clang/include/clang/Basic/ParsedAttrInfo.h
index 3950d484ffd32bc..537d8f3391d5898 100644
--- a/clang/include/clang/Basic/ParsedAttrInfo.h
+++ b/clang/include/clang/Basic/ParsedAttrInfo.h
@@ -33,6 +33,7 @@ class TargetInfo;
struct ParsedAttrInfo {
/// Corresponds to the Kind enum.
+ LLVM_PREFERRED_TYPE(AttributeCommonInfo::Kind)
unsigned AttrKind : 16;
/// The number of required arguments of this attribute.
unsigned NumArgs : 4;
@@ -41,18 +42,25 @@ struct ParsedAttrInfo {
/// The number of non-fake arguments specified in the attribute definition.
unsigned NumArgMembers : 4;
/// True if the parsing does not match the semantic content.
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasCustomParsing : 1;
// True if this attribute accepts expression parameter pack expansions.
+ LLVM_PREFERRED_TYPE(bool)
unsigned AcceptsExprPack : 1;
/// True if this attribute is only available for certain targets.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsTargetSpecific : 1;
/// True if this attribute applies to types.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsType : 1;
/// True if this attribute applies to statements.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsStmt : 1;
/// True if this attribute has any spellings that are known to gcc.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsKnownToGCC : 1;
/// True if this attribute is supported by #pragma clang attribute.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsSupportedByPragmaAttribute : 1;
/// The syntaxes supported by this attribute and how they're spelled.
struct Spelling {
diff --git a/clang/include/clang/Basic/SourceManager.h b/clang/include/clang/Basic/SourceManager.h
index 420fda111ad1369..985ea6354b82199 100644
--- a/clang/include/clang/Basic/SourceManager.h
+++ b/clang/include/clang/Basic/SourceManager.h
@@ -167,17 +167,21 @@ class alignas(8) ContentCache {
///
/// When true, the original entry may be a virtual file that does not
/// exist.
+ LLVM_PREFERRED_TYPE(bool)
unsigned BufferOverridden : 1;
/// True if this content cache was initially created for a source file
/// considered to be volatile (likely to change between stat and open).
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsFileVolatile : 1;
/// True if this file may be transient, that is, if it might not
/// exist at some later point in time when this content entry is used,
/// after serialization and deserialization.
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsTransient : 1;
+ LLVM_PREFERRED_TYPE(bool)
mutable unsigned IsBufferInvalid : 1;
ContentCache()
@@ -305,6 +309,7 @@ class FileInfo {
unsigned NumCreatedFIDs : 31;
/// Whether this FileInfo has any \#line directives.
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasLineDirectives : 1;
/// The content cache and the characteristic of the file.
@@ -476,6 +481,7 @@ static_assert(sizeof(FileInfo) <= sizeof(ExpansionInfo),
class SLocEntry {
static constexpr int OffsetBits = 8 * sizeof(SourceLocation::UIntTy) - 1;
SourceLocation::UIntTy Offset : OffsetBits;
+ LLVM_PREFERRED_TYPE(bool)
SourceLocation::UIntTy IsExpansion : 1;
union {
FileInfo File;
diff --git a/clang/include/clang/Basic/Specifiers.h b/clang/include/clang/Basic/Specifiers.h
index 0add24d53b21e34..87f29c8ae10bd9a 100644
--- a/clang/include/clang/Basic/Specifiers.h
+++ b/clang/include/clang/Basic/Specifiers.h
@@ -103,9 +103,13 @@ namespace clang {
/// were written in a particular type specifier sequence.
struct WrittenBuiltinSpecs {
static_assert(TST_error < 1 << 7, "Type bitfield not wide enough for TST");
- /*DeclSpec::TST*/ unsigned Type : 7;
- /*DeclSpec::TSS*/ unsigned Sign : 2;
- /*TypeSpecifierWidth*/ unsigned Width : 2;
+ LLVM_PREFERRED_TYPE(TypeSpecifierType)
+ unsigned Type : 7;
+ LLVM_PREFERRED_TYPE(TypeSpecifierSign)
+ unsigned Sign : 2;
+ LLVM_PREFERRED_TYPE(TypeSpecifierWidth)
+ unsigned Width : 2;
+ LLVM_PREFERRED_TYPE(bool)
unsigned ModeAttr : 1;
};
diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h
index b3c5cbfb319f01f..41f3c2e403cbef6 100644
--- a/clang/include/clang/Basic/TargetInfo.h
+++ b/clang/include/clang/Basic/TargetInfo.h
@@ -156,6 +156,7 @@ struct TransferrableTargetInfo {
///
/// Otherwise, when this flag is not set, the normal built-in boolean type is
/// used.
+ LLVM_PREFERRED_TYPE(bool)
unsigned UseSignedCharForObjCBool : 1;
/// Control whether the alignment of bit-field types is respected when laying
@@ -163,6 +164,7 @@ struct TransferrableTargetInfo {
/// used to (a) impact the alignment of the containing structure, and (b)
/// ensure that the individual bit-field will not straddle an alignment
/// boundary.
+ LLVM_PREFERRED_TYPE(bool)
unsigned UseBitFieldTypeAlignment : 1;
/// Whether zero length bitfields (e.g., int : 0;) force alignment of
@@ -171,13 +173,16 @@ struct TransferrableTargetInfo {
/// If the alignment of the zero length bitfield is greater than the member
/// that follows it, `bar', `bar' will be aligned as the type of the
/// zero-length bitfield.
+ LLVM_PREFERRED_TYPE(bool)
unsigned UseZeroLengthBitfieldAlignment : 1;
/// Whether zero length bitfield alignment is respected if they are the
/// leading members.
+ LLVM_PREFERRED_TYPE(bool)
unsigned UseLeadingZeroLengthBitfield : 1;
/// Whether explicit bit field alignment attributes are honored.
+ LLVM_PREFERRED_TYPE(bool)
unsigned UseExplicitBitFieldAlignment : 1;
/// If non-zero, specifies a fixed alignment value for bitfields that follow
@@ -239,20 +244,29 @@ class TargetInfo : public TransferrableTargetInfo,
mutable StringRef PlatformName;
mutable VersionTuple PlatformMinVersion;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasAlignMac68kSupport : 1;
+ LLVM_PREFERRED_TYPE(FloatModeKind)
unsigned RealTypeUsesObjCFPRetMask : llvm::BitWidth<FloatModeKind>;
+ LLVM_PREFERRED_TYPE(bool)
unsigned ComplexLongDoubleUsesFP2Ret : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasBuiltinMSVaList : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned IsRenderScriptTarget : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasAArch64SVETypes : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned HasRISCVVTypes : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned AllowAMDGPUUnsafeFPAtomics : 1;
+ LLVM_PREFERRED_TYPE(bool)
unsigned ARMCDECoprocMask : 8;
unsigned MaxOpenCLWorkGroupSize;
More information about the cfe-commits
mailing list