clang 22.0.0git
Compiler.cpp File Reference
#include "Compiler.h"
#include "ByteCodeEmitter.h"
#include "Context.h"
#include "FixedPoint.h"
#include "Floating.h"
#include "Function.h"
#include "InterpShared.h"
#include "PrimType.h"
#include "Program.h"
#include "clang/AST/Attr.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< boolclang::interp::getBoolValue (const Expr *E)
static CharUnits AlignOfType (QualType T, const ASTContext &ASTCtx, UnaryExprOrTypeTrait Kind)
static const ExprstripCheckedDerivedToBaseCasts (const Expr *E)
static const ExprstripDerivedToBaseCasts (const Expr *E)
static bool hasTrivialDefaultCtorParent (const FieldDecl *FD)
static bool initNeedsOverridenLoc (const CXXCtorInitializer *Init)

Macro Definition Documentation

◆ EMIT_ARITH_OP

#define EMIT_ARITH_OP ( OP)
Value:
{ \
if (ElemT == PT_Float) { \
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().

Typedef Documentation

◆ APSInt

using APSInt = llvm::APSInt

Definition at line 23 of file Compiler.cpp.

Function Documentation

◆ AlignOfType()

◆ hasTrivialDefaultCtorParent()

bool hasTrivialDefaultCtorParent ( const FieldDecl * FD)
static

Definition at line 5497 of file Compiler.cpp.

References clang::FieldDecl::getParent(), and clang::TagDecl::isUnion().

◆ initNeedsOverridenLoc()

◆ stripCheckedDerivedToBaseCasts()

const Expr * stripCheckedDerivedToBaseCasts ( const Expr * E)
static

◆ stripDerivedToBaseCasts()

const Expr * stripDerivedToBaseCasts ( const Expr * E)
static