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
Родитель 17c8fa3e84
Коммит c325a79206
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -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)
)
}
/**