C++: Ensure 'isConditionalTemporaryDestructorCall' only holds when the reused expression is a temporary.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-04-09 09:32:54 +01:00
parent 17c8fa3e84
commit c325a79206

View File

@@ -287,7 +287,10 @@ private predicate isInConditionalEvaluation(Expr e) {
}
private predicate isConditionalTemporaryDestructorCall(DestructorCall dc) {
isInConditionalEvaluation(dc.getQualifier().(ReuseExpr).getReusedExpr())
exists(TemporaryObjectExpr temp |
temp = dc.getQualifier().(ReuseExpr).getReusedExpr() and
isInConditionalEvaluation(temp)
)
}
/**