|
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::FoldingSet< plugin::fortran::FortranFunction > | m_functions |
| 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 22 of file TypeSystemFortran.h.
|
default |
Referenced by operator=(), and TypeSystemFortran().
|
default |
|
privatedelete |
References TypeSystemFortran().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 152 of file TypeSystemFortran.h.
|
inlinestatic |
Definition at line 29 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 162 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().
| CompilerType TypeSystemFortran::CreateFortranFunction | ( | ConstString | name, |
| const llvm::SmallVectorImpl< CompilerType > & | parameters, | ||
| const llvm::SmallVectorImpl< llvm::StringRef > & | parameter_names, | ||
| CompilerType | return_type ) |
Definition at line 220 of file TypeSystemFortran.cpp.
References m_functions, m_types, and lldb_private::plugin::fortran::FortranFunction::Profile().
|
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 74 of file TypeSystemFortran.h.
References lldb::eLanguageTypeUnknown.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 57 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 61 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 65 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 69 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 49 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 397 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Convenience LLVM-style dump method for use in the debugger only.
Implements lldb_private::TypeSystem.
Definition at line 363 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Dump the type to stdout.
Implements lldb_private::TypeSystem.
Definition at line 376 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 384 of file TypeSystemFortran.h.
References lldb::eDescriptionLevelFull.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 367 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 283 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 352 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 275 of file TypeSystemFortran.cpp.
References GetBitSize().
Referenced by GetBitSize().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 381 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 248 of file TypeSystemFortran.cpp.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 335 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 163 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 328 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 315 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 194 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 277 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 299 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 269 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 281 of file TypeSystemFortran.h.
References lldb::eFormatDefault.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 456 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 107 of file TypeSystemFortran.cpp.
References lldb_private::plugin::fortran::FortranFunction::GetFunctionType(), and lldb_private::plugin::fortran::FortranFunction::GetParamTypes().
Referenced by GetFunctionArgumentTypeAtIndex().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 254 of file TypeSystemFortran.cpp.
References lldb_private::plugin::fortran::FortranFunction::GetFunctionType(), and lldb_private::plugin::fortran::FortranFunction::GetNumParams().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 240 of file TypeSystemFortran.h.
References GetFunctionArgumentAtIndex().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 264 of file TypeSystemFortran.cpp.
References lldb_private::plugin::fortran::FortranFunction::GetFunctionType(), lldb_private::plugin::fortran::FortranFunction::GetReturnType(), and lldb_private::CompilerType::IsValid().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 354 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 347 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 253 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 205 of file TypeSystemFortran.h.
References lldb::eLanguageTypeFortran90.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 460 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 97 of file TypeSystemFortran.cpp.
References lldb_private::plugin::fortran::FortranFunction::GetFunctionType(), and lldb_private::plugin::fortran::FortranFunction::GetNumParams().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 286 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 306 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 295 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 311 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 203 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 157 of file TypeSystemFortran.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 159 of file TypeSystemFortran.h.
Referenced by GetPluginName(), and Initialize().
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 258 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 169 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 171 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 262 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 185 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 181 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 177 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 175 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 416 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 243 of file TypeSystemFortran.cpp.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 446 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 51 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 199 of file TypeSystemFortran.h.
|
overridevirtual |
Returns the type name upper-cased to follow Fortran's general style.
Implements lldb_private::TypeSystem.
Definition at line 140 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_FUNCTION, 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 411 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 321 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 28 of file TypeSystemFortran.h.
References ID.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 91 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 85 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 426 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 125 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 95 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 97 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 101 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 113 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 89 of file TypeSystemFortran.cpp.
References GetKind(), and lldb_private::plugin::fortran::FortranType::KIND_FUNCTION.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 432 of file TypeSystemFortran.h.
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 121 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 121 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 117 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 406 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 143 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 437 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 137 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 464 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
This is used by Swift.
Implements lldb_private::TypeSystem.
Definition at line 401 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 133 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 450 of file TypeSystemFortran.h.
|
inlineoverridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 150 of file TypeSystemFortran.h.
|
privatedelete |
References TypeSystemFortran().
|
overridevirtual |
Implements lldb_private::TypeSystem.
Definition at line 135 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 24 of file TypeSystemFortran.h.
|
mutableprivate |
Definition at line 470 of file TypeSystemFortran.h.
Referenced by GetOrCreateFortranBaseType().
|
private |
Definition at line 476 of file TypeSystemFortran.h.
Referenced by GetDWARFParser().
|
mutableprivate |
Definition at line 471 of file TypeSystemFortran.h.
Referenced by CreateFortranFunction().
|
mutableprivate |
Definition at line 475 of file TypeSystemFortran.h.
Referenced by CreateFortranFunction(), and GetOrCreateFortranBaseType().