class CodeGenFunction::OpaqueValueMapping

Declaration

class CodeGenFunction::OpaqueValueMapping { /* full declaration omitted */ };

Description

An RAII object to set (and then clear) a mapping for an OpaqueValueExpr.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1330

Member Variables

private clang::CodeGen::CodeGenFunction& CGF
private clang::CodeGen::CodeGenFunction:: OpaqueValueMappingData Data

Method Overview

  • public OpaqueValueMapping(clang::CodeGen::CodeGenFunction & CGF, const clang::AbstractConditionalOperator * op)
  • public OpaqueValueMapping(clang::CodeGen::CodeGenFunction & CGF, const clang::OpaqueValueExpr * OV)
  • public OpaqueValueMapping(clang::CodeGen::CodeGenFunction & CGF, const clang::OpaqueValueExpr * opaqueValue, clang::CodeGen::LValue lvalue)
  • public OpaqueValueMapping(clang::CodeGen::CodeGenFunction & CGF, const clang::OpaqueValueExpr * opaqueValue, clang::CodeGen::RValue rvalue)
  • public void pop()
  • public static bool shouldBindAsLValue(const clang::Expr * expr)
  • public ~OpaqueValueMapping()

Methods

OpaqueValueMapping(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::AbstractConditionalOperator* op)

Description

Build the opaque value mapping for the given conditional operator if it's the GNU ?: extension. This is a common enough pattern that the convenience operator is really helpful.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1344

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::AbstractConditionalOperator* op

OpaqueValueMapping(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::OpaqueValueExpr* OV)

Description

Build the opaque value mapping for an OpaqueValueExpr whose source expression is set to the expression the OVE represents.

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1357

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::OpaqueValueExpr* OV

OpaqueValueMapping(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::OpaqueValueExpr* opaqueValue,
    clang::CodeGen::LValue lvalue)

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1366

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::OpaqueValueExpr* opaqueValue
clang::CodeGen::LValue lvalue

OpaqueValueMapping(
    clang::CodeGen::CodeGenFunction& CGF,
    const clang::OpaqueValueExpr* opaqueValue,
    clang::CodeGen::RValue rvalue)

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1372

Parameters

clang::CodeGen::CodeGenFunction& CGF
const clang::OpaqueValueExpr* opaqueValue
clang::CodeGen::RValue rvalue

void pop()

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1378

static bool shouldBindAsLValue(
    const clang::Expr* expr)

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1335

Parameters

const clang::Expr* expr

~OpaqueValueMapping()

Declared at: clang/lib/CodeGen/CodeGenFunction.h:1383