9#ifndef LLDB_SOURCE_PLUGINS_TYPESYSTEM_CLIKE_LANGUAGEOPTS_H
10#define LLDB_SOURCE_PLUGINS_TYPESYSTEM_CLIKE_LANGUAGEOPTS_H
12#include "clang/Basic/TargetInfo.h"
14#include "llvm/Support/Error.h"
15#include "llvm/TargetParser/Triple.h"
52 static llvm::Expected<LanguageOpts>
Create(llvm::Triple triple);
58 const llvm::fltSemantics &
70 const llvm::fltSemantics *
half =
nullptr;
71 const llvm::fltSemantics *
single =
nullptr;
72 const llvm::fltSemantics *
double_ =
nullptr;
77 LanguageOpts(llvm::Triple triple, std::unique_ptr<clang::TargetInfo> target,
std::optional< uint64_t > GetBitIntByteSize(unsigned bits) const
The storage size (in bytes) of a _BitInt(bits) on this target.
const llvm::Triple & GetTriple() const
static llvm::Expected< LanguageOpts > Create(llvm::Triple triple)
The language options for triple, or an error if Clang cannot describe the triple.
const BuiltinSizes & GetBuiltinSizes() const
LanguageOpts(llvm::Triple triple, std::unique_ptr< clang::TargetInfo > target, BuiltinSizes sizes, FloatSemantics semantics)
std::unique_ptr< clang::TargetInfo > m_target
FloatSemantics m_semantics
BuiltinSizes m_builtin_sizes
const llvm::fltSemantics & GetFloatTypeSemantics(const size_t byte_size, const lldb::Format format) const
The floating point semantics for a float of the given storage size.
A class that represents a running process on the host machine.
static uint32_t bits(const uint32_t val, const uint32_t msbit, const uint32_t lsbit)
Format
Display format definitions.
Sizes (in bytes) of the target-dependent builtin types.
uint32_t long_double_size
The target's float formats.
const llvm::fltSemantics * single
const llvm::fltSemantics * float128
const llvm::fltSemantics * long_double
const llvm::fltSemantics * half
const llvm::fltSemantics * double_