Class LoopSplitting :: AnalyzableLoopStmt
A loop where the body is guaranteed to be executed at least once, and hence can be unrolled in the control flow graph, or where the body is guaranteed to never be executed, and hence can be removed from the control flow graph.
Import path
import semmle.code.csharp.controlflow.internal.Splitting
Direct supertypes
Indirect supertypes
Known direct subtypes
Predicates
isUnroll |
Holds if the body is guaranteed to be executed at least once. If not, the body is guaranteed to never be executed. |
pruneLoopCondition |
Holds if any step |
start |
Holds if the step |
stop |
Holds if the step |
Inherited predicates
controlsBlock |
Holds if basic block |
from ControlFlowElement |
fromLibrary |
Holds if this element is from an assembly. |
from Element |
fromSource |
Holds if this element is from source code. |
from Element |
getAChild |
Gets a child of this element, if any. |
from Element |
getAChildExpr |
Gets a child expression of this element, if any. |
from ExprOrStmtParent |
getAChildStmt |
Gets a child statement of this element, if any. |
from ExprOrStmtParent |
getAControlFlowEntryNode |
Gets a first control flow node executed within this element. |
from ControlFlowElement |
getAControlFlowExitNode |
Gets a potential last control flow node executed within this element. |
from ControlFlowElement |
getAControlFlowNode |
Gets a control flow node for this element. That is, a node in the control flow graph that corresponds to this element. |
from ControlFlowElement |
getALocation |
Gets a location of this element, including sources and assemblies. |
from Stmt |
getAPrimaryQlClass |
Gets the name of a primary CodeQL class to which this element belongs. |
from Element |
getAReachableElement |
Gets an element that is reachable from this element. |
from ControlFlowElement |
getAssembly |
Gets the assembly that this element was compiled into. |
from ControlFlowElement |
getBody |
Gets the body of this loop statement. |
from LoopStmt |
getChild |
Gets the |
from ExprOrStmtParent |
getChildExpr |
Gets the |
from ExprOrStmtParent |
getChildStmt |
Gets the |
from ExprOrStmtParent |
getCondition |
Gets the condition of this loop statement, if any. |
from LoopStmt |
getEnclosingCallable |
Gets the enclosing callable of this statement. |
from Stmt |
getFile |
Gets the file containing this element. |
from Element |
getIndex |
Gets the index of this element among its parent’s other children (zero-based). |
from Element |
getLanguage |
Gets the “language” of this program element, as defined by the extension of the filename. For example, C# has language “cs”, and Visual Basic has language “vb”. |
from Element |
getLocation |
Gets the location of this element. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one. |
from Element |
getNumberOfChildren |
Gets the number of children of this element. |
from Element |
getParent |
Gets the parent of this element, if any. |
from Element |
getPrimaryQlClasses |
Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. |
from Element |
isGlobal |
Holds if this statement is a global statement. |
from Stmt |
isLive |
Holds if this element is live, that is this element can be reached from the entry point of its enclosing callable. |
from ControlFlowElement |
reachableFrom |
Holds if the current element is reachable from |
from ControlFlowElement |
stripSingletonBlocks |
Gets the singleton statement contained in this statement, by removing enclosing block statements. |
from Stmt |
toString |
Gets a textual representation of this element. |
from Stmt |
toStringWithTypes |
Gets the full textual representation of this element, including type information. |
from Element |