diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 31dba3a245b..5b7736de2da 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -35,6 +35,17 @@ private module Cached { not Ssa::ignoreOperand(op) and exists(Ssa::getIRRepresentationOfOperand(op)) } + cached + string toStringCached(Node n) { + result = toExprString(n) + or + not exists(toExprString(n)) and + result = n.toStringImpl() + } + + cached + Location getLocationCached(Node n) { result = n.getLocationImpl() } + cached newtype TContentApprox = TFieldApproxContent(string s) { fieldHasApproxName(_, s) } or