Skip to content

llvm/lib/CodeGen/LiveRangeUtils.h:40: Iterators applied to wrong data structure ? #122937

@dcb314

Description

@dcb314

Static analyser cppcheck says:

llvm/lib/CodeGen/LiveRangeUtils.h:40:6: error: Same iterator is used with different containers 'LR' and 'LR.segments'. [iterators1]

Source code is

typename LiveRangeT::iterator J = LR.begin(), E = LR.end();
// ...
LR.segments.erase(J, E);

So J and E are iterators for LR, but get used on LR.segments.

I am surprised this compiles.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions