Skip to content

Fix handling of temporaries in equivalent expression sets #832

Open
@kkjeer

Description

@kkjeer

The way that equality with temporary binding expressions is currently recorded can lead to false equality information. For example, in:

array_ptr<int> a;
a = _Dynamic_bounds_cast<array_ptr<const int>>(a + 1, count(1));

The second assignment will record equality between BoundsValue(TemporaryBinding(a + 1)) and a. Replacing a with its original value of a - 1 does not affect the BoundsValue expression, since the RecursiveASTVisitor class that does the replacement does not visit children of BoundsValue expressions.

Metadata

Metadata

Assignees

Labels

needs investigationpriority:2This labels bugs that require immediate attention.work itemThis labels issues that are not exactly bugs but are about improvements.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions