|
LLDB mainline
|
#include <TypeSystemFortran.h>
Static Public Member Functions | |
| static bool | classof (const TypeSystem *ts) |
| static void | Initialize () |
| static void | Terminate () |
| static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module, Target *target) |
| static LanguageSet | GetSupportedLanguagesForTypes () |
| static LanguageSet | GetSupportedLanguagesForExpressions () |
| static llvm::StringRef | GetPluginNameStatic () |
| Static Public Member Functions inherited from lldb_private::TypeSystem | |
| static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Module *module) |
| static lldb::TypeSystemSP | CreateInstance (lldb::LanguageType language, Target *target) |
| static bool | SupportsLanguageStatic (lldb::LanguageType language) |
Private Member Functions | |
| TypeSystemFortran (const TypeSystemFortran &)=delete | |
| const TypeSystemFortran & | operator= (const TypeSystemFortran &)=delete |
Private Attributes | |
| llvm::FoldingSet< plugin::fortran::FortranType > | m_basic_types |
| llvm::SmallVector< std::unique_ptr< plugin::fortran::FortranType > > | m_types |
| std::unique_ptr< plugin::dwarf::DWARFASTParser > | m_dwarf_ast_parser_up |
Static Private Attributes | |
| static char | ID |
Additional Inherited Members | |
| Protected Attributes inherited from lldb_private::TypeSystem | |
| bool | m_has_forcefully_completed_types = false |
| Used for reporting statistics. | |
Definition at line 21 of file TypeSystemFortran.h.
|
default |
Referenced by operator=(), and TypeSystemFortran().
|
default |
|
privatedelete |
References TypeSystemFortran().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 157 of file TypeSystemFortran.h.
|
inlinestatic |
Definition at line 28 of file TypeSystemFortran.h.
References ID, lldb_private::TypeSystem::isA(), and lldb_private::TypeSystem::TypeSystem().
| CompilerType TypeSystemFortran::CreateBaseType | ( | llvm::dwarf::TypeKind | dwarf_encoding, |
| uint64_t | bitsize, | ||
| ConstString | name ) |
DWARFASTParserFortran provides the names it gets from DWARF, but in case it doesn't we fallback to the default name.
Definition at line 128 of file TypeSystemFortran.cpp.
References GetOrCreateFortranBaseType(), lldb_private::ConstString::IsEmpty(), lldb_private::plugin::fortran::FortranType::KIND_COMPLEX, lldb_private::plugin::fortran::FortranType::KIND_INTEGER, lldb_private::plugin::fortran::FortranType::KIND_LOGICAL, lldb_private::plugin::fortran::FortranType::KIND_REAL, lldb_private::plugin::fortran::FortranType::KIND_UNKNOWN, lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED, and lldb_private::ConstString::SetCString().
|
static |
Definition at line 49 of file TypeSystemFortran.cpp.
References lldb_private::Language::LanguageIsFortran().
Referenced by Initialize(), and Terminate().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 73 of file TypeSystemFortran.h.
References lldb::eLanguageTypeUnknown.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 56 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 60 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 64 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 68 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 48 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Dump a textual representation of the internal TypeSystem state to the given stream.
This should not modify the state of the TypeSystem if possible.
| [out] | output | Stream to dup the AST into. |
| [in] | filter | If empty, dump whole AST. If non-empty, will only dump decls whose names contain filter. |
| [in] | show_color | If true, prints the AST color-highlighted. |
Implements lldb_private::TypeSystem.
Definition at line 401 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Convenience LLVM-style dump method for use in the debugger only.
Implements lldb_private::TypeSystem.
Definition at line 367 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Dump the type to stdout.
Implements lldb_private::TypeSystem.
Definition at line 380 of file TypeSystemFortran.h.
References lldb::eDescriptionLevelFull.
|
inlineoverridevirtual |
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 388 of file TypeSystemFortran.h.
References lldb::eDescriptionLevelFull.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 371 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 224 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 207 of file TypeSystemFortran.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeDouble, lldb::eBasicTypeDoubleComplex, lldb::eBasicTypeFloat, lldb::eBasicTypeFloat128, lldb::eBasicTypeFloatComplex, lldb::eBasicTypeHalf, lldb::eBasicTypeInt, lldb::eBasicTypeInt128, lldb::eBasicTypeInvalid, lldb::eBasicTypeLongLong, lldb::eBasicTypeShort, lldb::eBasicTypeSignedChar, lldb::eBasicTypeUnsignedChar, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedInt128, lldb::eBasicTypeUnsignedLongLong, lldb::eBasicTypeUnsignedShort, lldb_private::plugin::fortran::FortranType::GetBitSize(), lldb_private::plugin::fortran::FortranType::GetKind(), lldb_private::plugin::fortran::FortranType::KIND_COMPLEX, lldb_private::plugin::fortran::FortranType::KIND_INTEGER, lldb_private::plugin::fortran::FortranType::KIND_LOGICAL, lldb_private::plugin::fortran::FortranType::KIND_REAL, and lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 276 of file TypeSystemFortran.cpp.
References lldb::eBasicTypeBool, lldb::eBasicTypeDouble, lldb::eBasicTypeDoubleComplex, lldb::eBasicTypeFloat, lldb::eBasicTypeFloatComplex, lldb::eBasicTypeInt, lldb::eBasicTypeUnsignedInt, GetOrCreateFortranBaseType(), lldb_private::plugin::fortran::FortranType::KIND_COMPLEX, lldb_private::plugin::fortran::FortranType::KIND_INTEGER, lldb_private::plugin::fortran::FortranType::KIND_LOGICAL, lldb_private::plugin::fortran::FortranType::KIND_REAL, and lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 199 of file TypeSystemFortran.cpp.
References GetBitSize().
Referenced by GetBitSize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 305 of file TypeSystemFortran.cpp.
References lldb::eEncodingIEEE754, lldb::eEncodingSint, lldb::eEncodingUint, GetOrCreateFortranBaseType(), lldb_private::plugin::fortran::FortranType::KIND_INTEGER, lldb_private::plugin::fortran::FortranType::KIND_REAL, and lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 192 of file TypeSystemFortran.cpp.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 339 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 168 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 332 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 319 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 199 of file TypeSystemFortran.h.
References GetTypeName().
|
overridevirtual |
Reimplemented from lldb_private::TypeSystem.
Definition at line 43 of file TypeSystemFortran.cpp.
References m_dwarf_ast_parser_up.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 281 of file TypeSystemFortran.h.
References lldb::eEncodingInvalid.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 232 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 303 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 273 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 285 of file TypeSystemFortran.h.
References lldb::eFormatDefault.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 460 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 113 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 238 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 242 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 248 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 358 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 351 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 257 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 210 of file TypeSystemFortran.h.
References lldb::eLanguageTypeFortran90.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 464 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 109 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 290 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 310 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 299 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 252 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 315 of file TypeSystemFortran.h.
| CompilerType TypeSystemFortran::GetOrCreateFortranBaseType | ( | int | kind, |
| uint64_t | bitsize, | ||
| ConstString | name ) |
Creates the type if it has not been created before, otherwise it gets it from the type map.
Definition at line 169 of file TypeSystemFortran.cpp.
References m_basic_types, m_types, and lldb_private::plugin::fortran::FortranType::Profile().
Referenced by CreateBaseType(), GetBasicTypeFromAST(), and GetBuiltinTypeForEncodingAndBitSize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 162 of file TypeSystemFortran.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 164 of file TypeSystemFortran.h.
Referenced by GetPluginName(), and Initialize().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 262 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 174 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 176 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 266 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 190 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 186 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 182 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 180 of file TypeSystemFortran.h.
|
static |
Definition at line 68 of file TypeSystemFortran.cpp.
References GetSupportedLanguagesForTypes().
Referenced by Initialize().
|
static |
Definition at line 57 of file TypeSystemFortran.cpp.
References lldb::eLanguageTypeFortran03, lldb::eLanguageTypeFortran08, lldb::eLanguageTypeFortran18, lldb::eLanguageTypeFortran77, lldb::eLanguageTypeFortran90, lldb::eLanguageTypeFortran95, and lldb_private::LanguageSet::Insert().
Referenced by GetSupportedLanguagesForExpressions(), and Initialize().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 420 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 187 of file TypeSystemFortran.cpp.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 450 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 50 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 204 of file TypeSystemFortran.h.
|
overridevirtual |
Returns the type name upper-cased to follow Fortran's general style.
Implements lldb_private::TypeSystem.
Definition at line 108 of file TypeSystemFortran.cpp.
References lldb_private::plugin::fortran::FortranType::GetKind(), lldb_private::plugin::fortran::FortranType::GetName(), lldb_private::plugin::fortran::FortranType::KIND_COMPLEX, lldb_private::plugin::fortran::FortranType::KIND_INTEGER, lldb_private::plugin::fortran::FortranType::KIND_LOGICAL, lldb_private::plugin::fortran::FortranType::KIND_REAL, lldb_private::plugin::fortran::FortranType::KIND_UNKNOWN, and lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED.
Referenced by GetDisplayTypeName().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 415 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 325 of file TypeSystemFortran.h.
|
static |
Definition at line 33 of file TypeSystemFortran.cpp.
References CreateInstance(), GetPluginNameStatic(), GetSupportedLanguagesForExpressions(), GetSupportedLanguagesForTypes(), and lldb_private::PluginManager::RegisterPlugin().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 27 of file TypeSystemFortran.h.
References ID.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 90 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 84 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 430 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 130 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 94 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 96 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 434 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 100 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 78 of file TypeSystemFortran.cpp.
References GetKind(), lldb_private::plugin::fortran::FortranType::KIND_COMPLEX, and lldb_private::plugin::fortran::FortranType::KIND_REAL.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 118 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 104 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 436 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 89 of file TypeSystemFortran.cpp.
References GetKind(), lldb_private::plugin::fortran::FortranType::KIND_INTEGER, and lldb_private::plugin::fortran::FortranType::KIND_UNSIGNED.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 126 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 122 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 410 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 148 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 441 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 142 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 468 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
This is used by Swift.
Implements lldb_private::TypeSystem.
Definition at line 405 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 153 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 138 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 445 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 454 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 155 of file TypeSystemFortran.h.
|
privatedelete |
References TypeSystemFortran().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 103 of file TypeSystemFortran.cpp.
References lldb_private::Language::LanguageIsFortran().
|
static |
Definition at line 39 of file TypeSystemFortran.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
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 73 of file TypeSystemFortran.cpp.
|
staticprivate |
Definition at line 23 of file TypeSystemFortran.h.
|
mutableprivate |
Definition at line 474 of file TypeSystemFortran.h.
Referenced by GetOrCreateFortranBaseType().
|
private |
Definition at line 479 of file TypeSystemFortran.h.
Referenced by GetDWARFParser().
|
mutableprivate |
Definition at line 478 of file TypeSystemFortran.h.
Referenced by GetOrCreateFortranBaseType().