Debug mode for unordered_multiset. The exercise spotted a few places I had missed...
authorHoward Hinnant <hhinnant@apple.com>
Mon, 29 Jul 2013 19:05:47 +0000 (19:05 +0000)
committerHoward Hinnant <hhinnant@apple.com>
Mon, 29 Jul 2013 19:05:47 +0000 (19:05 +0000)
commite5c13decbe4c6109719cd6cdd68140576cb4671f
treefbae6e93a0fee2bbaf620d506bdaa6ea78bd3ca5
parent16e9dd4dd24a0d55a815937ebe66ead9ef3589d7
Debug mode for unordered_multiset.  The exercise spotted a few places I had missed on unordered_set, so I picked those up as well.

There are actually two debug modes:

   1.  -D_LIBCPP_DEBUG2 or -D_LIBCPP_DEBUG2=1
       This is a relatively expensive debug mode, but very thorough.  This is normally what you want to debug with, but may turn O(1) operations into O(N) operations.

   2.  -D_LIBCPP_DEBUG2=0
       This is "debug lite."  Only preconditions that can be checked with O(1) expense are checked.  For example range checking on an indexing operation.  But not iterator validity.

llvm-svn: 187369
26 files changed:
libcxx/include/__hash_table
libcxx/test/containers/unord/unord.multiset/bucket.pass.cpp
libcxx/test/containers/unord/unord.multiset/bucket_size.pass.cpp
libcxx/test/containers/unord/unord.multiset/db_iterators_1.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/db_iterators_7.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/db_iterators_8.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/db_local_iterators_1.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/emplace_hint.pass.cpp
libcxx/test/containers/unord/unord.multiset/erase_iter_db1.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/erase_iter_db2.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
libcxx/test/containers/unord/unord.multiset/insert_hint_rvalue.pass.cpp
libcxx/test/containers/unord/unord.multiset/max_load_factor.pass.cpp
libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp
libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
libcxx/test/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp [new file with mode: 0644]
libcxx/test/containers/unord/unord.set/bucket.pass.cpp
libcxx/test/containers/unord/unord.set/bucket_size.pass.cpp
libcxx/test/containers/unord/unord.set/max_load_factor.pass.cpp
libcxx/www/debug_mode.html