14#ifndef LLDB_SOURCE_PLUGINS_TYPESYSTEM_FORTRAN_FORTRANTYPES_H
15#define LLDB_SOURCE_PLUGINS_TYPESYSTEM_FORTRAN_FORTRANTYPES_H
22#include "llvm/ADT/ArrayRef.h"
23#include "llvm/ADT/FoldingSet.h"
24#include "llvm/ADT/SmallVector.h"
37 virtual bool isA(
const void *ClassID)
const {
return ClassID == &
ID; }
63 static void Profile(llvm::FoldingSetNodeID &
ID, int32_t kind,
66 ID.AddInteger(bitsize);
81 bool isA(
const void *ClassID)
const override {
97 void Profile(llvm::FoldingSetNodeID &
id)
const {
102 llvm::ArrayRef<CompilerType> param_types,
105 id.AddInteger(param_types.size());
111 id.AddPointer(param.GetOpaqueQualType());
Generic representation of a type in a programming language.
lldb::opaque_compiler_type_t GetOpaqueQualType() const
A uniqued constant string class.
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
static FortranFunction * GetFunctionType(void *type)
static bool classof(const FortranType *ft)
void Profile(llvm::FoldingSetNodeID &id) const
CompilerType m_return_type
ConstString m_func_signature
ConstString GetSignature() const
size_t GetNumParams() const
CompilerType GetReturnType() const
static void Profile(llvm::FoldingSetNodeID &id, ConstString func_name, llvm::ArrayRef< CompilerType > param_types, CompilerType return_type)
llvm::ArrayRef< CompilerType > GetParamTypes() const
FortranFunction(ConstString func_name, const llvm::SmallVectorImpl< CompilerType > ¶m_types, const llvm::SmallVectorImpl< llvm::StringRef > ¶m_names, CompilerType return_type)
bool isA(const void *ClassID) const override
llvm::SmallVector< CompilerType, 4 > m_param_types
void Profile(llvm::FoldingSetNodeID &ID) const
static void Profile(llvm::FoldingSetNodeID &ID, int32_t kind, uint64_t bitsize)
virtual bool isA(const void *ClassID) const
FortranType(int32_t kind, uint64_t bitsize, const ConstString &name)
ConstString GetName() const
static bool classof(const FortranType *ft)
uint64_t GetBitSize() const
A class that represents a running process on the host machine.