[LLVMdev] Iterator issue in BranchFolder::RemoveBlocksWithHash?

Dale Johannesen dalej at apple.com
Tue May 27 15:01:51 PDT 2008


On May 27, 2008, at 2:48 PM, Mike Stump wrote:

> On May 27, 2008, at 2:01 PM, Dale Johannesen wrote:
>> On May 27, 2008, at 1:40 PM, Mike Stump wrote:
>>>
>>> From n2461:
>>>
>>>> 8 The insert members shall not affect the validity of iterators and
>>>> references to the container, and the erase members shall invalidate
>>>> only iterators and references to the erased elements.
>>>
>>> Pretty clear.
>>
>>
>> In the current standard that language appears under "associative
>> containers", but this is a vector.
>
> Ah, and from vector:
>
> 23.2.5.4 vector modifiers [vector.modifiers]
>
> iterator erase(const_iterator position);
> iterator erase(const_iterator first, const_iterator last);
> 4 Effects: Invalidates iterators and references at or after the point
> of the erase.
>
> :-)  Sorry, didn't realize this was vector and the page this was on
> was marked container requirements and I didn't realize I was reading
> just the associative container requirements.
>
>> In any event, I'm not arguing that this ought to work, just that the
>> (current) standard is badly worded.
>
> I think it was a bug in the original language standard.  You can ask
> Howard, if you're curious.

Looks like it's being fixed, anyway.  Good.





More information about the llvm-dev mailing list