[PATCH] D55366: [libcxx] Add checks for unique value of array<T, 0>.begin() and array<T, 0>.end() .
    Andrey Maksimov via Phabricator 
    reviews at reviews.llvm.org
       
    Thu Dec  6 05:44:34 PST 2018
    
    
  
amakc11 created this revision.
Herald added a reviewer: EricWF.
Herald added subscribers: libcxx-commits, ldionne.
The standard section array.zero <http://eel.is/c++draft/array.zero#2.sentence-1> requires the return value of begin() and end() methods of a zero-sized array to be unique. Eric Fiselier <https://reviews.llvm.org/p/EricWF/> clarifies: "That unique value cannot be null, and must be properly aligned". This patch adds checks for the first part of this clarification: unique value returned by these methods cannot be null.
Repository:
  rCXX libc++
https://reviews.llvm.org/D55366
Files:
  test/std/containers/sequences/array/begin.pass.cpp
Index: test/std/containers/sequences/array/begin.pass.cpp
===================================================================
--- test/std/containers/sequences/array/begin.pass.cpp
+++ test/std/containers/sequences/array/begin.pass.cpp
@@ -40,6 +40,11 @@
       typedef NoDefault T;
       typedef std::array<T, 0> C;
       C c = {};
-      assert(c.begin() == c.end());
+      C::iterator ib, ie;
+      ib = c.begin();
+      ie = c.end();
+      assert(ib == ie);
+      assert(ib != nullptr);
+      assert(ie != nullptr);
     }
 }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55366.176959.patch
Type: text/x-patch
Size: 538 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20181206/1ab3d729/attachment.bin>
    
    
More information about the libcxx-commits
mailing list