clang 24.0.0git
clang::CodeGen::CodeGenFunction::LoadedLValueCapture Struct Reference

Records the l-value that ScalarExprEmitter loads from when it emits a specific expression. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenFunction.h"

Public Attributes

const Expr * E
 The expression whose l-value is recorded.
std::optional< LValue > LV
 The recorded l-value, set if E was loaded by ScalarExprEmitter.

Detailed Description

Records the l-value that ScalarExprEmitter loads from when it emits a specific expression.

EmitArraySubscriptExpr sets this while emitting the base of a 'counted_by' pointer subscript, so that the bounds check can locate the count from the pointer field's address without re-emitting (and so re-evaluating) the base. Capturing the l-value, instead of emitting the load separately, keeps everything else the scalar load path does (debug locations, 'align_value' assumptions, pseudo variables for -fdebug-info-for-profiling, etc.).

Definition at line 666 of file CodeGenFunction.h.

Member Data Documentation

◆ E

const Expr* clang::CodeGen::CodeGenFunction::LoadedLValueCapture::E

The expression whose l-value is recorded.

Definition at line 668 of file CodeGenFunction.h.

◆ LV

std::optional<LValue> clang::CodeGen::CodeGenFunction::LoadedLValueCapture::LV

The recorded l-value, set if E was loaded by ScalarExprEmitter.

Definition at line 670 of file CodeGenFunction.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr().


The documentation for this struct was generated from the following file: