[Bug libstdc++/70303] Value-initialized debug iterators

2021-02-07 Thread fdumont at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

François Dumont  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED
   Target Milestone|--- |11.0

--- Comment #7 from François Dumont  ---
Main issue fixed as part of PR 98466 and
33a1e511b57465d898429740377466894a0b247d fixed the last part for
deque::iterator - operator.

[Bug libstdc++/70303] Value-initialized debug iterators

2021-01-27 Thread fdumont at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

François Dumont  changed:

   What|Removed |Added

 CC||fdumont at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |fdumont at gcc dot 
gnu.org

--- Comment #6 from François Dumont  ---
After fixing the duplicate PR 98466 std::vector::iterator is ok but
std::deque::iterator seems to be broken still.

Taking it.

[Bug libstdc++/70303] Value-initialized debug iterators

2019-01-15 Thread Casey at Carter dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

--- Comment #5 from Casey Carter  ---
IIRC my reasoning was that [random.access.iterators] specifies the operational
semantics of `a < b` to be `b - a > 0`, which suggests but doesn't quite
require that `a < b` is valid whenever `b - a` is valid.

[Bug libstdc++/70303] Value-initialized debug iterators

2019-01-15 Thread Casey at Carter dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

Casey Carter  changed:

   What|Removed |Added

 CC||Casey at Carter dot net

--- Comment #4 from Casey Carter  ---
(In reply to Jonathan Wakely from comment #3)
> Or is the implication of equality being valid that a+n is valid for n==0,
> and therefore b-a is valid, and therefore relational ops are valid?

Certainly b-a is required to be valid, since such an n exists as required by
[random.access.iterators] - but admittedly the IS doesn't specify the domain
for relational comparisons on Cpp17 iterators. IMO this is a defect since it
implies you can *never* compare two iterators with e.g. <. 

We should require the domain of relational comparisons to be the same as the
domain of equality, which would then make it clear that value-initialized
iterators are in their domain. (I was under the impression that we *did*
require this "somewhere" when I filed this issue and fixed MSFTL's iterators.)

[Bug libstdc++/70303] Value-initialized debug iterators

2019-01-15 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

--- Comment #3 from Jonathan Wakely  ---
Or is the implication of equality being valid that a+n is valid for n==0, and
therefore b-a is valid, and therefore relational ops are valid?

[Bug libstdc++/70303] Value-initialized debug iterators

2019-01-15 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

--- Comment #2 from Jonathan Wakely  ---
My reading of the N3644 changes is that only equality comparisons are
supported, not relational ones.

[Bug libstdc++/70303] Value-initialized debug iterators

2016-03-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-03-19
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely  ---
Confirmed (fixing this would remove the "Partial" support noted at
https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 :-)