[PATCH] RFC: fail-fast iterators for DenseMap

Sanjoy Das sanjoy at playingwithpointers.com
Mon Mar 2 20:12:54 PST 2015


> Comparing two default constructed iterators should be valid, but
> I don't understand how your patch affects that operation.  Am I
> missing something obvious?

In the current implementation, default constructed iterators have a
nullptr epoch address, so looking up their epoch segfaults.

In any case, the fix should be easy; I just wanted a clarification on
what the intended semantics are.

-- Sanjoy


>
> Regardless, I'd try building with ASan to shake out the problems...
>
>> On Mon, Mar 2, 2015 at 7:21 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
>>>
>>>
>>> On Tue, Mar 3, 2015 at 12:53 PM, Sanjoy Das <sanjoy at playingwithpointers.com>
>>> wrote:
>>>>
>>>> I'm about to revert this because it broke clang.
>>>>
>>>> The reason it broke clang is that clang assumes a default constructed
>>>> DenseMapIterator is comparable with another default constructed
>>>> DenseMapIterator.
>>>
>>>
>>>
>>> Where does this happen?
>>> I'd really like to see an actual example of how this makes sense to do
>>>
>>> i have no idea whether it's generally considered "normal" to do this, but
>>> i'm actually really curious to see a case where it is the right thing to do
>>> :)
>>>
>



More information about the llvm-commits mailing list