LLDB
mainline
|
A TypeSystem implementation based on Clang. More...
#include <TypeSystemClang.h>
Classes | |
class | TemplateParameterInfos |
Public Types | |
typedef void(* | CompleteTagDeclCallback) (void *baton, clang::TagDecl *) |
typedef void(* | CompleteObjCInterfaceDeclCallback) (void *baton, clang::ObjCInterfaceDecl *) |
Public Member Functions | |
bool | isA (const void *ClassID) const override |
TypeSystemClang (llvm::StringRef name, llvm::Triple triple) | |
Constructs a TypeSystemClang with an ASTContext using the given triple. More... | |
TypeSystemClang (llvm::StringRef name, clang::ASTContext &existing_ctxt) | |
Constructs a TypeSystemClang that uses an existing ASTContext internally. More... | |
~TypeSystemClang () override | |
void | Finalize () override |
llvm::StringRef | GetPluginName () override |
llvm::StringRef | getDisplayName () const |
Returns the display name of this TypeSystemClang that indicates what purpose it serves in LLDB. More... | |
clang::ASTContext & | getASTContext () |
Returns the clang::ASTContext instance managed by this TypeSystemClang. More... | |
clang::MangleContext * | getMangleContext () |
std::shared_ptr< clang::TargetOptions > & | getTargetOptions () |
clang::TargetInfo * | getTargetInfo () |
void | setSema (clang::Sema *s) |
clang::Sema * | getSema () |
const char * | GetTargetTriple () |
void | SetExternalSource (llvm::IntrusiveRefCntPtr< clang::ExternalASTSource > &ast_source_up) |
bool | GetCompleteDecl (clang::Decl *decl) |
void | SetMetadataAsUserID (const clang::Decl *decl, lldb::user_id_t user_id) |
void | SetMetadataAsUserID (const clang::Type *type, lldb::user_id_t user_id) |
void | SetMetadata (const clang::Decl *object, ClangASTMetadata &meta_data) |
void | SetMetadata (const clang::Type *object, ClangASTMetadata &meta_data) |
ClangASTMetadata * | GetMetadata (const clang::Decl *object) |
ClangASTMetadata * | GetMetadata (const clang::Type *object) |
void | SetCXXRecordDeclAccess (const clang::CXXRecordDecl *object, clang::AccessSpecifier access) |
clang::AccessSpecifier | GetCXXRecordDeclAccess (const clang::CXXRecordDecl *object) |
CompilerType | GetBuiltinTypeForEncodingAndBitSize (lldb::Encoding encoding, size_t bit_size) override |
CompilerType | GetBasicType (lldb::BasicType type) |
CompilerType | GetBuiltinTypeForDWARFEncodingAndBitSize (llvm::StringRef type_name, uint32_t dw_ate, uint32_t bit_size) |
CompilerType | GetCStringType (bool is_const) |
uint32_t | GetPointerByteSize () override |
clang::TranslationUnitDecl * | GetTranslationUnitDecl () |
CompilerType | GetType (clang::QualType qt) |
Creates a CompilerType form the given QualType with the current TypeSystemClang instance as the CompilerType's typesystem. More... | |
CompilerType | GetTypeForDecl (clang::NamedDecl *decl) |
CompilerType | GetTypeForDecl (clang::TagDecl *decl) |
CompilerType | GetTypeForDecl (clang::ObjCInterfaceDecl *objc_decl) |
template<typename RecordDeclType > | |
CompilerType | GetTypeForIdentifier (ConstString type_name, clang::DeclContext *decl_context=nullptr) |
CompilerType | CreateStructForIdentifier (ConstString type_name, const std::initializer_list< std::pair< const char *, CompilerType >> &type_fields, bool packed=false) |
CompilerType | GetOrCreateStructForIdentifier (ConstString type_name, const std::initializer_list< std::pair< const char *, CompilerType >> &type_fields, bool packed=false) |
OptionalClangModuleID | GetOrCreateClangModule (llvm::StringRef name, OptionalClangModuleID parent, bool is_framework=false, bool is_explicit=false) |
Synthesize a clang::Module and return its ID or a default-constructed ID. More... | |
CompilerType | CreateRecordType (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, llvm::StringRef name, int kind, lldb::LanguageType language, ClangASTMetadata *metadata=nullptr, bool exports_symbols=false) |
clang::FunctionTemplateDecl * | CreateFunctionTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::FunctionDecl *func_decl, const TemplateParameterInfos &infos) |
void | CreateFunctionTemplateSpecializationInfo (clang::FunctionDecl *func_decl, clang::FunctionTemplateDecl *Template, const TemplateParameterInfos &infos) |
clang::ClassTemplateDecl * | CreateClassTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, llvm::StringRef class_name, int kind, const TemplateParameterInfos &infos) |
clang::TemplateTemplateParmDecl * | CreateTemplateTemplateParmDecl (const char *template_name) |
clang::ClassTemplateSpecializationDecl * | CreateClassTemplateSpecializationDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::ClassTemplateDecl *class_template_decl, int kind, const TemplateParameterInfos &infos) |
CompilerType | CreateClassTemplateSpecializationType (clang::ClassTemplateSpecializationDecl *class_template_specialization_decl) |
bool | FieldIsBitfield (clang::FieldDecl *field, uint32_t &bitfield_bit_size) |
CompilerType | CreateObjCClass (llvm::StringRef name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, bool isForwardDecl, bool isInternal, ClangASTMetadata *metadata=nullptr) |
clang::NamespaceDecl * | GetUniqueNamespaceDeclaration (const char *name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, bool is_inline=false) |
clang::FunctionDecl * | CreateFunctionDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, llvm::StringRef name, const CompilerType &function_Type, clang::StorageClass storage, bool is_inline) |
CompilerType | CreateFunctionType (const CompilerType &result_type, const CompilerType *args, unsigned num_args, bool is_variadic, unsigned type_quals, clang::CallingConv cc=clang::CC_C) |
clang::ParmVarDecl * | CreateParameterDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, const char *name, const CompilerType ¶m_type, int storage, bool add_decl=false) |
void | SetFunctionParameters (clang::FunctionDecl *function_decl, llvm::ArrayRef< clang::ParmVarDecl * > params) |
CompilerType | CreateBlockPointerType (const CompilerType &function_type) |
CompilerType | CreateArrayType (const CompilerType &element_type, size_t element_count, bool is_vector) |
CompilerType | CreateEnumerationType (llvm::StringRef name, clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, const Declaration &decl, const CompilerType &integer_qual_type, bool is_scoped) |
CompilerType | GetIntTypeFromBitSize (size_t bit_size, bool is_signed) |
CompilerType | GetPointerSizedIntType (bool is_signed) |
DWARFASTParser * | GetDWARFParser () override |
PDBASTParser * | GetPDBParser () override |
void | CompleteTagDecl (clang::TagDecl *) |
void | CompleteObjCInterfaceDecl (clang::ObjCInterfaceDecl *) |
bool | LayoutRecordType (const clang::RecordDecl *record_decl, uint64_t &size, uint64_t &alignment, llvm::DenseMap< const clang::FieldDecl *, uint64_t > &field_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &base_offsets, llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > &vbase_offsets) |
CompilerDecl | GetCompilerDecl (clang::Decl *decl) |
Creates a CompilerDecl from the given Decl with the current TypeSystemClang instance as its typesystem. More... | |
ConstString | DeclGetName (void *opaque_decl) override |
ConstString | DeclGetMangledName (void *opaque_decl) override |
CompilerDeclContext | DeclGetDeclContext (void *opaque_decl) override |
CompilerType | DeclGetFunctionReturnType (void *opaque_decl) override |
size_t | DeclGetFunctionNumArguments (void *opaque_decl) override |
CompilerType | DeclGetFunctionArgumentType (void *opaque_decl, size_t arg_idx) override |
CompilerType | GetTypeForDecl (void *opaque_decl) override |
CompilerDeclContext | CreateDeclContext (clang::DeclContext *ctx) |
Creates a CompilerDeclContext from the given DeclContext with the current TypeSystemClang instance as its typesystem. More... | |
std::vector< CompilerDecl > | DeclContextFindDeclByName (void *opaque_decl_ctx, ConstString name, const bool ignore_using_decls) override |
ConstString | DeclContextGetName (void *opaque_decl_ctx) override |
ConstString | DeclContextGetScopeQualifiedName (void *opaque_decl_ctx) override |
bool | DeclContextIsClassMethod (void *opaque_decl_ctx, lldb::LanguageType *language_ptr, bool *is_instance_method_ptr, ConstString *language_object_name_ptr) override |
bool | DeclContextIsContainedInLookup (void *opaque_decl_ctx, void *other_opaque_decl_ctx) override |
bool | Verify (lldb::opaque_compiler_type_t type) override |
Verify the integrity of the type to catch CompilerTypes that mix and match invalid TypeSystem/Opaque type pairs. More... | |
bool | IsArrayType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size, bool *is_incomplete) override |
bool | IsVectorType (lldb::opaque_compiler_type_t type, CompilerType *element_type, uint64_t *size) override |
bool | IsAggregateType (lldb::opaque_compiler_type_t type) override |
bool | IsAnonymousType (lldb::opaque_compiler_type_t type) override |
bool | IsBeingDefined (lldb::opaque_compiler_type_t type) override |
bool | IsCharType (lldb::opaque_compiler_type_t type) override |
bool | IsCompleteType (lldb::opaque_compiler_type_t type) override |
bool | IsConst (lldb::opaque_compiler_type_t type) override |
bool | IsCStringType (lldb::opaque_compiler_type_t type, uint32_t &length) override |
bool | IsDefined (lldb::opaque_compiler_type_t type) override |
bool | IsFloatingPointType (lldb::opaque_compiler_type_t type, uint32_t &count, bool &is_complex) override |
bool | IsFunctionType (lldb::opaque_compiler_type_t type) override |
uint32_t | IsHomogeneousAggregate (lldb::opaque_compiler_type_t type, CompilerType *base_type_ptr) override |
size_t | GetNumberOfFunctionArguments (lldb::opaque_compiler_type_t type) override |
CompilerType | GetFunctionArgumentAtIndex (lldb::opaque_compiler_type_t type, const size_t index) override |
bool | IsFunctionPointerType (lldb::opaque_compiler_type_t type) override |
bool | IsBlockPointerType (lldb::opaque_compiler_type_t type, CompilerType *function_pointer_type_ptr) override |
bool | IsIntegerType (lldb::opaque_compiler_type_t type, bool &is_signed) override |
bool | IsEnumerationType (lldb::opaque_compiler_type_t type, bool &is_signed) override |
bool | IsScopedEnumerationType (lldb::opaque_compiler_type_t type) override |
bool | IsPolymorphicClass (lldb::opaque_compiler_type_t type) override |
bool | IsPossibleDynamicType (lldb::opaque_compiler_type_t type, CompilerType *target_type, bool check_cplusplus, bool check_objc) override |
bool | IsRuntimeGeneratedType (lldb::opaque_compiler_type_t type) override |
bool | IsPointerType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override |
bool | IsPointerOrReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type) override |
bool | IsReferenceType (lldb::opaque_compiler_type_t type, CompilerType *pointee_type, bool *is_rvalue) override |
bool | IsScalarType (lldb::opaque_compiler_type_t type) override |
bool | IsTypedefType (lldb::opaque_compiler_type_t type) override |
bool | IsVoidType (lldb::opaque_compiler_type_t type) override |
bool | CanPassInRegisters (const CompilerType &type) override |
bool | SupportsLanguage (lldb::LanguageType language) override |
bool | GetCompleteType (lldb::opaque_compiler_type_t type) override |
ConstString | GetTypeName (lldb::opaque_compiler_type_t type) override |
ConstString | GetDisplayTypeName (lldb::opaque_compiler_type_t type) override |
uint32_t | GetTypeInfo (lldb::opaque_compiler_type_t type, CompilerType *pointee_or_element_compiler_type) override |
lldb::LanguageType | GetMinimumLanguage (lldb::opaque_compiler_type_t type) override |
lldb::TypeClass | GetTypeClass (lldb::opaque_compiler_type_t type) override |
unsigned | GetTypeQualifiers (lldb::opaque_compiler_type_t type) override |
CompilerType | GetArrayElementType (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
CompilerType | GetArrayType (lldb::opaque_compiler_type_t type, uint64_t size) override |
CompilerType | GetCanonicalType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetFullyUnqualifiedType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetEnumerationIntegerType (lldb::opaque_compiler_type_t type) override |
int | GetFunctionArgumentCount (lldb::opaque_compiler_type_t type) override |
CompilerType | GetFunctionArgumentTypeAtIndex (lldb::opaque_compiler_type_t type, size_t idx) override |
CompilerType | GetFunctionReturnType (lldb::opaque_compiler_type_t type) override |
size_t | GetNumMemberFunctions (lldb::opaque_compiler_type_t type) override |
TypeMemberFunctionImpl | GetMemberFunctionAtIndex (lldb::opaque_compiler_type_t type, size_t idx) override |
CompilerType | GetNonReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetPointeeType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetPointerType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetLValueReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetRValueReferenceType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetAtomicType (lldb::opaque_compiler_type_t type) override |
CompilerType | AddConstModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | AddVolatileModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | AddRestrictModifier (lldb::opaque_compiler_type_t type) override |
CompilerType | CreateTypedef (lldb::opaque_compiler_type_t type, const char *name, const CompilerDeclContext &decl_ctx, uint32_t opaque_payload) override |
Using the current type, create a new typedef to that type using "typedef_name" as the name and "decl_ctx" as the decl context. More... | |
CompilerType | GetTypedefedType (lldb::opaque_compiler_type_t type) override |
CompilerType | GetBasicTypeFromAST (lldb::BasicType basic_type) override |
const llvm::fltSemantics & | GetFloatTypeSemantics (size_t byte_size) override |
llvm::Optional< uint64_t > | GetByteSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) |
llvm::Optional< uint64_t > | GetBitSize (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
lldb::Encoding | GetEncoding (lldb::opaque_compiler_type_t type, uint64_t &count) override |
lldb::Format | GetFormat (lldb::opaque_compiler_type_t type) override |
llvm::Optional< size_t > | GetTypeBitAlign (lldb::opaque_compiler_type_t type, ExecutionContextScope *exe_scope) override |
uint32_t | GetNumChildren (lldb::opaque_compiler_type_t type, bool omit_empty_base_classes, const ExecutionContext *exe_ctx) override |
CompilerType | GetBuiltinTypeByName (ConstString name) override |
lldb::BasicType | GetBasicTypeEnumeration (lldb::opaque_compiler_type_t type) override |
void | ForEachEnumerator (lldb::opaque_compiler_type_t type, std::function< bool(const CompilerType &integer_type, ConstString name, const llvm::APSInt &value)> const &callback) override |
uint32_t | GetNumFields (lldb::opaque_compiler_type_t type) override |
CompilerType | GetFieldAtIndex (lldb::opaque_compiler_type_t type, size_t idx, std::string &name, uint64_t *bit_offset_ptr, uint32_t *bitfield_bit_size_ptr, bool *is_bitfield_ptr) override |
uint32_t | GetNumDirectBaseClasses (lldb::opaque_compiler_type_t type) override |
uint32_t | GetNumVirtualBaseClasses (lldb::opaque_compiler_type_t type) override |
CompilerType | GetDirectBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override |
CompilerType | GetVirtualBaseClassAtIndex (lldb::opaque_compiler_type_t type, size_t idx, uint32_t *bit_offset_ptr) override |
CompilerType | GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, size_t idx, bool transparent_pointers, bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name, uint32_t &child_byte_size, int32_t &child_byte_offset, uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags) override |
uint32_t | GetIndexOfChildWithName (lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes) override |
size_t | GetIndexOfChildMemberWithName (lldb::opaque_compiler_type_t type, const char *name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes) override |
size_t | GetNumTemplateArguments (lldb::opaque_compiler_type_t type) override |
lldb::TemplateArgumentKind | GetTemplateArgumentKind (lldb::opaque_compiler_type_t type, size_t idx) override |
CompilerType | GetTypeTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx) override |
llvm::Optional< CompilerType::IntegralTemplateArgument > | GetIntegralTemplateArgument (lldb::opaque_compiler_type_t type, size_t idx) override |
CompilerType | GetTypeForFormatters (void *type) override |
uint32_t | CountDeclLevels (clang::DeclContext *frame_decl_ctx, clang::DeclContext *child_decl_ctx, ConstString *child_name=nullptr, CompilerType *child_type=nullptr) |
clang::CXXMethodDecl * | AddMethodToCXXRecordType (lldb::opaque_compiler_type_t type, llvm::StringRef name, const char *mangled_name, const CompilerType &method_type, lldb::AccessType access, bool is_virtual, bool is_static, bool is_inline, bool is_explicit, bool is_attr_used, bool is_artificial) |
void | AddMethodOverridesForCXXRecordType (lldb::opaque_compiler_type_t type) |
std::unique_ptr< clang::CXXBaseSpecifier > | CreateBaseClassSpecifier (lldb::opaque_compiler_type_t type, lldb::AccessType access, bool is_virtual, bool base_of_class) |
bool | TransferBaseClasses (lldb::opaque_compiler_type_t type, std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> bases) |
clang::EnumConstantDecl * | AddEnumerationValueToEnumerationType (const CompilerType &enum_type, const Declaration &decl, const char *name, int64_t enum_value, uint32_t enum_value_bit_size) |
clang::EnumConstantDecl * | AddEnumerationValueToEnumerationType (const CompilerType &enum_type, const Declaration &decl, const char *name, const llvm::APSInt &value) |
CompilerType | GetEnumerationIntegerType (CompilerType type) |
Returns the underlying integer type for an enum type. More... | |
LLVM_DUMP_METHOD void | dump (lldb::opaque_compiler_type_t type) const override |
Convenience LLVM-style dump method for use in the debugger only. More... | |
void | Dump (llvm::raw_ostream &output) override |
void | DumpFromSymbolFile (Stream &s, llvm::StringRef symbol_name) |
Dump clang AST types from the symbol file. More... | |
void | DumpValue (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool show_types, bool show_summary, bool verbose, uint32_t depth) override |
bool | DumpTypeValue (lldb::opaque_compiler_type_t type, Stream *s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope) override |
void | DumpSummary (lldb::opaque_compiler_type_t type, ExecutionContext *exe_ctx, Stream *s, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size) override |
void | DumpTypeDescription (lldb::opaque_compiler_type_t type, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) override |
Dump the type to stdout. More... | |
void | DumpTypeDescription (lldb::opaque_compiler_type_t type, Stream *s, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) override |
Print a description of the type to a stream. More... | |
clang::ClassTemplateDecl * | ParseClassTemplateDecl (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, lldb::AccessType access_type, const char *parent_name, int tag_decl_kind, const TypeSystemClang::TemplateParameterInfos &template_param_infos) |
clang::BlockDecl * | CreateBlockDeclaration (clang::DeclContext *ctx, OptionalClangModuleID owning_module) |
clang::UsingDirectiveDecl * | CreateUsingDirectiveDeclaration (clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::NamespaceDecl *ns_decl) |
clang::UsingDecl * | CreateUsingDeclaration (clang::DeclContext *current_decl_ctx, OptionalClangModuleID owning_module, clang::NamedDecl *target) |
clang::VarDecl * | CreateVariableDeclaration (clang::DeclContext *decl_context, OptionalClangModuleID owning_module, const char *name, clang::QualType type) |
clang::DeclarationName | GetDeclarationName (llvm::StringRef name, const CompilerType &function_clang_type) |
clang::LangOptions * | GetLangOpts () const |
clang::SourceManager * | GetSourceMgr () const |
![]() | |
~TypeSystem () override | |
virtual SymbolFile * | GetSymbolFile () const |
virtual void | SetSymbolFile (SymbolFile *sym_file) |
virtual bool | ShouldTreatScalarValueAsAddress (lldb::opaque_compiler_type_t type) |
virtual UserExpression * | GetUserExpression (llvm::StringRef expr, llvm::StringRef prefix, lldb::LanguageType language, Expression::ResultType desired_type, const EvaluateExpressionOptions &options, ValueObject *ctx_obj) |
virtual FunctionCaller * | GetFunctionCaller (const CompilerType &return_type, const Address &function_address, const ValueList &arg_value_list, const char *name) |
virtual std::unique_ptr< UtilityFunction > | CreateUtilityFunction (std::string text, std::string name) |
virtual PersistentExpressionState * | GetPersistentExpressionState () |
virtual LazyBool | ShouldPrintAsOneLiner (void *type, ValueObject *valobj) |
virtual bool | IsMeaninglessWithoutDynamicResolution (void *type) |
![]() | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static bool | classof (const TypeSystem *ts) |
static llvm::StringRef | GetPluginNameStatic () |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module, Target *target) |
static LanguageSet | GetSupportedLanguagesForTypes () |
static LanguageSet | GetSupportedLanguagesForExpressions () |
static void | Initialize () |
static void | Terminate () |
static TypeSystemClang * | GetASTContext (clang::ASTContext *ast_ctx) |
static void | DumpDeclHiearchy (clang::Decl *decl) |
static void | DumpDeclContextHiearchy (clang::DeclContext *decl_ctx) |
static bool | DeclsAreEquivalent (clang::Decl *lhs_decl, clang::Decl *rhs_decl) |
static bool | GetCompleteDecl (clang::ASTContext *ast, clang::Decl *decl) |
static lldb::BasicType | GetBasicTypeEnumeration (ConstString name) |
static clang::DeclContext * | GetDeclContextForType (clang::QualType type) |
static clang::DeclContext * | GetDeclContextForType (const CompilerType &type) |
static bool | AreTypesSame (CompilerType type1, CompilerType type2, bool ignore_qualifiers=false) |
static bool | IsOperator (llvm::StringRef name, clang::OverloadedOperatorKind &op_kind) |
static clang::AccessSpecifier | ConvertAccessTypeToAccessSpecifier (lldb::AccessType access) |
static clang::AccessSpecifier | UnifyAccessSpecifiers (clang::AccessSpecifier lhs, clang::AccessSpecifier rhs) |
static uint32_t | GetNumBaseClasses (const clang::CXXRecordDecl *cxx_record_decl, bool omit_empty_base_classes) |
static clang::DeclContext * | GetAsDeclContext (clang::FunctionDecl *function_decl) |
static bool | CheckOverloadedOperatorKindParameterCount (bool is_method, clang::OverloadedOperatorKind op_kind, uint32_t num_params) |
static bool | RecordHasFields (const clang::RecordDecl *record_decl) |
static CompilerType | GetFloatTypeFromBitSize (clang::ASTContext *ast, size_t bit_size) |
static void | SetOwningModule (clang::Decl *decl, OptionalClangModuleID owning_module) |
Set the owning module for decl . More... | |
static clang::DeclContext * | DeclContextGetAsDeclContext (const CompilerDeclContext &dc) |
static clang::ObjCMethodDecl * | DeclContextGetAsObjCMethodDecl (const CompilerDeclContext &dc) |
static clang::CXXMethodDecl * | DeclContextGetAsCXXMethodDecl (const CompilerDeclContext &dc) |
static clang::FunctionDecl * | DeclContextGetAsFunctionDecl (const CompilerDeclContext &dc) |
static clang::NamespaceDecl * | DeclContextGetAsNamespaceDecl (const CompilerDeclContext &dc) |
static ClangASTMetadata * | DeclContextGetMetaData (const CompilerDeclContext &dc, const clang::Decl *object) |
static clang::ASTContext * | DeclContextGetTypeSystemClang (const CompilerDeclContext &dc) |
static bool | IsCXXClassType (const CompilerType &type) |
static bool | IsObjCClassType (const CompilerType &type) |
static bool | IsObjCClassTypeAndHasIVars (const CompilerType &type, bool check_superclass) |
static bool | IsObjCObjectOrInterfaceType (const CompilerType &type) |
static bool | IsObjCObjectPointerType (const CompilerType &type, CompilerType *target_type=nullptr) |
static bool | IsClassType (lldb::opaque_compiler_type_t type) |
static bool | IsEnumType (lldb::opaque_compiler_type_t type) |
static llvm::Optional< std::string > | GetCXXClassName (const CompilerType &type) |
static lldb::BasicType | GetBasicTypeEnumeration (lldb::opaque_compiler_type_t type, ConstString name) |
static uint32_t | GetNumPointeeChildren (clang::QualType type) |
static clang::FieldDecl * | AddFieldToRecordType (const CompilerType &type, llvm::StringRef name, const CompilerType &field_type, lldb::AccessType access, uint32_t bitfield_bit_size) |
static void | BuildIndirectFields (const CompilerType &type) |
static void | SetIsPacked (const CompilerType &type) |
static clang::VarDecl * | AddVariableToRecordType (const CompilerType &type, llvm::StringRef name, const CompilerType &var_type, lldb::AccessType access) |
static void | SetIntegerInitializerForVariable (clang::VarDecl *var, const llvm::APInt &init_value) |
Initializes a variable with an integer value. More... | |
static void | SetFloatingInitializerForVariable (clang::VarDecl *var, const llvm::APFloat &init_value) |
Initializes a variable with a floating point value. More... | |
static bool | SetObjCSuperClass (const CompilerType &type, const CompilerType &superclass_compiler_type) |
static bool | AddObjCClassProperty (const CompilerType &type, const char *property_name, const CompilerType &property_compiler_type, clang::ObjCIvarDecl *ivar_decl, const char *property_setter_name, const char *property_getter_name, uint32_t property_attributes, ClangASTMetadata *metadata) |
static clang::ObjCMethodDecl * | AddMethodToObjCObjectType (const CompilerType &type, const char *name, const CompilerType &method_compiler_type, lldb::AccessType access, bool is_artificial, bool is_variadic, bool is_objc_direct_call) |
static bool | SetHasExternalStorage (lldb::opaque_compiler_type_t type, bool has_extern) |
static bool | StartTagDeclarationDefinition (const CompilerType &type) |
static bool | CompleteTagDeclarationDefinition (const CompilerType &type) |
static CompilerType | CreateMemberPointerType (const CompilerType &type, const CompilerType &pointee_type) |
static void | DumpTypeName (const CompilerType &type) |
static clang::EnumDecl * | GetAsEnumDecl (const CompilerType &type) |
static clang::RecordDecl * | GetAsRecordDecl (const CompilerType &type) |
static clang::TagDecl * | GetAsTagDecl (const CompilerType &type) |
static clang::TypedefNameDecl * | GetAsTypedefDecl (const CompilerType &type) |
static clang::CXXRecordDecl * | GetAsCXXRecordDecl (lldb::opaque_compiler_type_t type) |
static clang::ObjCInterfaceDecl * | GetAsObjCInterfaceDecl (const CompilerType &type) |
static lldb::opaque_compiler_type_t | GetOpaqueCompilerType (clang::ASTContext *ast, lldb::BasicType basic_type) |
static clang::QualType | GetQualType (lldb::opaque_compiler_type_t type) |
static clang::QualType | GetCanonicalQualType (lldb::opaque_compiler_type_t type) |
![]() | |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module) |
static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Target *target) |
Private Types | |
typedef llvm::DenseMap< const clang::Decl *, ClangASTMetadata > | DeclMetadataMap |
typedef llvm::DenseMap< const clang::Type *, ClangASTMetadata > | TypeMetadataMap |
typedef llvm::DenseMap< const clang::CXXRecordDecl *, clang::AccessSpecifier > | CXXRecordDeclAccessMap |
Private Member Functions | |
clang::PrintingPolicy | GetTypePrintingPolicy () |
Returns the PrintingPolicy used when generating the internal type names. More... | |
std::string | GetTypeNameForDecl (const clang::NamedDecl *named_decl) |
Returns the internal type name for the given NamedDecl using the type printing policy. More... | |
const clang::ClassTemplateSpecializationDecl * | GetAsTemplateSpecialization (lldb::opaque_compiler_type_t type) |
TypeSystemClang (const TypeSystemClang &) | |
const TypeSystemClang & | operator= (const TypeSystemClang &) |
void | CreateASTContext () |
Creates the internal ASTContext. More... | |
void | SetTargetTriple (llvm::StringRef target_triple) |
Private Attributes | |
std::string | m_target_triple |
std::unique_ptr< clang::ASTContext > | m_ast_up |
std::unique_ptr< clang::LangOptions > | m_language_options_up |
std::unique_ptr< clang::FileManager > | m_file_manager_up |
std::unique_ptr< clang::SourceManager > | m_source_manager_up |
std::unique_ptr< clang::DiagnosticsEngine > | m_diagnostics_engine_up |
std::unique_ptr< clang::DiagnosticConsumer > | m_diagnostic_consumer_up |
std::shared_ptr< clang::TargetOptions > | m_target_options_rp |
std::unique_ptr< clang::TargetInfo > | m_target_info_up |
std::unique_ptr< clang::IdentifierTable > | m_identifier_table_up |
std::unique_ptr< clang::SelectorTable > | m_selector_table_up |
std::unique_ptr< clang::Builtin::Context > | m_builtins_up |
std::unique_ptr< clang::HeaderSearch > | m_header_search_up |
std::unique_ptr< clang::ModuleMap > | m_module_map_up |
std::unique_ptr< DWARFASTParserClang > | m_dwarf_ast_parser_up |
std::unique_ptr< PDBASTParser > | m_pdb_ast_parser_up |
std::unique_ptr< clang::MangleContext > | m_mangle_ctx_up |
uint32_t | m_pointer_byte_size = 0 |
bool | m_ast_owned = false |
std::string | m_display_name |
A string describing what this TypeSystemClang represents (e.g., AST for debug information, an expression, some other utility ClangAST). More... | |
DeclMetadataMap | m_decl_metadata |
Maps Decls to their associated ClangASTMetadata. More... | |
TypeMetadataMap | m_type_metadata |
Maps Types to their associated ClangASTMetadata. More... | |
CXXRecordDeclAccessMap | m_cxx_record_decl_access |
Maps CXXRecordDecl to their most recent added method/field's AccessSpecifier. More... | |
clang::Sema * | m_sema = nullptr |
The sema associated that is currently used to build this ASTContext. More... | |
Static Private Attributes | |
static char | ID |
Additional Inherited Members | |
![]() | |
SymbolFile * | m_sym_file = nullptr |
A TypeSystem implementation based on Clang.
This class uses a single clang::ASTContext as the backend for storing its types and declarations. Every clang::ASTContext should also just have a single associated TypeSystemClang instance that manages it.
The clang::ASTContext instance can either be created by TypeSystemClang itself or it can adopt an existing clang::ASTContext (for example, when it is necessary to provide a TypeSystem interface for an existing clang::ASTContext that was created by clang::CompilerInstance).
Definition at line 105 of file TypeSystemClang.h.
typedef void(* lldb_private::TypeSystemClang::CompleteObjCInterfaceDeclCallback) (void *baton, clang::ObjCInterfaceDecl *) |
Definition at line 111 of file TypeSystemClang.h.
typedef void(* lldb_private::TypeSystemClang::CompleteTagDeclCallback) (void *baton, clang::TagDecl *) |
Definition at line 110 of file TypeSystemClang.h.
|
private |
Definition at line 1088 of file TypeSystemClang.h.
|
private |
Definition at line 1079 of file TypeSystemClang.h.
|
private |
Definition at line 1083 of file TypeSystemClang.h.
|
explicit |
Constructs a TypeSystemClang with an ASTContext using the given triple.
name | The name for the TypeSystemClang (for logging purposes) |
triple | The llvm::Triple used for the ASTContext. The triple defines certain characteristics of the ASTContext and its types (e.g., whether certain primitive types exist or what their signedness is). |
Definition at line 553 of file TypeSystemClang.cpp.
References CreateASTContext(), m_display_name, and SetTargetTriple().
|
explicit |
Constructs a TypeSystemClang that uses an existing ASTContext internally.
Useful when having an existing ASTContext created by Clang.
name | The name for the TypeSystemClang (for logging purposes) |
existing_ctxt | An existing ASTContext. |
|
override |
Definition at line 573 of file TypeSystemClang.cpp.
References Finalize().
|
private |
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4576 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
clang::EnumConstantDecl * TypeSystemClang::AddEnumerationValueToEnumerationType | ( | const CompilerType & | enum_type, |
const Declaration & | decl, | ||
const char * | name, | ||
const llvm::APSInt & | value | ||
) |
Definition at line 8330 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeSystem(), lldbassert, and SetMemberOwningModule().
clang::EnumConstantDecl * TypeSystemClang::AddEnumerationValueToEnumerationType | ( | const CompilerType & | enum_type, |
const Declaration & | decl, | ||
const char * | name, | ||
int64_t | enum_value, | ||
uint32_t | enum_value_bit_size | ||
) |
Definition at line 8376 of file TypeSystemClang.cpp.
References GetEnumerationIntegerType(), and lldb_private::CompilerType::IsIntegerType().
Referenced by PDBASTParser::AddEnumValue(), and DWARFASTParserClang::ParseChildEnumerators().
|
static |
Definition at line 7274 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), ConvertAccessTypeToObjCIvarAccessControl(), GetAsObjCInterfaceDecl(), GetAsRecordDecl(), getASTContext(), lldb_private::CompilerType::GetCompleteType(), GetCXXRecordDeclAccess(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), SetCXXRecordDeclAccess(), and SetMemberOwningModule().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), and lldb_private::platform_linux::PlatformLinux::GetSiginfoType().
void TypeSystemClang::AddMethodOverridesForCXXRecordType | ( | lldb::opaque_compiler_type_t | type | ) |
Definition at line 7756 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
Referenced by DWARFASTParserClang::CompleteRecordType(), and PDBASTParser::CompleteTypeFromUDT().
clang::CXXMethodDecl * TypeSystemClang::AddMethodToCXXRecordType | ( | lldb::opaque_compiler_type_t | type, |
llvm::StringRef | name, | ||
const char * | mangled_name, | ||
const CompilerType & | method_type, | ||
lldb::AccessType | access, | ||
bool | is_virtual, | ||
bool | is_static, | ||
bool | is_inline, | ||
bool | is_explicit, | ||
bool | is_attr_used, | ||
bool | is_artificial | ||
) |
Definition at line 7560 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), ConvertAccessTypeToAccessSpecifier(), getASTContext(), GetCanonicalQualType(), GetCXXRecordDeclAccess(), lldb_private::ClangUtil::GetQualType(), IsOperator(), lldb_private::CompilerType::IsValid(), SetCXXRecordDeclAccess(), and SetMemberOwningModule().
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::npdb::UdtRecordCompleter::AddMethod(), PDBASTParser::AddRecordMethod(), lldb_private::npdb::PdbAstBuilder::CreateFunctionDecl(), and DWARFASTParserClang::ParseSubroutine().
|
static |
Force this to true because we don't have source locations.
Definition at line 8034 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), getASTContext(), GetDeclContextForType(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
Referenced by DWARFASTParserClang::ParseSubroutine().
|
static |
Definition at line 7821 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), SetMemberOwningModule(), SetMetadata(), and string().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4596 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 7494 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), GetAsRecordDecl(), getASTContext(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::CompilerType::IsValid(), and SetMemberOwningModule().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4586 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 1169 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ClangUtil::GetQualType(), and lldb_private::CompilerType::GetTypeSystem().
Referenced by CountDeclLevels().
|
static |
Definition at line 7370 of file TypeSystemClang.cpp.
References GetAsRecordDecl(), getASTContext(), lldb_private::CompilerType::GetTypeSystem(), SetMemberOwningModule(), and UnifyAccessSpecifiers().
Referenced by lldb_private::npdb::UdtRecordCompleter::complete().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3684 of file TypeSystemClang.cpp.
References GetAsRecordDecl().
|
static |
Definition at line 1725 of file TypeSystemClang.cpp.
Referenced by AddMethodToCXXRecordType(), and GetDeclarationName().
|
inlinestatic |
Definition at line 116 of file TypeSystemClang.h.
References ID, and lldb_private::TypeSystem::isA().
void TypeSystemClang::CompleteObjCInterfaceDecl | ( | clang::ObjCInterfaceDecl * | decl | ) |
Definition at line 9300 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
Referenced by lldb_private::ClangExternalASTSourceCallbacks::CompleteType().
void TypeSystemClang::CompleteTagDecl | ( | clang::TagDecl * | decl | ) |
Definition at line 9291 of file TypeSystemClang.cpp.
References lldb_private::SymbolFile::CompleteType(), lldb_private::TypeSystem::GetSymbolFile(), and GetTypeForDecl().
Referenced by lldb_private::ClangExternalASTSourceCallbacks::CompleteType().
|
static |
TODO This really needs to be fixed.
Definition at line 8246 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), lldb_private::CompilerType::GetTypeSystem(), and SetCXXRecordDeclAccess().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), lldb_private::npdb::UdtRecordCompleter::complete(), lldb_private::ClangASTImporter::CompleteType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), and lldb_private::platform_linux::PlatformLinux::GetSiginfoType().
|
static |
Definition at line 440 of file TypeSystemClang.cpp.
References lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessProtected, and lldb::eAccessPublic.
Referenced by AddFieldToRecordType(), AddMethodToCXXRecordType(), AddVariableToRecordType(), CreateBaseClassSpecifier(), CreateClassTemplateDecl(), and CreateRecordType().
uint32_t TypeSystemClang::CountDeclLevels | ( | clang::DeclContext * | frame_decl_ctx, |
clang::DeclContext * | child_decl_ctx, | ||
ConstString * | child_name = nullptr , |
||
CompilerType * | child_type = nullptr |
||
) |
Definition at line 9529 of file TypeSystemClang.cpp.
References AreTypesSame(), lldb_private::ConstString::AsCString(), CreateDeclContext(), lldb_private::TypeSystem::GetSymbolFile(), GetTypeForDecl(), LLDB_INVALID_DECL_LEVEL, and lldb_private::SymbolFile::ParseDeclsForContext().
Referenced by lldb_private::ClangExpressionDeclMap::SearchFunctionsInSymbolContexts().
CompilerType TypeSystemClang::CreateArrayType | ( | const CompilerType & | element_type, |
size_t | element_count, | ||
bool | is_vector | ||
) |
Definition at line 2244 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and lldb_private::CompilerType::IsValid().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildArray(), lldb_private::npdb::PdbAstBuilder::CreateArrayType(), PDBASTParser::CreateLLDBTypeFromPDBType(), DWARFASTParserClang::ParseArrayType(), and DWARFASTParserClang::ParseSingleMember().
|
private |
Creates the internal ASTContext.
Definition at line 713 of file TypeSystemClang.cpp.
References GetASTMap(), getTargetInfo(), GetTargetTriple(), lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType, _MutexType >::Insert(), lldb_private::FileSystem::Instance(), m_ast_owned, m_ast_up, m_builtins_up, m_diagnostic_consumer_up, m_diagnostics_engine_up, m_file_manager_up, m_identifier_table_up, m_language_options_up, m_selector_table_up, m_source_manager_up, ParseLangArgs(), and SetExternalSource().
Referenced by TypeSystemClang().
std::unique_ptr< clang::CXXBaseSpecifier > TypeSystemClang::CreateBaseClassSpecifier | ( | lldb::opaque_compiler_type_t | type, |
lldb::AccessType | access, | ||
bool | is_virtual, | ||
bool | base_of_class | ||
) |
Definition at line 7766 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), getASTContext(), and GetQualType().
Referenced by lldb_private::npdb::UdtRecordCompleter::AddBaseClassForTypeIndex(), PDBASTParser::AddRecordBases(), and DWARFASTParserClang::ParseInheritance().
clang::BlockDecl * TypeSystemClang::CreateBlockDeclaration | ( | clang::DeclContext * | ctx, |
OptionalClangModuleID | owning_module | ||
) |
Definition at line 1921 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::GetOrCreateBlockDecl(), and DWARFASTParserClang::ResolveBlockDIE().
CompilerType TypeSystemClang::CreateBlockPointerType | ( | const CompilerType & | function_type | ) |
Definition at line 2235 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::GetOpaqueQualType(), GetType(), and m_ast_up.
Referenced by DWARFASTParserClang::ParseTypeModifier().
ClassTemplateDecl * TypeSystemClang::CreateClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
llvm::StringRef | class_name, | ||
int | kind, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1567 of file TypeSystemClang.cpp.
References ClassTemplateAllowsToInstantiationArgs(), ConvertAccessTypeToAccessSpecifier(), CreateTemplateParameterList(), lldb::eAccessNone, getASTContext(), and SetOwningModule().
Referenced by ParseClassTemplateDecl().
ClassTemplateSpecializationDecl * TypeSystemClang::CreateClassTemplateSpecializationDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::ClassTemplateDecl * | class_template_decl, | ||
int | kind, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1663 of file TypeSystemClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::args, getASTContext(), lldb_private::TypeSystemClang::TemplateParameterInfos::packed_args, and SetOwningModule().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
CompilerType TypeSystemClang::CreateClassTemplateSpecializationType | ( | clang::ClassTemplateSpecializationDecl * | class_template_specialization_decl | ) |
Definition at line 1697 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
CompilerDeclContext TypeSystemClang::CreateDeclContext | ( | clang::DeclContext * | ctx | ) |
Creates a CompilerDeclContext from the given DeclContext with the current TypeSystemClang instance as its typesystem.
The DeclContext has to come from the ASTContext of this TypeSystemClang.
Definition at line 1200 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by CountDeclLevels(), PDBASTParser::CreateLLDBTypeFromPDBType(), DeclContextFindDeclByName(), DeclGetDeclContext(), lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(), SymbolFilePDB::GetDeclContextContainingUID(), DWARFASTParserClang::GetDeclContextContainingUIDFromDWARF(), SymbolFilePDB::GetDeclContextForUID(), DWARFASTParserClang::GetDeclContextForUIDFromDWARF(), and lldb_private::npdb::PdbAstBuilder::ToCompilerDeclContext().
CompilerType TypeSystemClang::CreateEnumerationType | ( | llvm::StringRef | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
const Declaration & | decl, | ||
const CompilerType & | integer_qual_type, | ||
bool | is_scoped | ||
) |
Definition at line 2309 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateEnumType(), PDBASTParser::CreateLLDBTypeFromPDBType(), and DWARFASTParserClang::ParseEnum().
FunctionDecl * TypeSystemClang::CreateFunctionDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
llvm::StringRef | name, | ||
const CompilerType & | function_Type, | ||
clang::StorageClass | storage, | ||
bool | is_inline | ||
) |
Definition at line 2139 of file TypeSystemClang.cpp.
References getASTContext(), GetDeclarationName(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionDecl(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseSubroutine().
clang::FunctionTemplateDecl * TypeSystemClang::CreateFunctionTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::FunctionDecl * | func_decl, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1432 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::ParseSubroutine().
void TypeSystemClang::CreateFunctionTemplateSpecializationInfo | ( | clang::FunctionDecl * | func_decl, |
clang::FunctionTemplateDecl * | Template, | ||
const TemplateParameterInfos & | infos | ||
) |
Definition at line 1464 of file TypeSystemClang.cpp.
References lldb_private::TypeSystemClang::TemplateParameterInfos::args.
Referenced by DWARFASTParserClang::ParseSubroutine().
CompilerType TypeSystemClang::CreateFunctionType | ( | const CompilerType & | result_type, |
const CompilerType * | args, | ||
unsigned | num_args, | ||
bool | is_variadic, | ||
unsigned | type_quals, | ||
clang::CallingConv | cc = clang::CC_C |
||
) |
Definition at line 2172 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), lldb_private::ClangUtil::IsClangType(), and lldbassert.
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::npdb::PdbAstBuilder::CreateFunctionType(), PDBASTParser::CreateLLDBTypeFromPDBType(), and DWARFASTParserClang::ParseSubroutine().
|
static |
Definition at line 575 of file TypeSystemClang.cpp.
References lldb_private::Module::GetArchitecture(), lldb_private::Target::GetArchitecture(), lldb_private::Module::GetFileSpec(), lldb_private::FileSpec::GetPath(), lldb_private::ArchSpec::GetTriple(), lldb_private::ArchSpec::IsValid(), lldb_private::Target::IsValid(), and string().
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 8400 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), GetType(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::CompilerType::IsValid().
CompilerType TypeSystemClang::CreateObjCClass | ( | llvm::StringRef | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
bool | isForwardDecl, | ||
bool | isInternal, | ||
ClangASTMetadata * | metadata = nullptr |
||
) |
Definition at line 1808 of file TypeSystemClang.cpp.
References getASTContext(), GetType(), SetMetadata(), and SetOwningModule().
Referenced by CreateRecordType().
ParmVarDecl * TypeSystemClang::CreateParameterDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
const char * | name, | ||
const CompilerType & | param_type, | ||
int | storage, | ||
bool | add_decl = false |
||
) |
Definition at line 2210 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::ClangUtil::GetQualType(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseChildParameters().
CompilerType TypeSystemClang::CreateRecordType | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
llvm::StringRef | name, | ||
int | kind, | ||
lldb::LanguageType | language, | ||
ClangASTMetadata * | metadata = nullptr , |
||
bool | exports_symbols = false |
||
) |
Definition at line 1270 of file TypeSystemClang.cpp.
References ConvertAccessTypeToAccessSpecifier(), CreateObjCClass(), lldb::eAccessNone, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, getASTContext(), GetType(), SetMetadata(), and SetOwningModule().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), PDBASTParser::CreateLLDBTypeFromPDBType(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), DWARFASTParserClang::ParseStructureLikeDIE(), and SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes().
CompilerType TypeSystemClang::CreateStructForIdentifier | ( | ConstString | type_name, |
const std::initializer_list< std::pair< const char *, CompilerType >> & | type_fields, | ||
bool | packed = false |
||
) |
Definition at line 2269 of file TypeSystemClang.cpp.
References AddFieldToRecordType(), CompleteTagDeclarationDefinition(), CreateRecordType(), lldb::eAccessPublic, lldb::eLanguageTypeC, lldb_private::ConstString::GetCString(), lldb_private::ConstString::IsEmpty(), lldbassert, SetIsPacked(), and StartTagDeclarationDefinition().
Referenced by lldb_private::formatters::BlockPointerSyntheticFrontEnd::BlockPointerSyntheticFrontEnd(), GetOrCreateStructForIdentifier(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetValueOffset(), and lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::Update().
TemplateTemplateParmDecl * TypeSystemClang::CreateTemplateTemplateParmDecl | ( | const char * | template_name | ) |
Definition at line 1640 of file TypeSystemClang.cpp.
References CreateTemplateParameterList(), and getASTContext().
Referenced by DWARFASTParserClang::ParseTemplateDIE().
|
overridevirtual |
Using the current type, create a new typedef to that type using "typedef_name" as the name and "decl_ctx" as the decl context.
opaque_payload | is an opaque TypePayloadClang. |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4605 of file TypeSystemClang.cpp.
References DeclContextGetAsDeclContext(), getASTContext(), GetQualType(), GetType(), and SetOwningModule().
clang::UsingDecl * TypeSystemClang::CreateUsingDeclaration | ( | clang::DeclContext * | current_decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::NamedDecl * | target | ||
) |
Definition at line 1970 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::GetClangDeclForDIE().
clang::UsingDirectiveDecl * TypeSystemClang::CreateUsingDirectiveDeclaration | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
clang::NamespaceDecl * | ns_decl | ||
) |
Definition at line 1951 of file TypeSystemClang.cpp.
References FindLCABetweenDecls(), getASTContext(), and SetOwningModule().
Referenced by DWARFASTParserClang::GetClangDeclForDIE().
clang::VarDecl * TypeSystemClang::CreateVariableDeclaration | ( | clang::DeclContext * | decl_context, |
OptionalClangModuleID | owning_module, | ||
const char * | name, | ||
clang::QualType | type | ||
) |
Definition at line 1989 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateVariableDecl(), DWARFASTParserClang::GetClangDeclForDIE(), and PDBASTParser::GetDeclForSymbol().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9432 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), CreateDeclContext(), GetCompilerDecl(), lldb_private::TypeSystem::GetSymbolFile(), and lldb_private::SymbolFile::ParseDeclsForContext().
|
static |
Definition at line 9709 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangExpressionDeclMap::LookUpLldbClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9694 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by CreateTypedef().
|
static |
Definition at line 9717 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9725 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangASTSource::AddNamespace().
|
static |
Definition at line 9701 of file TypeSystemClang.cpp.
References lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), and IsClangDeclContext().
Referenced by lldb_private::ClangASTSource::FindObjCMethodDecls(), lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 9733 of file TypeSystemClang.cpp.
References GetMetadata(), and lldb_private::CompilerDeclContext::GetTypeSystem().
Referenced by lldb_private::ClangUserExpression::ScanContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9611 of file TypeSystemClang.cpp.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9622 of file TypeSystemClang.cpp.
References GetTypeNameForDecl().
|
static |
Definition at line 9740 of file TypeSystemClang.cpp.
References getASTContext(), and lldb_private::CompilerDeclContext::GetTypeSystem().
Referenced by lldb_private::ClangASTSource::AddNamespace().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9632 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, GetMetadata(), lldb_private::ClangASTMetadata::GetObjectPtrName(), lldb_private::ClangASTMetadata::HasObjectPtr(), and lldb_private::ConstString::SetCString().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9672 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9384 of file TypeSystemClang.cpp.
References CreateDeclContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9412 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9401 of file TypeSystemClang.cpp.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9390 of file TypeSystemClang.cpp.
References GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9354 of file TypeSystemClang.cpp.
References getMangleContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9344 of file TypeSystemClang.cpp.
|
static |
Definition at line 2423 of file TypeSystemClang.cpp.
Referenced by lldb_private::ClangASTSource::FindCompleteType().
|
overridevirtual |
Convenience LLVM-style dump method for use in the debugger only.
In contrast to the other Dump()
methods this directly invokes clang::QualType::dump()
.
Implements lldb_private::TypeSystem.
Definition at line 8420 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 8428 of file TypeSystemClang.cpp.
References GetTranslationUnitDecl().
Referenced by lldb_private::npdb::PdbAstBuilder::Dump(), and lldb_private::ScratchTypeSystemClang::Dump().
|
static |
Definition at line 2387 of file TypeSystemClang.cpp.
Referenced by DumpDeclHiearchy().
|
static |
Definition at line 2401 of file TypeSystemClang.cpp.
References DumpDeclContextHiearchy().
void TypeSystemClang::DumpFromSymbolFile | ( | Stream & | s, |
llvm::StringRef | symbol_name | ||
) |
Dump clang AST types from the symbol file.
[in] | s | A stream to send the dumped AST node(s) to |
[in] | symbol_name | The name of the symbol to dump, if it is empty dump all the symbols |
Definition at line 8432 of file TypeSystemClang.cpp.
References lldb_private::Stream::AsRawOstream(), lldb_private::CompilerType::dump(), GetAsTagDecl(), getASTContext(), GetAsTypedefDecl(), GetCanonicalQualType(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::ClangUtil::GetQualType(), lldb_private::TypeList::GetSize(), lldb_private::TypeSystem::GetSymbolFile(), lldb_private::TypeList::GetTypeAtIndex(), and lldb_private::SymbolFile::GetTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 9051 of file TypeSystemClang.cpp.
References lldb_private::DumpDataExtractor(), lldb::eFormatChar, error(), lldb_private::Process::GetByteOrder(), lldb_private::DataExtractor::GetMaxU64(), lldb_private::ExecutionContext::GetProcessPtr(), IsCStringType(), LLDB_INVALID_ADDRESS, lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), lldb_private::Process::ReadMemory(), and UINT32_MAX.
Referenced by DumpValue().
|
overridevirtual |
Dump the type to stdout.
Implements lldb_private::TypeSystem.
Definition at line 9096 of file TypeSystemClang.cpp.
References lldb_private::ClangASTMetadata::Dump(), GetMetadata(), and lldb_private::ClangUtil::GetQualType().
Referenced by GetBitSize().
|
overridevirtual |
Print a description of the type to a stream.
The exact implementation varies, but the expectation is that eDescriptionLevelFull returns a source-like representation of the type, whereas eDescriptionLevelVerbose does a dump of the underlying AST if applicable.
Implements lldb_private::TypeSystem.
Definition at line 9109 of file TypeSystemClang.cpp.
References lldb::eDescriptionLevelVerbose, getASTContext(), GetCompleteType(), lldb_private::Stream::GetIndentLevel(), GetQualType(), GetTypeNameForDecl(), lldb_private::Stream::PutCString(), RemoveWrappingTypes(), string(), and lldb_private::Stream::Write().
|
static |
Definition at line 9204 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::ClangUtil::IsClangType(), and lldb_private::ClangUtil::RemoveFastQualifiers().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 8927 of file TypeSystemClang.cpp.
References lldb_private::DumpDataExtractor(), DumpEnumValue(), lldb_private::CompilerType::DumpTypeValue(), lldb::eFormatBinary, lldb::eFormatBoolean, lldb::eFormatBytes, lldb::eFormatBytesWithASCII, lldb::eFormatChar, lldb::eFormatCharArray, lldb::eFormatCharPrintable, lldb::eFormatComplex, lldb::eFormatCString, lldb::eFormatDecimal, lldb::eFormatDefault, lldb::eFormatEnum, lldb::eFormatFloat, lldb::eFormatHex, lldb::eFormatHexUppercase, lldb::eFormatOctal, lldb::eFormatOSType, lldb::eFormatPointer, lldb::eFormatUnicode16, lldb::eFormatUnicode32, lldb::eFormatUnicode8, lldb::eFormatUnsigned, lldb::eFormatVectorOfChar, lldb::eFormatVectorOfFloat32, lldb::eFormatVectorOfFloat64, lldb::eFormatVectorOfSInt16, lldb::eFormatVectorOfSInt32, lldb::eFormatVectorOfSInt64, lldb::eFormatVectorOfSInt8, lldb::eFormatVectorOfUInt128, lldb::eFormatVectorOfUInt16, lldb::eFormatVectorOfUInt32, lldb::eFormatVectorOfUInt64, lldb::eFormatVectorOfUInt8, getASTContext(), GetCompleteType(), lldb_private::CompilerType::GetFormat(), GetQualType(), GetType(), IsAggregateType(), LLDB_INVALID_ADDRESS, and UINT32_MAX.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 8473 of file TypeSystemClang.cpp.
References DEPTH_INCREMENT, lldb_private::DumpDataExtractor(), DumpSummary(), lldb_private::CompilerType::DumpValue(), lldb::eFormatChar, FieldIsBitfield(), lldb_private::Stream::Format(), getASTContext(), GetCompleteType(), lldb_private::CompilerType::GetFormat(), GetFormat(), lldb_private::DataExtractor::GetMaxU64Bitfield(), GetQualType(), GetType(), LLDB_INVALID_ADDRESS, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), RecordHasFields(), string(), and UINT32_MAX.
bool TypeSystemClang::FieldIsBitfield | ( | clang::FieldDecl * | field, |
uint32_t & | bitfield_bit_size | ||
) |
Definition at line 1764 of file TypeSystemClang.cpp.
References getASTContext(), and UINT32_MAX.
Referenced by DumpValue(), and GetChildCompilerTypeAtIndex().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 649 of file TypeSystemClang.cpp.
References lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType, _MutexType >::Erase(), GetASTMap(), m_ast_owned, m_ast_up, m_builtins_up, m_diagnostics_engine_up, m_identifier_table_up, m_language_options_up, m_selector_table_up, m_source_manager_up, m_target_info_up, and m_target_options_rp.
Referenced by lldb_private::ScratchTypeSystemClang::Finalize(), and ~TypeSystemClang().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 5551 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4232 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4248 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), and GetType().
|
static |
Definition at line 7260 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
Referenced by AddMethodOverridesForCXXRecordType(), PDBASTParser::AddRecordBases(), DWARFASTParserClang::CompleteRecordType(), PDBASTParser::CompleteTypeFromPDB(), PDBASTParser::CompleteTypeFromUDT(), PDBASTParser::CreateLLDBTypeFromPDBType(), DWARFASTParserClang::ParseInheritance(), DWARFASTParserClang::ParseStructureLikeDIE(), and TransferBaseClasses().
|
static |
|
static |
Definition at line 7230 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
|
static |
Definition at line 7265 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by AddFieldToRecordType(), AddMethodToObjCObjectType(), AddObjCClassProperty(), IsObjCClassTypeAndHasIVars(), and SetObjCSuperClass().
|
static |
Definition at line 7238 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
Referenced by AddFieldToRecordType(), AddVariableToRecordType(), BuildIndirectFields(), CanPassInRegisters(), and SetIsPacked().
|
static |
Definition at line 7246 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetAsTagDecl().
Referenced by DumpFromSymbolFile().
ASTContext & TypeSystemClang::getASTContext | ( | ) |
Returns the clang::ASTContext instance managed by this TypeSystemClang.
Definition at line 686 of file TypeSystemClang.cpp.
References m_ast_up.
Referenced by AddEnumerationValueToEnumerationType(), PDBASTParser::AddEnumValue(), AddFieldToRecordType(), lldb_private::NameSearchContext::AddFunDecl(), AddMethodToCXXRecordType(), AddMethodToObjCObjectType(), AddObjCClassProperty(), PDBASTParser::AddRecordMembers(), lldb_private::NameSearchContext::AddVarDecl(), AddVariableToRecordType(), lldb_private::AppleObjCDeclVendor::AppleObjCDeclVendor(), AreTypesSame(), BuildIndirectFields(), lldb_private::AppleObjCTypeEncodingParser::BuildObjCObjectPointerType(), lldb_private::AppleObjCTypeEncodingParser::BuildType(), lldb_private::ASTResultSynthesizer::CommitPersistentDecls(), lldb_private::npdb::PdbAstBuilder::CompleteTagDecl(), CompleteTagDeclarationDefinition(), lldb_private::ClangASTImporter::CopyType(), CreateArrayType(), CreateBaseClassSpecifier(), CreateBlockDeclaration(), CreateClassTemplateDecl(), CreateClassTemplateSpecializationDecl(), CreateClassTemplateSpecializationType(), CreateDeclContext(), CreateEnumerationType(), CreateFunctionDeclaration(), CreateFunctionTemplateDecl(), CreateFunctionType(), PDBASTParser::CreateLLDBTypeFromPDBType(), CreateMemberPointerType(), CreateObjCClass(), CreateParameterDeclaration(), lldb_private::npdb::PdbAstBuilder::CreatePointerType(), CreateRecordType(), lldb_private::npdb::PdbAstBuilder::CreateSimpleType(), CreateTemplateTemplateParmDecl(), CreateTypedef(), CreateUsingDeclaration(), CreateUsingDirectiveDeclaration(), CreateVariableDeclaration(), DeclContextGetTypeSystemClang(), lldb_private::ClangASTImporter::DeportType(), lldb_private::ClangExpressionDeclMap::DeportType(), DumpFromSymbolFile(), DumpTypeDescription(), DumpTypeValue(), DumpValue(), FieldIsBitfield(), lldb_private::AppleObjCDeclVendor::FindDecls(), lldb_private::AppleObjCDeclVendor::FinishDecl(), lldb_private::ScratchTypeSystemClang::ForgetSource(), GetArrayType(), lldb_private::NameSearchContext::GetASTContext(), GetAtomicType(), GetBasicType(), GetBitSize(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetBuiltinTypeForPDBEncodingAndBitSize(), GetChildCompilerTypeAtIndex(), GetCompilerDecl(), GetCompleteDecl(), GetCompleteType(), GetCStringType(), GetDeclarationName(), lldb_private::AppleObjCDeclVendor::GetDeclForISA(), PDBASTParser::GetDeclForSymbol(), GetDirectBaseClassAtIndex(), GetDisplayTypeName(), GetFieldAtIndex(), GetFloatTypeSemantics(), GetFullyUnqualifiedType(), GetIndexOfChildMemberWithName(), GetIntTypeFromBitSize(), GetLValueReferenceType(), getMangleContext(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumChildren(), GetNumMemberFunctions(), GetOrCreateClangModule(), GetPointerSizedIntType(), GetPointerType(), GetRValueReferenceType(), getTargetInfo(), GetTranslationUnitDecl(), GetType(), GetTypeBitAlign(), GetTypeForIdentifier(), GetTypeInfo(), GetTypePrintingPolicy(), GetUniqueNamespaceDeclaration(), GetVirtualBaseClassAtIndex(), lldb_private::ClangASTSource::InstallASTContext(), IsCompleteType(), IsHomogeneousAggregate(), DWARFASTParserClang::ParseTemplateDIE(), SetExternalSource(), SetIsPacked(), SetObjCSuperClass(), and lldb_private::AppleObjCExternalASTSource::StartTranslationUnit().
|
static |
Definition at line 758 of file TypeSystemClang.cpp.
References GetASTMap(), and lldb_private::ThreadSafeDenseMap< _KeyType, _ValueType, _MutexType >::Lookup().
Referenced by lldb_private::ClangASTImporter::GetDeclMetadata().
|
private |
Definition at line 7128 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
Referenced by GetIntegralTemplateArgument(), GetTemplateArgumentKind(), and GetTypeTemplateArgument().
|
static |
Definition at line 7251 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
Referenced by DumpFromSymbolFile(), and lldb_private::npdb::PdbAstBuilder::GetOrCreateTypedefDecl().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4569 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
CompilerType TypeSystemClang::GetBasicType | ( | lldb::BasicType | type | ) |
Definition at line 930 of file TypeSystemClang.cpp.
References getASTContext(), and GetOpaqueCompilerType().
Referenced by lldb_private::ClangExpressionDeclMap::AddContextClassType(), lldb_private::ClangExpressionDeclMap::AddOneGenericVariable(), lldb_private::formatters::BlockPointerSyntheticFrontEnd::BlockPointerSyntheticFrontEnd(), PDBASTParser::CreateLLDBTypeFromPDBType(), PlatformPOSIX::DoLoadImage(), lldb_private::AppleObjCRuntime::GetBacktraceThreadFromException(), lldb_private::npdb::PdbAstBuilder::GetBasicType(), GetBasicTypeFromAST(), GetBuiltinTypeByName(), GetBuiltinTypeForPDBEncodingAndBitSize(), lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunctionImpl(), lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunctionImpl(), lldb_private::AppleGetQueuesHandler::GetCurrentQueues(), lldb_private::ItaniumABILanguageRuntime::GetExceptionObjectForThread(), lldb_private::AppleGetItemInfoHandler::GetItemInfo(), GetLLDBNSPairType(), lldb_private::AppleObjCRuntime::GetObjectDescription(), lldb_private::AppleGetPendingItemsHandler::GetPendingItems(), GetPointerByteSize(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), lldb_private::platform_linux::PlatformLinux::GetSiginfoType(), lldb_private::AppleObjCTrampolineHandler::GetStepThroughDispatchPlan(), lldb_private::AppleGetThreadItemInfoHandler::GetThreadItemInfo(), lldb_private::DynamicLoaderDarwin::GetThreadLocalData(), lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetValueOffset(), LibcxxWStringSummaryProvider(), lldb_private::PlatformWindows::MakeLoadImageUtilityFunction(), PlatformPOSIX::MakeLoadImageUtilityFunction(), DynamicLoaderMacOS::NotifyBreakpointHit(), DynamicLoaderMacOSXDYLD::NotifyBreakpointHit(), ObjCExceptionRecognizedStackFrame::ObjCExceptionRecognizedStackFrame(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTemplateDIE(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::AppleObjCTrampolineHandler::AppleObjCVTables::RefreshTrampolines(), lldb_private::AppleObjCTrampolineHandler::SetupDispatchFunction(), lldb_private::AppleGetPendingItemsHandler::SetupGetPendingItemsFunction(), lldb_private::AppleGetQueuesHandler::SetupGetQueuesFunction(), lldb_private::AppleGetThreadItemInfoHandler::SetupGetThreadItemInfoFunction(), and lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::Update().
|
static |
Definition at line 856 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar, lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, lldb::eBasicTypeWChar, and lldb_private::UniqueCStringMap< T >::Find().
Referenced by GetBuiltinTypeByName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5477 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb::eBasicTypeHalf, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeOther, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, GetQualType(), and UInt.
|
static |
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4660 of file TypeSystemClang.cpp.
References GetBasicType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4681 of file TypeSystemClang.cpp.
References DumpTypeDescription(), lldb_private::ObjCLanguageRuntime::Get(), getASTContext(), GetCanonicalQualType(), GetCompleteType(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::StreamString::GetString(), GetType(), and lldb_private::ObjCLanguageRuntime::GetTypeBitSize().
Referenced by GetByteSize().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 5472 of file TypeSystemClang.cpp.
References GetBasicType(), and GetBasicTypeEnumeration().
CompilerType TypeSystemClang::GetBuiltinTypeForDWARFEncodingAndBitSize | ( | llvm::StringRef | type_name, |
uint32_t | dw_ate, | ||
uint32_t | bit_size | ||
) |
Definition at line 941 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::GetLog(), lldb_private::ClangUtil::GetQualType(), getTargetInfo(), GetType(), LLDB_LOG, QualTypeMatchesBitSize(), and lldb_private::Types.
Referenced by DWARFASTParserClang::ParseEnum(), and DWARFASTParserClang::ParseTypeModifier().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 795 of file TypeSystemClang.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, lldb::eEncodingVector, getASTContext(), GetType(), and QualTypeMatchesBitSize().
Referenced by lldb_private::ClangExpressionDeclMap::AddOneRegister(), GetBuiltinTypeForPDBEncodingAndBitSize(), lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::GetClassInfoUtilityFunctionImpl(), lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::GetClassInfoUtilityFunctionImpl(), lldb_private::AppleObjCTrampolineHandler::GetStepThroughDispatchPlan(), DynamicLoaderMacOS::NotifyBreakpointHit(), DynamicLoaderMacOSXDYLD::NotifyBreakpointHit(), DWARFASTParserClang::ParseSingleMember(), SystemRuntimeMacOSX::ReadLibdispatchTSDIndexes(), lldb_private::AppleObjCRuntimeV2::DynamicClassInfoExtractor::UpdateISAToDescriptorMap(), and lldb_private::AppleObjCRuntimeV2::SharedCacheClassInfoExtractor::UpdateISAToDescriptorMap().
|
inline |
Definition at line 727 of file TypeSystemClang.h.
References GetBitSize().
Referenced by GetPointerByteSize().
|
inlinestatic |
Definition at line 1026 of file TypeSystemClang.h.
Referenced by AddEnumerationValueToEnumerationType(), AddMethodToCXXRecordType(), DumpFromSymbolFile(), ForEachEnumerator(), GetArrayType(), GetAsCXXRecordDecl(), GetAsTemplateSpecialization(), GetBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetEncoding(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFormat(), GetFunctionArgumentCount(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNumberOfFunctionArguments(), GetNumDirectBaseClasses(), GetNumFields(), GetNumMemberFunctions(), GetNumTemplateArguments(), GetNumVirtualBaseClasses(), GetVirtualBaseClassAtIndex(), IsAggregateType(), IsAnonymousType(), IsArrayType(), IsBeingDefined(), IsBlockPointerType(), IsClassType(), IsCStringType(), IsEnumerationType(), IsEnumType(), IsFloatingPointType(), IsFunctionPointerType(), IsFunctionType(), IsHomogeneousAggregate(), IsIntegerType(), IsPointerOrReferenceType(), IsPointerType(), IsPolymorphicClass(), IsPossibleDynamicType(), IsReferenceType(), IsScopedEnumerationType(), IsVectorType(), IsVoidType(), and SetHasExternalStorage().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4266 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6145 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), FieldIsBitfield(), lldb_private::ObjCLanguageRuntime::Get(), getASTContext(), lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::CompilerType::GetBitSize(), lldb_private::ObjCLanguageRuntime::GetByteOffsetForIvar(), lldb_private::CompilerType::GetByteSize(), GetCanonicalQualType(), lldb_private::CompilerType::GetChildCompilerTypeAtIndex(), lldb_private::CompilerType::GetCompleteType(), GetCompleteType(), lldb_private::ConstString::GetCString(), lldb_private::ValueObject::GetName(), lldb_private::CompilerType::GetNumChildren(), GetNumChildren(), GetPointeeType(), lldb_private::ExecutionContext::GetProcessPtr(), GetQualType(), GetType(), lldb_private::CompilerType::GetTypeName(), GetVBaseBitOffset(), INT32_MAX, lldb_private::CompilerType::IsAggregateType(), lldb_private::CompilerType::IsVoidType(), LLDB_INVALID_IVAR_OFFSET, RecordHasFields(), RemoveWrappingTypes(), and string().
|
inline |
Creates a CompilerDecl from the given Decl with the current TypeSystemClang instance as its typesystem.
The Decl has to come from the ASTContext of this TypeSystemClang.
Definition at line 462 of file TypeSystemClang.h.
References getASTContext().
Referenced by DeclContextFindDeclByName(), lldb_private::AppleObjCDeclVendor::FindDecls(), SymbolFilePDB::GetDeclForUID(), DWARFASTParserClang::GetDeclForUIDFromDWARF(), GetMemberFunctionAtIndex(), and lldb_private::npdb::PdbAstBuilder::ToCompilerDecl().
|
static |
Definition at line 2506 of file TypeSystemClang.cpp.
|
inline |
Definition at line 177 of file TypeSystemClang.h.
References getASTContext().
Referenced by lldb_private::ClangASTImporter::CompleteObjCInterfaceDecl(), lldb_private::ClangASTImporter::CompleteTagDecl(), lldb_private::ClangASTImporter::CompleteTagDeclWithOrigin(), lldb_private::ClangASTSource::FindCompleteType(), lldb_private::ClangASTSource::FindObjCMethodDeclsWithOrigin(), PDBASTParser::GetDeclForSymbol(), and lldb_private::ClangASTSource::layoutRecordType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3760 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), and GetQualType().
Referenced by DumpTypeDescription(), DumpTypeValue(), DumpValue(), GetAsTemplateSpecialization(), GetBitSize(), GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetFieldAtIndex(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetMemberFunctionAtIndex(), GetNumDirectBaseClasses(), GetNumFields(), GetNumMemberFunctions(), GetNumTemplateArguments(), GetNumVirtualBaseClasses(), GetTypeBitAlign(), GetVirtualBaseClassAtIndex(), IsHomogeneousAggregate(), and IsPolymorphicClass().
CompilerType TypeSystemClang::GetCStringType | ( | bool | is_const | ) |
Definition at line 1159 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by lldb_private::AppleObjCRuntime::GetObjectDescription().
|
static |
Definition at line 3697 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), and string().
clang::AccessSpecifier TypeSystemClang::GetCXXRecordDeclAccess | ( | const clang::CXXRecordDecl * | object | ) |
Definition at line 2589 of file TypeSystemClang.cpp.
References m_cxx_record_decl_access.
Referenced by AddFieldToRecordType(), and AddMethodToCXXRecordType().
clang::DeclarationName TypeSystemClang::GetDeclarationName | ( | llvm::StringRef | name, |
const CompilerType & | function_clang_type | ||
) |
Definition at line 2083 of file TypeSystemClang.cpp.
References CheckOverloadedOperatorKindParameterCount(), getASTContext(), lldb_private::ClangUtil::GetQualType(), and IsOperator().
Referenced by CreateFunctionDeclaration().
|
static |
Definition at line 2635 of file TypeSystemClang.cpp.
References RemoveWrappingTypes().
Referenced by AddMethodToObjCObjectType(), PDBASTParser::GetDeclContextForSymbol(), GetDeclContextForType(), IsRuntimeGeneratedType(), and DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Definition at line 2597 of file TypeSystemClang.cpp.
References GetDeclContextForType(), and lldb_private::ClangUtil::GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5869 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetDirectBaseClassAtIndex(), GetPointeeType(), GetType(), and RemoveWrappingTypes().
|
inline |
Returns the display name of this TypeSystemClang that indicates what purpose it serves in LLDB.
Used for example in logs.
Definition at line 158 of file TypeSystemClang.h.
References m_display_name.
Referenced by lldb_private::ClangASTSource::CompleteNamespaceMap(), lldb_private::ClangASTSource::CompleteType(), lldb_private::ClangASTSource::FindExternalLexicalDecls(), lldb_private::ClangASTSource::FindExternalVisibleDecls(), lldb_private::ClangASTSource::FindObjCMethodDecls(), lldb_private::ClangASTSource::FindObjCPropertyAndIvarDecls(), and lldb_private::ClangASTSource::layoutRecordType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3794 of file TypeSystemClang.cpp.
References getASTContext(), and GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9310 of file TypeSystemClang.cpp.
References m_dwarf_ast_parser_up.
Referenced by SymbolFileDWARF::CompleteType(), and SymbolFileDWARF::HasForwardDeclForClangType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4752 of file TypeSystemClang.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, GetCanonicalQualType(), lldb_private::CompilerType::GetEncoding(), GetType(), RemoveWrappingTypes(), and UInt.
CompilerType TypeSystemClang::GetEnumerationIntegerType | ( | CompilerType | type | ) |
Returns the underlying integer type for an enum type.
If the given type is invalid or not an enum-type, the function returns an invalid CompilerType.
Definition at line 8389 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4300 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
Referenced by AddEnumerationValueToEnumerationType(), PDBASTParser::AddEnumValue(), and DWARFASTParserClang::ParseEnum().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5694 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetObjCFieldAtIndex(), GetType(), and RemoveWrappingTypes().
|
static |
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4666 of file TypeSystemClang.cpp.
References getASTContext().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5138 of file TypeSystemClang.cpp.
References lldb::eFormatBoolean, lldb::eFormatBytes, lldb::eFormatChar, lldb::eFormatComplex, lldb::eFormatComplexInteger, lldb::eFormatDecimal, lldb::eFormatDefault, lldb::eFormatEnum, lldb::eFormatFloat, lldb::eFormatHex, lldb::eFormatUnicode16, lldb::eFormatUnicode32, lldb::eFormatUnicode8, lldb::eFormatUnsigned, lldb::eFormatVoid, GetCanonicalQualType(), RemoveWrappingTypes(), and UInt.
Referenced by DumpValue().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4292 of file TypeSystemClang.cpp.
References getASTContext(), GetFullyUnqualifiedType_Impl(), GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3132 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4306 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4317 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4332 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6664 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetIndexForRecordBase(), GetIndexForRecordChild(), lldb_private::CompilerType::GetIndexOfChildMemberWithName(), GetNumBaseClasses(), GetPointeeType(), GetType(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RemoveWrappingTypes(), and UINT32_MAX.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 6904 of file TypeSystemClang.cpp.
References lldb_private::ConstString::AsCString(), GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetIndexOfChildWithName(), GetType(), lldb_private::CompilerType::GetTypeName(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RecordHasFields(), RemoveWrappingTypes(), string(), and UINT32_MAX.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7208 of file TypeSystemClang.cpp.
References GetAsTemplateSpecialization(), and GetType().
CompilerType TypeSystemClang::GetIntTypeFromBitSize | ( | size_t | bit_size, |
bool | is_signed | ||
) |
Definition at line 2338 of file TypeSystemClang.cpp.
References getASTContext(), and GetType().
Referenced by GetPointerSizedIntType().
|
inline |
Definition at line 1036 of file TypeSystemClang.h.
References m_language_options_up.
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4554 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
clang::MangleContext * TypeSystemClang::getMangleContext | ( | ) |
Definition at line 763 of file TypeSystemClang.cpp.
References getASTContext(), and m_mangle_ctx_up.
Referenced by DeclGetMangledName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4404 of file TypeSystemClang.cpp.
References lldb::eMemberFunctionKindConstructor, lldb::eMemberFunctionKindDestructor, lldb::eMemberFunctionKindInstanceMethod, lldb::eMemberFunctionKindStaticMethod, lldb::eMemberFunctionKindUnknown, getASTContext(), GetCanonicalQualType(), GetCompilerDecl(), GetCompleteQualType(), GetCompleteType(), GetType(), RemoveWrappingTypes(), and string().
ClangASTMetadata * TypeSystemClang::GetMetadata | ( | const clang::Decl * | object | ) |
Definition at line 2566 of file TypeSystemClang.cpp.
References m_decl_metadata.
Referenced by DeclContextGetMetaData(), DeclContextIsClassMethod(), DumpTypeDescription(), lldb_private::AppleObjCDeclVendor::FindDecls(), lldb_private::AppleObjCDeclVendor::FinishDecl(), lldb_private::ClangASTImporter::GetDeclMetadata(), GetDynamicArrayInfo(), IsPossibleDynamicType(), and IsRuntimeGeneratedType().
ClangASTMetadata * TypeSystemClang::GetMetadata | ( | const clang::Type * | object | ) |
Definition at line 2573 of file TypeSystemClang.cpp.
References m_type_metadata.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4009 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC, lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeObjC, getASTContext(), GetCanonicalQualType(), lldb_private::CompilerType::GetMinimumLanguage(), GetType(), and UInt.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4521 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
|
static |
Definition at line 1835 of file TypeSystemClang.cpp.
References BaseSpecifierIsEmpty().
Referenced by GetIndexForRecordChild(), and GetIndexOfChildMemberWithName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3119 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5318 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), GetDynamicArrayInfo(), lldb_private::CompilerType::GetNumChildren(), GetNumPointeeChildren(), GetPointeeType(), GetQualType(), lldb_private::TypeSystem::GetSymbolFile(), GetType(), lldb_private::CompilerType::IsAggregateType(), ObjCDeclHasIVars(), RecordHasFields(), and RemoveWrappingTypes().
Referenced by GetChildCompilerTypeAtIndex().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5797 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), lldb_private::CompilerType::GetNumDirectBaseClasses(), GetPointeeType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5577 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4344 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 6012 of file TypeSystemClang.cpp.
References RemoveWrappingTypes(), and UInt.
Referenced by GetNumChildren().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7099 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5849 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
static |
Definition at line 2008 of file TypeSystemClang.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeChar, lldb::eBasicTypeChar16, lldb::eBasicTypeChar32, lldb::eBasicTypeChar8, lldb::eBasicTypeDouble, lldb::eBasicTypeDoubleComplex, lldb::eBasicTypeFloat, lldb::eBasicTypeFloatComplex, lldb::eBasicTypeHalf, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeLong, lldb::eBasicTypeLongDouble, lldb::eBasicTypeLongDoubleComplex, lldb::eBasicTypeLongLong, lldb::eBasicTypeNullPtr, lldb::eBasicTypeObjCClass, lldb::eBasicTypeObjCID, lldb::eBasicTypeObjCSel, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeSignedWChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb::eBasicTypeUnsignedWChar, lldb::eBasicTypeVoid, and lldb::eBasicTypeWChar.
Referenced by GetBasicType().
OptionalClangModuleID TypeSystemClang::GetOrCreateClangModule | ( | llvm::StringRef | name, |
OptionalClangModuleID | parent, | ||
bool | is_framework = false , |
||
bool | is_explicit = false |
||
) |
Synthesize a clang::Module and return its ID or a default-constructed ID.
Definition at line 1236 of file TypeSystemClang.cpp.
References getASTContext(), lldb_private::OptionalClangModuleID::GetValue(), m_diagnostics_engine_up, m_header_search_up, m_language_options_up, m_module_map_up, m_source_manager_up, and m_target_info_up.
Referenced by DWARFASTParserClang::GetOwningClangModule(), and RemapModule().
CompilerType TypeSystemClang::GetOrCreateStructForIdentifier | ( | ConstString | type_name, |
const std::initializer_list< std::pair< const char *, CompilerType >> & | type_fields, | ||
bool | packed = false |
||
) |
Definition at line 2295 of file TypeSystemClang.cpp.
References CreateStructForIdentifier().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 9316 of file TypeSystemClang.cpp.
References m_pdb_ast_parser_up.
Referenced by SymbolFilePDB::CompleteType(), SymbolFilePDB::GetDeclContextContainingUID(), SymbolFilePDB::GetDeclContextForUID(), SymbolFilePDB::GetDeclForUID(), SymbolFilePDB::ParseCompileUnitFunctionForPDBFunc(), SymbolFilePDB::ParseDeclsForContext(), and SymbolFilePDB::ResolveTypeUID().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 140 of file TypeSystemClang.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 142 of file TypeSystemClang.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4528 of file TypeSystemClang.cpp.
References GetQualType(), and GetType().
Referenced by GetChildCompilerTypeAtIndex(), GetDirectBaseClassAtIndex(), GetIndexOfChildMemberWithName(), GetNumChildren(), and GetNumDirectBaseClasses().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 921 of file TypeSystemClang.cpp.
References lldb::eBasicTypeVoid, GetBasicType(), GetByteSize(), GetPointerType(), and m_pointer_byte_size.
CompilerType TypeSystemClang::GetPointerSizedIntType | ( | bool | is_signed | ) |
Definition at line 2382 of file TypeSystemClang.cpp.
References getASTContext(), and GetIntTypeFromBitSize().
Referenced by NSIndexPathSyntheticFrontEnd::Update().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4537 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
Referenced by GetPointerByteSize().
|
inlinestatic |
Definition at line 1019 of file TypeSystemClang.h.
Referenced by AddConstModifier(), AddRestrictModifier(), AddVolatileModifier(), CreateBaseClassSpecifier(), CreateTypedef(), dump(), DumpTypeDescription(), DumpTypeValue(), DumpValue(), GetArrayElementType(), GetAtomicType(), GetBasicTypeEnumeration(), GetChildCompilerTypeAtIndex(), GetCompleteType(), GetDisplayTypeName(), GetFullyUnqualifiedType(), GetFunctionArgumentAtIndex(), GetFunctionArgumentTypeAtIndex(), GetFunctionReturnType(), GetLValueReferenceType(), GetNonReferenceType(), GetNumChildren(), GetPointeeType(), GetPointerType(), GetRValueReferenceType(), GetTypeBitAlign(), GetTypeClass(), GetTypedefedType(), GetTypeInfo(), GetTypeName(), GetTypeQualifiers(), IsCharType(), IsCompleteType(), IsConst(), IsDefined(), IsRuntimeGeneratedType(), IsTypedefType(), and Verify().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 4562 of file TypeSystemClang.cpp.
References getASTContext(), GetQualType(), and GetType().
|
inline |
Definition at line 170 of file TypeSystemClang.h.
References m_sema.
Referenced by lldb_private::ClangASTSource::getSema().
|
inline |
Definition at line 1039 of file TypeSystemClang.h.
References m_source_manager_up.
|
static |
Definition at line 629 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeC_plus_plus_03, lldb::eLanguageTypeC_plus_plus_11, lldb::eLanguageTypeC_plus_plus_14, lldb::eLanguageTypeObjC_plus_plus, and lldb_private::LanguageSet::Insert().
Referenced by Initialize().
|
static |
Definition at line 613 of file TypeSystemClang.cpp.
References lldb::eLanguageTypeC, lldb::eLanguageTypeC11, lldb::eLanguageTypeC89, lldb::eLanguageTypeC99, lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeC_plus_plus_03, lldb::eLanguageTypeC_plus_plus_11, lldb::eLanguageTypeC_plus_plus_14, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, and lldb_private::LanguageSet::Insert().
Referenced by Initialize().
TargetInfo * TypeSystemClang::getTargetInfo | ( | ) |
Definition at line 778 of file TypeSystemClang.cpp.
References getASTContext(), getTargetOptions(), m_target_info_up, and m_target_triple.
Referenced by CreateASTContext(), and GetBuiltinTypeForDWARFEncodingAndBitSize().
std::shared_ptr< clang::TargetOptions > & TypeSystemClang::getTargetOptions | ( | ) |
Definition at line 769 of file TypeSystemClang.cpp.
References m_target_options_rp, and m_target_triple.
Referenced by getTargetInfo().
const char * TypeSystemClang::GetTargetTriple | ( | ) |
Definition at line 671 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by CreateASTContext().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7153 of file TypeSystemClang.cpp.
References lldb::eTemplateArgumentKindDeclaration, lldb::eTemplateArgumentKindExpression, lldb::eTemplateArgumentKindIntegral, lldb::eTemplateArgumentKindNull, lldb::eTemplateArgumentKindNullPtr, lldb::eTemplateArgumentKindPack, lldb::eTemplateArgumentKindTemplate, lldb::eTemplateArgumentKindTemplateExpansion, lldb::eTemplateArgumentKindType, and GetAsTemplateSpecialization().
|
inline |
Definition at line 223 of file TypeSystemClang.h.
References getASTContext().
Referenced by lldb_private::npdb::PdbAstBuilder::CreateDeclInfoForType(), Dump(), DWARFASTParserClang::GetClangDeclContextContainingDIE(), DWARFASTParserClang::GetClangDeclContextForDIE(), PDBASTParser::GetDeclContextContainingSymbol(), lldb_private::npdb::PdbAstBuilder::GetTranslationUnitDecl(), and DWARFASTParserClang::ParseSubroutine().
|
inline |
Creates a CompilerType form the given QualType with the current TypeSystemClang instance as the CompilerType's typesystem.
qt | The QualType for a type that belongs to the ASTContext of this TypeSystemClang. |
Definition at line 237 of file TypeSystemClang.h.
References getASTContext().
Referenced by AddConstModifier(), AddObjCClassProperty(), AddRestrictModifier(), AddVolatileModifier(), lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), DWARFASTParserClang::CompleteRecordType(), CreateArrayType(), CreateBlockPointerType(), CreateClassTemplateSpecializationType(), CreateEnumerationType(), lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), CreateFunctionType(), CreateMemberPointerType(), CreateObjCClass(), CreateRecordType(), IRForTarget::CreateResultVariable(), CreateTypedef(), DeclGetFunctionArgumentType(), DeclGetFunctionReturnType(), DumpTypeValue(), DumpValue(), ForEachEnumerator(), GetArrayElementType(), GetArrayType(), GetAtomicType(), GetBitSize(), GetBuiltinTypeForDWARFEncodingAndBitSize(), GetBuiltinTypeForEncodingAndBitSize(), GetCanonicalType(), GetChildCompilerTypeAtIndex(), GetCStringType(), GetDirectBaseClassAtIndex(), GetEncoding(), GetEnumerationIntegerType(), GetFieldAtIndex(), GetFullyUnqualifiedType(), GetFunctionArgumentTypeAtIndex(), GetFunctionReturnType(), GetIndexOfChildMemberWithName(), GetIndexOfChildWithName(), GetIntegralTemplateArgument(), GetIntTypeFromBitSize(), GetLValueReferenceType(), GetMemberFunctionAtIndex(), GetMinimumLanguage(), GetNonReferenceType(), GetNumChildren(), GetPointeeType(), GetPointerType(), GetRValueReferenceType(), GetTypedefedType(), GetTypeInfo(), GetTypeTemplateArgument(), GetVirtualBaseClassAtIndex(), lldb_private::ClangASTSource::GuardedCopyType(), IsPossibleDynamicType(), IsVectorType(), IRForTarget::MaybeHandleVariable(), lldb_private::AppleObjCTypeEncodingParser::RealizeType(), and IRForTarget::RewritePersistentAlloc().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4745 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4093 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4648 of file TypeSystemClang.cpp.
References GetQualType(), GetType(), and RemoveWrappingTypes().
CompilerType TypeSystemClang::GetTypeForDecl | ( | clang::NamedDecl * | decl | ) |
Definition at line 1206 of file TypeSystemClang.cpp.
Referenced by CompleteObjCInterfaceDecl(), CompleteTagDecl(), CountDeclLevels(), GetTypeForDecl(), and PrepareContextToReceiveMembers().
CompilerType lldb_private::TypeSystemClang::GetTypeForDecl | ( | clang::ObjCInterfaceDecl * | objc_decl | ) |
CompilerType lldb_private::TypeSystemClang::GetTypeForDecl | ( | clang::TagDecl * | decl | ) |
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 1190 of file TypeSystemClang.cpp.
References GetTypeForDecl().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7224 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::RemoveFastQualifiers().
|
inline |
Definition at line 254 of file TypeSystemClang.h.
References getASTContext(), lldb_private::ConstString::GetCString(), lldb_private::ConstString::GetLength(), and lldb_private::CompilerType::SetCompilerType().
Referenced by PDBASTParser::CreateLLDBTypeFromPDBType(), and GetLLDBNSPairType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3808 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), getASTContext(), GetQualType(), GetType(), lldb_private::CompilerType::GetTypeInfo(), RemoveWrappingTypes(), lldb_private::CompilerType::SetCompilerType(), and UInt.
Referenced by IsCStringType(), and IsScalarType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3768 of file TypeSystemClang.cpp.
References GetQualType(), GetTypeNameForDecl(), GetTypePrintingPolicy(), and RemoveWrappingTypes().
|
private |
Returns the internal type name for the given NamedDecl using the type printing policy.
Definition at line 2131 of file TypeSystemClang.cpp.
References GetTypePrintingPolicy(), and string().
Referenced by DeclContextGetScopeQualifiedName(), DumpTypeDescription(), and GetTypeName().
|
private |
Returns the PrintingPolicy used when generating the internal type names.
These type names are mostly used for the formatter selection.
Definition at line 2109 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by GetTypeName(), and GetTypeNameForDecl().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 4223 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 7192 of file TypeSystemClang.cpp.
References GetAsTemplateSpecialization(), and GetType().
NamespaceDecl * TypeSystemClang::GetUniqueNamespaceDeclaration | ( | const char * | name, |
clang::DeclContext * | decl_ctx, | ||
OptionalClangModuleID | owning_module, | ||
bool | is_inline = false |
||
) |
Definition at line 1857 of file TypeSystemClang.cpp.
References getASTContext(), and SetOwningModule().
Referenced by PDBASTParser::GetDeclContextContainingSymbol(), lldb_private::npdb::PdbAstBuilder::GetOrCreateNamespaceDecl(), lldb_private::ClangExpressionDeclMap::LookupLocalVarNamespace(), and DWARFASTParserClang::ResolveNamespaceDIE().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 5964 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), GetType(), and RemoveWrappingTypes().
|
static |
Definition at line 639 of file TypeSystemClang.cpp.
References CreateInstance(), GetPluginNameStatic(), GetSupportedLanguagesForExpressions(), GetSupportedLanguagesForTypes(), and lldb_private::PluginManager::RegisterPlugin().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Reimplemented in lldb_private::ScratchTypeSystemClang.
Definition at line 115 of file TypeSystemClang.h.
References ID.
Referenced by lldb_private::ScratchTypeSystemClang::isA().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2802 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by DumpTypeValue().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 2823 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2845 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3720 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3171 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), m_ast_up, and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2967 of file TypeSystemClang.cpp.
References GetQualType().
|
static |
Definition at line 3493 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2971 of file TypeSystemClang.cpp.
References getASTContext(), GetCompleteQualType(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2982 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2986 of file TypeSystemClang.cpp.
References lldb_private::Flags::AnySet(), GetCanonicalQualType(), GetTypeInfo(), lldb_private::CompilerType::IsCharType(), lldb_private::CompilerType::IsValid(), and lldb_private::Flags::Test().
Referenced by DumpSummary().
|
static |
Definition at line 3712 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3448 of file TypeSystemClang.cpp.
References GetQualType().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 3227 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and IsIntegerType().
|
static |
Definition at line 3501 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3410 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3146 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3011 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3038 of file TypeSystemClang.cpp.
References getASTContext(), GetCanonicalQualType(), GetCompleteType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3208 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
Referenced by IsEnumerationType().
|
static |
Definition at line 3474 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), and lldb_private::ClangUtil::IsClangType().
Referenced by lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 8026 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), and ObjCDeclHasIVars().
|
static |
Definition at line 3487 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetCanonicalQualType(), and lldb_private::ClangUtil::IsClangType().
Referenced by lldb_private::ObjCLanguageRuntime::GetRuntimeType(), and lldb_private::ObjCLanguageRuntime::LookupInCompleteClassCache().
|
static |
Definition at line 3730 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), lldb_private::ClangUtil::GetCanonicalQualType(), lldb_private::CompilerType::GetTypeSystem(), lldb_private::ClangUtil::IsClangType(), and lldb_private::CompilerType::SetCompilerType().
Referenced by lldb_private::AppleObjCRuntime::GetObjectDescription(), lldb_private::ObjCLanguageRuntime::GetRuntimeType(), lldb_private::ClangExpressionDeclMap::LookUpLldbObjCClass(), and lldb_private::ClangUserExpression::ScanContext().
|
static |
Definition at line 359 of file TypeSystemClang.cpp.
Referenced by AddMethodToCXXRecordType(), and GetDeclarationName().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3309 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3257 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3509 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetCompleteType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3535 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), lldb_private::CompilerType::GetCompleteType(), lldb_private::ClangASTMetadata::GetIsDynamicCXXType(), GetMetadata(), GetType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3374 of file TypeSystemClang.cpp.
References lldb_private::CompilerType::Clear(), GetCanonicalQualType(), RemoveWrappingTypes(), and lldb_private::CompilerType::SetCompilerType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2949 of file TypeSystemClang.cpp.
References GetDeclContextForType(), lldb_private::ClangASTMetadata::GetISAPtr(), GetMetadata(), and GetQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3664 of file TypeSystemClang.cpp.
References GetTypeInfo().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3243 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3671 of file TypeSystemClang.cpp.
References GetQualType(), and RemoveWrappingTypes().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 2914 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and GetType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3678 of file TypeSystemClang.cpp.
References GetCanonicalQualType().
bool TypeSystemClang::LayoutRecordType | ( | const clang::RecordDecl * | record_decl, |
uint64_t & | size, | ||
uint64_t & | alignment, | ||
llvm::DenseMap< const clang::FieldDecl *, uint64_t > & | field_offsets, | ||
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > & | base_offsets, | ||
llvm::DenseMap< const clang::CXXRecordDecl *, clang::CharUnits > & | vbase_offsets | ||
) |
Definition at line 9322 of file TypeSystemClang.cpp.
References lldb_private::ClangASTImporter::LayoutRecordType(), m_dwarf_ast_parser_up, and m_pdb_ast_parser_up.
Referenced by lldb_private::ClangExternalASTSourceCallbacks::layoutRecordType().
|
private |
clang::ClassTemplateDecl * TypeSystemClang::ParseClassTemplateDecl | ( | clang::DeclContext * | decl_ctx, |
OptionalClangModuleID | owning_module, | ||
lldb::AccessType | access_type, | ||
const char * | parent_name, | ||
int | tag_decl_kind, | ||
const TypeSystemClang::TemplateParameterInfos & | template_param_infos | ||
) |
Definition at line 9276 of file TypeSystemClang.cpp.
References CreateClassTemplateDecl(), lldb_private::TypeSystemClang::TemplateParameterInfos::IsValid(), and string().
Referenced by DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Definition at line 1783 of file TypeSystemClang.cpp.
Referenced by BaseSpecifierIsEmpty(), DumpValue(), GetChildCompilerTypeAtIndex(), GetIndexOfChildWithName(), and GetNumChildren().
void TypeSystemClang::SetCXXRecordDeclAccess | ( | const clang::CXXRecordDecl * | object, |
clang::AccessSpecifier | access | ||
) |
Definition at line 2580 of file TypeSystemClang.cpp.
References m_cxx_record_decl_access.
Referenced by AddFieldToRecordType(), AddMethodToCXXRecordType(), and CompleteTagDeclarationDefinition().
void TypeSystemClang::SetExternalSource | ( | llvm::IntrusiveRefCntPtr< clang::ExternalASTSource > & | ast_source_up | ) |
Definition at line 679 of file TypeSystemClang.cpp.
References getASTContext().
Referenced by CreateASTContext(), and lldb_private::ScratchTypeSystemClang::ScratchTypeSystemClang().
|
static |
Initializes a variable with a floating point value.
var | The variable to initialize. Must not already have an initializer and must have a floating point type. |
init_value | The float value that the variable should be initialized to. |
Definition at line 7549 of file TypeSystemClang.cpp.
void TypeSystemClang::SetFunctionParameters | ( | clang::FunctionDecl * | function_decl, |
llvm::ArrayRef< clang::ParmVarDecl * > | params | ||
) |
Definition at line 2228 of file TypeSystemClang.cpp.
Referenced by lldb_private::npdb::PdbAstBuilder::CreateFunctionParameters(), PDBASTParser::GetDeclForSymbol(), and DWARFASTParserClang::ParseSubroutine().
|
static |
Definition at line 8168 of file TypeSystemClang.cpp.
References GetCanonicalQualType(), and RemoveWrappingTypes().
Referenced by lldb_private::npdb::PdbAstBuilder::CompleteTagDecl(), lldb_private::ClangASTImporter::CompleteType(), DWARFASTParserClang::CompleteTypeFromDWARF(), lldb_private::npdb::PdbAstBuilder::CreateEnumType(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), and DWARFASTParserClang::ParseStructureLikeDIE().
|
static |
Initializes a variable with an integer value.
var | The variable to initialize. Must not already have an initializer and must have an integer or enum type. |
init_value | The integer value that the variable should be initialized to. Has to match the bit width of the variable type. |
Definition at line 7531 of file TypeSystemClang.cpp.
|
static |
Definition at line 7478 of file TypeSystemClang.cpp.
References GetAsRecordDecl(), getASTContext(), and lldb_private::CompilerType::GetTypeSystem().
Referenced by CreateStructForIdentifier().
void TypeSystemClang::SetMetadata | ( | const clang::Decl * | object, |
ClangASTMetadata & | meta_data | ||
) |
Definition at line 2556 of file TypeSystemClang.cpp.
References m_decl_metadata.
Referenced by AddObjCClassProperty(), CreateObjCClass(), CreateRecordType(), lldb_private::AppleObjCDeclVendor::GetDeclForISA(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), and SetMetadataAsUserID().
void TypeSystemClang::SetMetadata | ( | const clang::Type * | object, |
ClangASTMetadata & | meta_data | ||
) |
Definition at line 2561 of file TypeSystemClang.cpp.
References m_type_metadata.
void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Decl * | decl, |
lldb::user_id_t | user_id | ||
) |
Definition at line 2542 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
Referenced by DWARFASTParserClang::ParseArrayType(), DWARFASTParserClang::ParseChildParameters(), DWARFASTParserClang::ParseSingleMember(), and DWARFASTParserClang::ParseSubroutine().
void TypeSystemClang::SetMetadataAsUserID | ( | const clang::Type * | type, |
lldb::user_id_t | user_id | ||
) |
Definition at line 2549 of file TypeSystemClang.cpp.
References SetMetadata(), and lldb_private::ClangASTMetadata::SetUserID().
|
static |
Definition at line 7798 of file TypeSystemClang.cpp.
References GetAsObjCInterfaceDecl(), getASTContext(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::CompilerType::IsValid().
Referenced by DWARFASTParserClang::ParseInheritance().
|
static |
Set the owning module for decl
.
Definition at line 1225 of file TypeSystemClang.cpp.
References lldb_private::OptionalClangModuleID::GetValue(), and lldb_private::OptionalClangModuleID::HasValue().
Referenced by CreateBlockDeclaration(), CreateClassTemplateDecl(), CreateClassTemplateSpecializationDecl(), CreateEnumerationType(), CreateFunctionDeclaration(), CreateFunctionTemplateDecl(), CreateObjCClass(), CreateParameterDeclaration(), CreateRecordType(), CreateTypedef(), CreateUsingDeclaration(), CreateUsingDirectiveDeclaration(), CreateVariableDeclaration(), GetUniqueNamespaceDeclaration(), and lldb_private::ClangASTImporter::ASTImporterDelegate::Imported().
void TypeSystemClang::setSema | ( | clang::Sema * | s | ) |
Definition at line 665 of file TypeSystemClang.cpp.
|
private |
Definition at line 675 of file TypeSystemClang.cpp.
References m_target_triple.
Referenced by TypeSystemClang().
|
static |
Definition at line 8221 of file TypeSystemClang.cpp.
References lldb_private::ClangUtil::GetQualType().
Referenced by lldb_private::AppleObjCTypeEncodingParser::BuildAggregate(), lldb_private::npdb::PdbAstBuilder::CreateEnumType(), lldb_private::npdb::PdbAstBuilder::CreateRecordType(), CreateStructForIdentifier(), GetLLDBNSPairType(), lldb_private::platform_freebsd::PlatformFreeBSD::GetSiginfoType(), lldb_private::platform_netbsd::PlatformNetBSD::GetSiginfoType(), and lldb_private::platform_linux::PlatformLinux::GetSiginfoType().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 3692 of file TypeSystemClang.cpp.
|
static |
Definition at line 645 of file TypeSystemClang.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
bool TypeSystemClang::TransferBaseClasses | ( | lldb::opaque_compiler_type_t | type, |
std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> | bases | ||
) |
Definition at line 7779 of file TypeSystemClang.cpp.
References GetAsCXXRecordDecl().
Referenced by PDBASTParser::AddRecordBases(), and DWARFASTParserClang::CompleteRecordType().
|
static |
Definition at line 1751 of file TypeSystemClang.cpp.
Referenced by BuildIndirectFields().
|
overridevirtual |
Verify the integrity of the type to catch CompilerTypes that mix and match invalid TypeSystem/Opaque type pairs.
Implements lldb_private::TypeSystem.
Definition at line 2797 of file TypeSystemClang.cpp.
References GetQualType().
|
staticprivate |
Definition at line 107 of file TypeSystemClang.h.
|
private |
Definition at line 1073 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1056 of file TypeSystemClang.h.
Referenced by CreateASTContext(), CreateBlockPointerType(), Finalize(), getASTContext(), IsBlockPointerType(), and setSema().
|
private |
Definition at line 1066 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Maps CXXRecordDecl to their most recent added method/field's AccessSpecifier.
Definition at line 1091 of file TypeSystemClang.h.
Referenced by GetCXXRecordDeclAccess(), and SetCXXRecordDeclAccess().
|
private |
Maps Decls to their associated ClangASTMetadata.
Definition at line 1081 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().
|
private |
Definition at line 1061 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1060 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), and GetOrCreateClangModule().
|
private |
A string describing what this TypeSystemClang represents (e.g., AST for debug information, an expression, some other utility ClangAST).
Useful for logging and debugging.
Definition at line 1077 of file TypeSystemClang.h.
Referenced by getDisplayName(), and TypeSystemClang().
|
private |
Definition at line 1069 of file TypeSystemClang.h.
Referenced by GetDWARFParser(), and LayoutRecordType().
|
private |
Definition at line 1058 of file TypeSystemClang.h.
Referenced by CreateASTContext().
|
private |
Definition at line 1067 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1064 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
Definition at line 1057 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetLangOpts(), and GetOrCreateClangModule().
|
private |
Definition at line 1071 of file TypeSystemClang.h.
Referenced by getMangleContext().
|
private |
Definition at line 1068 of file TypeSystemClang.h.
Referenced by GetOrCreateClangModule().
|
private |
Definition at line 1070 of file TypeSystemClang.h.
Referenced by GetPDBParser(), and LayoutRecordType().
|
private |
Definition at line 1072 of file TypeSystemClang.h.
Referenced by GetPointerByteSize().
|
private |
Definition at line 1065 of file TypeSystemClang.h.
Referenced by CreateASTContext(), and Finalize().
|
private |
The sema associated that is currently used to build this ASTContext.
May be null if we are already done parsing this ASTContext or the ASTContext wasn't created by parsing source code.
Definition at line 1096 of file TypeSystemClang.h.
|
private |
Definition at line 1059 of file TypeSystemClang.h.
Referenced by CreateASTContext(), Finalize(), GetOrCreateClangModule(), and GetSourceMgr().
|
private |
Definition at line 1063 of file TypeSystemClang.h.
Referenced by Finalize(), GetOrCreateClangModule(), and getTargetInfo().
|
private |
Definition at line 1062 of file TypeSystemClang.h.
Referenced by Finalize(), and getTargetOptions().
|
private |
Definition at line 1055 of file TypeSystemClang.h.
Referenced by getTargetInfo(), getTargetOptions(), GetTargetTriple(), and SetTargetTriple().
|
private |
Maps Types to their associated ClangASTMetadata.
Definition at line 1085 of file TypeSystemClang.h.
Referenced by GetMetadata(), and SetMetadata().