Class IR::EvalInstruction
An IR instruction representing the evaluation of an expression.
Import path
import semmle.go.controlflow.IRDirect supertypes
Indirect supertypes
Known direct subtypes
Fields
Predicates
| getBoolValue | Gets the Boolean value of the result of this instruction, if it can be determined. |
| getExactValue | Gets the string representation of the exact value of the result of this instruction, if any. |
| getExpr | Gets the expression underlying this instruction. |
| getFloatValue | Gets the float value of the result of this instruction, if it can be determined. |
| getIntValue | Gets the int value of the result of this instruction, if it can be determined. |
| getResultType | Gets the type of the result of this instruction, if any. |
| getStringValue | Gets the string value of the result of this instruction, if it can be determined. |
| hasComplexValue | Holds if the complex value of the result of this instruction has real part |
| isConst | Holds if the result of this instruction is known at compile time. |
| isPlatformIndependentConstant | Holds if the result of this instruction is known at compile time, and is guaranteed not to depend on the platform where it is evaluated. |
| reads | Holds if this instruction reads the value of variable or constant |
Inherited predicates
| asExpr | Gets the expression this control flow node uniquely represents, if any. | from NodeImpl |
| asStmt | Gets the statement this control flow node uniquely represents, if any. | from NodeImpl |
| dominates | Holds if this node dominates | from ControlFlowNode |
| dominatesNode | Holds if this node dominates | from Node |
| getANormalSuccessor | Gets a normal successor of this node, if any. This includes direct successors and conditional successors. | from ControlFlowNode |
| getAPredecessor | Gets an immediate predecessor of this node, if this is not an | from ControlFlowNode |
| getASuccessor | Gets an immediate successor of this node, if this is not an | from ControlFlowNode |
| getASuccessor | Gets an immediate successor of a given type, if any. | from ControlFlowNode |
| getAnExceptionSuccessor | Gets an exception successor of this node, if any. | from ControlFlowNode |
| getAstNode | Gets the AST node with which this control flow node is associated. Note that several control flow nodes are usually associated with the same AST node, but each control flow node is associated with a unique AST node. | from NodeImpl |
| getBasicBlock | Gets the basic block containing this control flow node. | from ControlFlowNode |
| getEnclosingCallable | Gets the enclosing callable of this control flow node. | from NodeImpl |
| getFile | Gets the file to which this node belongs. | from Node |
| getIdTag | INTERNAL: Do not use. | from NodeImpl |
| getInsnKind | Gets a textual representation of the kind of this instruction. | from Instruction |
| getLocation | Gets the source location for this node. | from NodeImpl |
| getNumericValue | Gets either | from Instruction |
| getRoot | Gets the innermost function to which this node belongs, or the file if it is not inside a function. | from Node |
| hasLocationInfo | DEPRECATED: Use | from Node |
| injects | Holds if this is the unique control flow node that represents the given AST node. | from NodeImpl |
| isAdditional | Holds if this is an additional control flow node with the given tag for the given AST node. | from NodeImpl |
| isAfter | Holds if this is a node representing the point in the control flow after the normal termination of | from NodeImpl |
| isAfterFalse | Holds if this node indicates that | from ControlFlowNode |
| isAfterTrue | Holds if this node indicates that | from ControlFlowNode |
| isAfterValue | Holds if this node indicates that | from ControlFlowNode |
| isBefore | Holds if this is the node representing the point in the control flow before the execution of | from NodeImpl |
| isBranch | Holds if this is a node with more than one successor. | from Node |
| isEntryNode | Holds if this node is the unique entry node of a file or function. | from Node |
| isExitNode | Holds if this node is the unique exit node of a file or function. | from Node |
| isFirstNodeOf | Holds if this is the first control-flow node in | from Node |
| isIn | Holds if this is the node representing the given AST node when | from NodeImpl |
| isJoin | Holds if this is a node with more than one predecessor. | from Node |
| postDominates | Holds if this node post-dominates | from ControlFlowNode |
| readsElement | Holds if this instruction reads the value of element | from Instruction |
| readsField | Holds if this instruction reads the value of field | from Instruction |
| readsMethod | Holds if this instruction looks up method | from Instruction |
| strictlyDominates | Holds if this node strictly dominates | from ControlFlowNode |
| strictlyPostDominates | Holds if this node strictly post-dominates | from ControlFlowNode |
| toString | Gets a textual representation of this node. | from NodeImpl |
| writes | Holds if this instruction updates variable or constant | from Instruction |
| writesElement | Holds if this instruction updates the value of element | from Instruction |
| writesField | Holds if this instruction updates the value of field | from Instruction |