clang: lib/AST/ByteCode/Compiler.cpp File Reference (original) (raw)
#include "[Compiler.h](lib%5F2AST%5F2ByteCode%5F2Compiler%5F8h%5Fsource.html)"#include "[ByteCodeEmitter.h](ByteCodeEmitter%5F8h%5Fsource.html)"#include "[Context.h](lib%5F2AST%5F2ByteCode%5F2Context%5F8h%5Fsource.html)"#include "[FixedPoint.h](FixedPoint%5F8h%5Fsource.html)"#include "[Floating.h](Floating%5F8h%5Fsource.html)"#include "[Function.h](Function%5F8h%5Fsource.html)"#include "[InterpShared.h](InterpShared%5F8h%5Fsource.html)"#include "[PrimType.h](PrimType%5F8h%5Fsource.html)"#include "[Program.h](Program%5F8h%5Fsource.html)"#include "[clang/AST/Attr.h](AST%5F2Attr%5F8h%5Fsource.html)"#include "llvm/Support/SaveAndRestore.h"
Go to the source code of this file.
| Classes | |
|---|---|
| class | clang::interp::DeclScope< Emitter > |
| Scope used to handle temporaries in toplevel variable declarations. More... | |
| class | clang::interp::OptionScope< Emitter > |
| Scope used to handle initialization methods. More... | |
| class | clang::interp::LoopScope< Emitter > |
| Sets the context for break/continue statements. More... | |
| class | clang::interp::SwitchScope< Emitter > |
| class | clang::interp::StmtExprScope< Emitter > |
| class | clang::interp::LocOverrideScope< Emitter > |
| When generating code for e.g. More... |
| Namespaces | |
|---|---|
| namespace | clang |
| The JSON file list parser is used to communicate input to InstallAPI. | |
| namespace | clang::interp |
| Macros | |
|---|---|
| #define | EMIT_ARITH_OP(OP) |
| Typedefs | |
|---|---|
| using | APSInt = llvm::APSInt |
| Functions | |
|---|---|
| static std::optional< bool > | clang::interp::getBoolValue (const Expr *E) |
| static CharUnits | AlignOfType (QualType T, const ASTContext &ASTCtx, UnaryExprOrTypeTrait Kind) |
| static const Expr * | stripCheckedDerivedToBaseCasts (const Expr *E) |
| static const Expr * | stripDerivedToBaseCasts (const Expr *E) |
| static bool | hasTrivialDefaultCtorParent (const FieldDecl *FD) |
| static bool | initNeedsOverridenLoc (const CXXCtorInitializer *Init) |
| static uint32_t | getBitWidth (const Expr *E) |
◆ EMIT_ARITH_OP
| #define EMIT_ARITH_OP | ( | OP | ) |
|---|
Value:
{ \
if (!this->emit##OP##f(getFPOptions(E), E)) \
return false; \
} else { \
if (!this->emit##OP(ElemT, E)) \
return false; \
} \
break; \
}
static void emit(Program &P, llvm::SmallVectorImpl< std::byte > &Code, const T &Val, bool &Success)
Helper to write bytecode and bail out if 32-bit offsets become invalid.
Referenced by clang::interp::Compiler< Emitter >::VisitVectorBinOp().
◆ APSInt
using APSInt = llvm::APSInt
◆ AlignOfType()
◆ getBitWidth()
| uint32_t getBitWidth ( const Expr * E) | static |
|---|
◆ hasTrivialDefaultCtorParent()
◆ initNeedsOverridenLoc()
◆ stripCheckedDerivedToBaseCasts()
| const Expr * stripCheckedDerivedToBaseCasts ( const Expr * E) | static |
|---|
◆ stripDerivedToBaseCasts()
| const Expr * stripDerivedToBaseCasts ( const Expr * E) | static |
|---|