From 6ca6b8a0c8560555aed16b880f1499a5a0b4deda Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Wed, 10 Feb 2016 19:20:23 +0000 Subject: [PATCH 1/1] ReleaseNotes: Document changes to ilist API git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@260415 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index 2e41223f186..622fc7a69f9 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -79,6 +79,21 @@ Non-comprehensive list of changes in this release * Support for dematerializing has been dropped. +* ``ilist_iterator`` no longer has implicit conversions to and from ``T*``, + since ``ilist_iterator`` may be pointing at the sentinel (which is usually + not of type ``T`` at all). To convert from an iterator ``I`` to a pointer, + use ``&*I``; to convert from a pointer ``P`` to an iterator, use + ``P->getIterator()``. Alternatively, explicit conversions via + ``static_cast(U)`` are still available. + +* ``ilist_node::getNextNode()`` and ``ilist_node::getPrevNode()`` now + fail at compile time when the node cannot access its parent list. + Previously, when the sentinel was was an ``ilist_half_node``, this API + could return the sentinal instead of ``nullptr``. Frustrated callers should + be updated to use ``iplist::getNextNode(T*)`` instead. Alternatively, if + the node ``N`` is guaranteed not to be the last in the list, it is safe to + call ``&*++N->getIterator()`` directly. + .. NOTE For small 1-3 sentence descriptions, just add an entry at the end of this list. If your description won't fit comfortably in one bullet -- 2.34.1