diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index 75e72d31c12..aa75c17b129 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -65,7 +65,10 @@ module Input implements InputSig { private import Make as Impl private module StepsInput implements Impl::Private::StepsInputSig { - DataFlowCall getACall(Public::SummarizedCallable sc) { result.getStaticCallTarget() = TSummarizedCallable(sc) } + DataFlowCall getACall(Public::SummarizedCallable sc) { + result.getStaticCallTarget().asSourceCallable() = sc or + result.getStaticCallTarget().asSummarizedCallable() = sc // TODO: this should be the only case + } } module SourceSinkInterpretationInput implements @@ -114,7 +117,8 @@ module SourceSinkInterpretationInput implements Node asNode() { this = TNode_(result) } /** Gets the call that this node corresponds to, if any. */ - DataFlowCall asCall() { this.asElement() = result.asCallInstruction().getUnconvertedResultExpression() + DataFlowCall asCall() { + this.asElement() = result.asCallInstruction().getUnconvertedResultExpression() // TODO: or summary call? } 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 75431103e74..0085255c225 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 @@ -951,7 +951,7 @@ class CastNode extends Node { cached newtype TDataFlowCallable = - TSourceCallable(Cpp::Declaration decl) { not decl instanceof FlowSummaryImpl::Public::SummarizedCallable } or + TSourceCallable(Cpp::Declaration decl) /*{ not decl instanceof FlowSummaryImpl::Public::SummarizedCallable }*/ or // TODO: figure this out TSummarizedCallable(FlowSummaryImpl::Public::SummarizedCallable c) /**