CodeQL library for C/C++
codeql/cpp-all 0.12.10 (changelog, source)
Search

Module OperandTag

Defines the set of possible OperandTags, which are used to identify the role each Operand plays in the evaluation of its Instruction.

Import path

import semmle.code.cpp.ir.implementation.internal.OperandTag

Predicates

Classes

AddressOperandTag

The address operand of an instruction that loads or stores a value from memory (e.g. Load, Store, InitializeParameter, IndirectReadSideEffect).

ArgumentOperandTag

An operand representing an argument to a function call. This includes both positional arguments (represented by PositionalArgumentOperand) and the implicit this argument, if any (represented by ThisArgumentOperand).

AsmOperandTag
BufferSizeOperandTag

The buffer size operand of an instruction that represents a read or write of a buffer.

CallTargetOperandTag

The operand representing the target function of an Call instruction.

ChiOperandTag
ChiPartialOperandTag
ChiTotalOperandTag
ConditionOperandTag

The condition operand of a ConditionalBranch or Switch instruction.

LeftOperandTag

The left operand of a binary instruction (e.g. Add, CompareEQ).

LoadOperandTag

The source value operand of an instruction that loads a value from memory (e.g. Load, ReturnValue, ThrowValue).

MemoryOperandTag

An operand that consumes a memory result (e.g. the LoadOperand on a Load instruction).

OperandTag

Identifies the kind of operand on an instruction. Each Instruction has at most one operand of any single OperandTag. The set of OperandTags used by an Instruction is determined by the instruction’s opcode.

PositionalArgumentOperandTag

An operand representing an argument to a function call.

RegisterOperandTag

An operand that consumes a register (non-memory) result.

RightOperandTag

The right operand of a binary instruction (e.g. Add, CompareEQ).

SideEffectOperandTag

The operand representing the read side effect of a SideEffectInstruction.

StoreValueOperandTag

The source value operand of a Store instruction.

ThisArgumentOperandTag

An operand representing the implicit ‘this’ argument to a member function call.

TypedOperandTag

A memory operand whose type may be different from the result type of its definition instruction.

UnaryOperandTag

The sole operand of a unary instruction (e.g. Convert, Negate, Copy).