diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 81f91a0814c..c7f622f81d3 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -232,8 +232,8 @@ abstract class DefImpl extends TDefImpl { */ abstract predicate isCertain(); - /** Gets the value written to the destination variable by this definition. */ - abstract Node0Impl getValue(); + /** Gets the value written to the destination variable by this definition, if any. */ + Node0Impl getValue() { none() } /** Gets the operand that represents the address of this definition, if any. */ Operand getAddressOperand() { none() } @@ -324,8 +324,6 @@ abstract private class DefAddressImpl extends DefImpl, TDefAddressImpl { final override predicate isCertain() { any() } - final override Node0Impl getValue() { none() } - override Cpp::Location getLocation() { result = v.getLocation() } final override SourceVariable getSourceVariable() { @@ -653,8 +651,6 @@ class GlobalDefImpl extends DefImpl, TGlobalDefImpl { override int getIndirection() { result = indirectionIndex } - override Node0Impl getValue() { none() } - override predicate isCertain() { any() } /**