clang 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
Sema.h File Reference
#include "clang/APINotes/APINotesManager.h"
#include "clang/AST/ASTFwd.h"
#include "clang/AST/Attr.h"
#include "clang/AST/AttrIterator.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprConcepts.h"
#include "clang/AST/ExternalASTSource.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/AttrSubjectMatchRules.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/CapturedStmt.h"
#include "clang/Basic/Cuda.h"
#include "clang/Basic/DiagnosticSema.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/ExpressionTraits.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Lambda.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/OpenCLOptions.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/PragmaKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TemplateKinds.h"
#include "clang/Basic/TokenKinds.h"
#include "clang/Basic/TypeTraits.h"
#include "clang/Sema/AnalysisBasedWarnings.h"
#include "clang/Sema/Attr.h"
#include "clang/Sema/CleanupInfo.h"
#include "clang/Sema/DeclSpec.h"
#include "clang/Sema/ExternalSemaSource.h"
#include "clang/Sema/IdentifierResolver.h"
#include "clang/Sema/Ownership.h"
#include "clang/Sema/ParsedAttr.h"
#include "clang/Sema/Redeclaration.h"
#include "clang/Sema/Scope.h"
#include "clang/Sema/SemaBase.h"
#include "clang/Sema/TypoCorrection.h"
#include "clang/Sema/Weak.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FloatingPointMode.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <climits>
#include <cstddef>
#include <cstdint>
#include <deque>
#include <functional>
#include <iterator>
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  clang::FileNullability
 Describes whether we've seen any nullability information for the given file. More...
 
class  clang::FileNullabilityMap
 A mapping from file IDs to a record of whether we've seen nullability information in that file. More...
 
class  clang::PreferredTypeBuilder
 Tracks expected type during expression parsing, for use in code completion. More...
 
struct  clang::SkipBodyInfo
 
struct  clang::FunctionEffectDiff
 
struct  clang::FunctionEffectDifferences
 
class  clang::Sema
 Sema - This implements semantic analysis and AST building for C. More...
 
class  clang::Sema::PoppedFunctionScopeDeleter
 Custom deleter to allow FunctionScopeInfos to be kept alive for a short time after they've been popped. More...
 
class  clang::Sema::CompoundScopeRAII
 A RAII object to enter scope of a compound statement. More...
 
struct  clang::Sema::FunctionScopeRAII
 An RAII helper that pops function a function scope on exit. More...
 
class  clang::Sema::DelayedDiagnosticsState
 
class  clang::Sema::DelayedDiagnostics
 A class which encapsulates the logic for delaying diagnostics during parsing and other processing. More...
 
struct  clang::Sema::PragmaClangSection
 
struct  clang::Sema::PragmaPackInfo
 
class  clang::Sema::AlignPackInfo
 
struct  clang::Sema::PragmaStack< ValueType >
 
struct  clang::Sema::PragmaStack< ValueType >::Slot
 
struct  clang::Sema::AlignPackIncludeState
 
class  clang::Sema::PragmaStackSentinelRAII
 
struct  clang::Sema::PragmaAttributeEntry
 This an attribute introduced by #pragma clang attribute. More...
 
struct  clang::Sema::PragmaAttributeGroup
 A push'd group of PragmaAttributeEntries. More...
 
struct  clang::Sema::FormatStringInfo
 
struct  clang::Sema::TypeTagData
 
struct  clang::Sema::NestedNameSpecInfo
 Keeps information about an identifier in a nested-name-spec. More...
 
class  clang::Sema::ContextRAII
 A RAII object to temporarily push a declaration context. More...
 
class  clang::Sema::NameClassification
 
struct  clang::Sema::ProcessDeclAttributeOptions
 
class  clang::Sema::ImplicitExceptionSpecification
 Helper class that collects exception specifications for implicitly-declared special member functions. More...
 
class  clang::Sema::DefaultedFunctionKind
 For a defaulted function, the kind of defaulted function that it is. More...
 
struct  clang::Sema::ExpressionEvaluationContextRecord
 Data structure used to record current or nested expression evaluation contexts. More...
 
struct  clang::Sema::ExpressionEvaluationContextRecord::InitializationContext
 
struct  clang::Sema::OffsetOfComponent
 
class  clang::Sema::VerifyICEDiagnoser
 Abstract base class used for diagnosing integer constant expression violations. More...
 
class  clang::Sema::FullExprArg
 
class  clang::Sema::ConditionResult
 
struct  clang::Sema::TypeDiagnoser
 Abstract class used to diagnose incomplete types. More...
 
class  clang::Sema::BoundTypeDiagnoser< Ts >
 
class  clang::Sema::SizelessTypeDiagnoser< Ts >
 A derivative of BoundTypeDiagnoser for which the diagnostic's type parameter is preceded by a 0/1 enum that is 1 if the type is sizeless. More...
 
class  clang::Sema::CXXThisScopeRAII
 RAII object used to temporarily allow the C++ 'this' expression to be used, with the given qualifiers on the current class type. More...
 
struct  clang::Sema::ActOnMemberAccessExtraArgs
 
class  clang::Sema::LambdaScopeForCallOperatorInstantiationRAII
 
class  clang::Sema::SpecialMemberOverloadResult
 SpecialMemberOverloadResult - The overloading result for a special member function. More...
 
