Skip to content

Commit

Permalink
C++: Improve handling of re-used qualifier in delete expressions
Browse files Browse the repository at this point in the history
  • Loading branch information
jketema committed Apr 21, 2024
1 parent 45b1a5e commit 2c76b13
Showing 1 changed file with 2 additions and 11 deletions.
13 changes: 2 additions & 11 deletions cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import semmle.code.cpp.Element
private import semmle.code.cpp.Enclosing
private import semmle.code.cpp.internal.ResolveClass
private import semmle.code.cpp.internal.AddressConstantExpression
private import semmle.code.cpp.internal.ExtractorVersion

/**
* A C/C++ expression.
Expand Down Expand Up @@ -1371,17 +1372,7 @@ class ReuseExpr extends Expr, @reuseexpr {
/**
* Gets the expression that is being re-used.
*/
Expr getReusedExpr() {
// In the case of a prvalue, the extractor outputs the expression
// before conversion, but the converted expression is intended.
if this.isPRValueCategory()
then result = this.getBaseReusedExpr().getFullyConverted()
else result = this.getBaseReusedExpr()
}

private Expr getBaseReusedExpr() {
expr_reuse(underlyingElement(this), unresolveElement(result), _)
}
Expr getReusedExpr() { expr_reuse(underlyingElement(this), unresolveElement(result), _) }

override Type getType() { result = this.getReusedExpr().getType() }

Expand Down

0 comments on commit 2c76b13

Please sign in to comment.