class  clang::Sema::SpecialMemberOverloadResultEntry
 
struct  clang::Sema::TypoExprState
 
class  clang::Sema::DeferDiagsRAII
 RAII class to control scope of DeferDiags. More...
 
class  clang::Sema::ContextualImplicitConverter
 Abstract base class used to perform a contextual implicit conversion from an expression to any type passing a filter. More...
 
class  clang::Sema::ICEConvertDiagnoser
 
struct  clang::Sema::ReferenceConversionsScope
 
struct  clang::Sema::NamedReturnInfo
 
class  clang::Sema::FpPragmaStackSaveRAII
 
class  clang::Sema::RequiredTemplateKind
 Whether and why a template name is required in this lookup. More...
 
class  clang::Sema::TemplateCompareNewDeclInfo
 
class  clang::Sema::SFINAETrap
 RAII class used to determine whether SFINAE has trapped any errors that occur during template argument deduction. More...
 
class  clang::Sema::TentativeAnalysisScope
 RAII class used to indicate that we are performing provisional semantic analysis to determine the validity of a construct, so typo-correction and diagnostics in the immediate context (not within implicitly-instantiated templates) should be suppressed. More...
 
struct  clang::Sema::OriginalCallArg
 brief A function argument from which we performed template argument More...
 
class  clang::Sema::ExtParameterInfoBuilder
 A helper class for building up ExtParameterInfos. More...
 
struct  clang::Sema::CodeSynthesisContext
 A context in which code is being synthesized (where a source location alone is not sufficient to identify the context). More...
 
struct  clang::Sema::InstantiatingTemplate
 A stack object to be created when performing template instantiation. More...
 
struct  clang::Sema::InstantiatingTemplate::ExceptionSpecification
 
struct  clang::Sema::InstantiatingTemplate::ConstraintsCheck
 
struct  clang::Sema::InstantiatingTemplate::ConstraintSubstitution
 
struct  clang::Sema::InstantiatingTemplate::ConstraintNormalization
 
struct  clang::Sema::InstantiatingTemplate::ParameterMappingSubstitution
 
struct  clang::Sema::InstantiatingTemplate::BuildingDeductionGuidesTag
 
class  clang::Sema::SynthesizedFunctionScope
 RAII object to handle the state changes required to synthesize a function body. More...
 
class  clang::Sema::ArgumentPackSubstitutionIndexRAII
 RAII object used to change the argument pack substitution index within a Sema object. More...
 
struct  clang::Sema::ConstraintEvalRAII< InstTy >
 
class  clang::Sema::LocalEagerInstantiationScope
 
class  clang::Sema::FPFeaturesStateRAII
 Records and restores the CurFPFeatures state on entry/exit of compound statements. More...
 
class  clang::Sema::GlobalEagerInstantiationScope
 
struct  clang::Sema::LateInstantiatedAttribute
 
class  clang::Sema::SatisfactionStackResetRAII
 
struct  clang::LateParsedTemplate
 Contains a late templated function. More...
 

Namespaces

namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.
 
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::sema
 
namespace  clang::threadSafety
 

Typedefs

typedef std::pair< llvm::PointerUnion< const TemplateTypeParmType *, NamedDecl * >, SourceLocation > clang::UnexpandedParameterPack
 

Enumerations

enum class  clang::TemplateDeductionResult {
  clang::Success = 0 , clang::Invalid , clang::InstantiationDepth , clang::Incomplete ,
  clang::IncompletePack , clang::Inconsistent , clang::Underqualified , clang::SubstitutionFailure ,
  clang::DeducedMismatch , clang::DeducedMismatchNested , clang::NonDeducedMismatch , clang::TooManyArguments ,
  clang::TooFewArguments , clang::InvalidExplicitArguments , clang::NonDependentConversionFailure , clang::ConstraintsNotSatisfied ,
  clang::MiscellaneousDeductionFailure , clang::CUDATargetMismatch , clang::AlreadyDiagnosed
}
 Describes the result of template argument deduction. More...
 
enum class  clang::CXXSpecialMemberKind {
  clang::DefaultConstructor , clang::CopyConstructor , clang::MoveConstructor , clang::CopyAssignment ,
  clang::MoveAssignment , clang::Destructor , clang::Invalid
}
 Kinds of C++ special members. More...
 
enum class  clang::CheckedConversionKind {
  clang::Implicit , clang::CStyleCast , clang::FunctionalCast , clang::OtherCast ,
  clang::ForBuiltinOverloadedOp
}
 The kind of conversion being performed. More...
 
enum class  clang::TagUseKind { clang::Reference , clang::Declaration , clang::Definition , clang::Friend }
 
enum class  clang::FunctionEffectMode : uint8_t { clang::None , clang::False , clang::True , clang::Dependent }
 Used with attributes/effects with a boolean condition, e.g. nonblocking. More...
 

Functions

void clang::threadSafety::threadSafetyCleanup (BeforeSet *Cache)
 
DeductionFailureInfo clang::MakeDeductionFailureInfo (ASTContext &Context, TemplateDeductionResult TDK, sema::TemplateDeductionInfo &Info)
 Convert from Sema's representation of template deduction information to the form used in overload-candidate information.