Commit Graph

1497 Commits

Author SHA1 Message Date
Marshall Clow 5aa8fa250d Implement string_view from the library fundamentals TS (n4023). Also works in C++11 and 03, with reduced functionality (mostly in the area of constexpr)
llvm-svn: 210659
2014-06-11 16:44:55 +00:00
David Fang 7070be1160 fixes duplicate header installation
http://llvm.org/bugs/show_bug.cgi?id=18681
Patch by Ryuta Suzuki <oroppas gmail com>

llvm-svn: 210577
2014-06-10 20:26:54 +00:00
Marshall Clow d0817f526c Mark assign to be constepr only in c++14; can't have constexpr fns that return void in C++11
llvm-svn: 210562
2014-06-10 18:52:57 +00:00
Marshall Clow 9b0af34d96 Make the helper routines in string really be constexpr. This required a bit of refacoring in algorithm as well. Give them better names while we're at it. All of these are internal rotines; no visible functionality change.
llvm-svn: 210561
2014-06-10 18:51:55 +00:00
Marshall Clow 98763eb520 A bunch of the char.traits tests were using unicode literals. #ifdef those bits out on c++03, since it doesn't support u"" and U "" style strings.
llvm-svn: 210560
2014-06-10 18:46:59 +00:00
David Blaikie bfd92afe01 Update Arcanist config to point to reviews.llvm.org
llvm-svn: 210558
2014-06-10 18:29:36 +00:00
Marshall Clow cd68ae3f10 Fixed damaged row in issues table; thanks to STL for the catch
llvm-svn: 210500
2014-06-09 23:27:27 +00:00
Marshall Clow 57e06dfb41 Testing infastructure: A template for char_traits where all the functions are constexpr, and a comparison predicate which counts how many times it's been called.
llvm-svn: 210381
2014-06-06 22:33:40 +00:00
Marshall Clow c369914758 Since we now have a value for __cplusplus for c++14, teach libc++ about it
llvm-svn: 210380
2014-06-06 22:31:09 +00:00
Richard Smith ff0aff3caf Use __builtin_operator_new/__builtin_operator_delete when available. This
allows allocations and deallocations to be optimized out.

llvm-svn: 210211
2014-06-04 19:54:15 +00:00
David Majnemer 58a0a70fb2 Handle partial nanosleeps in this_thread::sleep_for
Signals may result in nanosleep returning with only some of the
requested sleeping performed.

Utilize nanosleep's "time-remaining" out parameter to continue sleeping
when this occurs.

llvm-svn: 210210
2014-06-04 19:43:20 +00:00
Nico Weber 7babe4f074 Make meta.trans.other/aligned_storage.pass.cpp pass on arm.
The maximum alignment on arm is 8, not 16 like on x86. Use alignof(max_align_t)
to make the test work in both cases.

llvm-svn: 210195
2014-06-04 16:25:58 +00:00
Nico Weber 1d1b46cdf7 Make locales (and transitively, std::endl) work reliably with gcc.
libc++ currently relies on undefined initialization order of global
initializers when using gcc:

1. __start_std_streams in iostream.cpp calls locale:🆔:_init, which assigns
   an id to each locale::facet in an initializer

2. Every facet has a static locale::id id, whose constructor sets the facet's
   id to 0

If 2 runs after 1, it clobbers the facet's assigned consecutive id, causing
exceptions to be thrown when e.g. running code like "cout << endl".

To fix this, let _LIBCPP_CONSTEXPR evaluate to "constexpr" instead of nothing
with gcc.  locale::id's constructor is marked _LIBCPP_CONSTEXPR, which ensures
that it won't get an initializer that could potentially run after the
iostream.cpp initializer. (This remains broken when building with msvc.)

Also switch constexpr-specific code in bitset to use __SIZEOF_SIZE_T__ instead
of __SIZE_WIDTH__, because gcc doesn't define the latter.

Pair-programmed/debugged with Dana Jansens.

llvm-svn: 210188
2014-06-04 15:46:56 +00:00
Marshall Clow 425f00817c Add a note about debug mode being non-functional
llvm-svn: 210162
2014-06-04 04:49:49 +00:00
David Majnemer 2dfdfdf45c [libc++] Don't return uninitialized data from random_device::operator()
Make sure we appropriately retry calls to read if the return result is
less than what we asked for.

Additionally, check and handle IO errors: EINTR results in the read
operation getting restarted; other errors turn into exceptions.

llvm-svn: 210061
2014-06-03 02:40:39 +00:00
David Majnemer 1e9592a9c7 [libc++] random_device fails if open returns zero
random_device::random_device(const string&) wrongly assumes that open
can only validly return a file descriptor greater than zero.

This results in random_device believing that it didn't successfully open
the device causing it to throw in it's constructor, this ends up leaking
a file descriptor.

The fix is simple, don't error on file descriptors which are zero.

llvm-svn: 210060
2014-06-03 02:21:37 +00:00
Marshall Clow f39d914d33 First cut at a post c++14 status page
llvm-svn: 210056
2014-06-02 23:37:13 +00:00
Nico Weber 0797874f33 Remove unused code in a libc++ test.
Other tests in this directory use this type, so it's probably copypasta from
there.

(test_buf only forwards to the superclass in all tests where it's used though,
so I wonder if it can be replaced with just using filebuf / wfilebuf
everywhere?)

llvm-svn: 210019
2014-06-02 12:00:08 +00:00
Marshall Clow 5f0701f270 Preparation for <string_view>. More helper functions that can be shared between <string> and <string_view>. No functionality change
llvm-svn: 210002
2014-06-02 02:22:49 +00:00
Justin Bogner ca14e2b132 Fix XFAIL condition from r208840
The XFAILs in r208840 were too general. They were meant to only apply
to testing when use_system_lib was set.

llvm-svn: 209972
2014-05-31 07:59:03 +00:00
Nico Weber 9e3548875a Add a _LIBCPP_CONSTEXPR that was missed in r170026.
(clang doesn't complain about this, but gcc does.  This is necessary for a
follow-up patch that will enable _LIBCPP_CONSTEXPR for gcc.)

llvm-svn: 209888
2014-05-30 12:09:47 +00:00
Nico Weber ded9de5981 fix typo
llvm-svn: 209819
2014-05-29 14:58:38 +00:00
David Majnemer 31234844ef Linux: Correctly identify valid error codes
[syserr.errcat.objects]p4 specifies that
system_category().default_error_condition(ev) map to
error_condition(posv, generic_category()) if ev could map to a POSIX
errno.

Linux reserves up to and including 4095 for errno values, use this as a
bound.

This fixes syserr.errcat.objects/system_category.pass.cpp on Linux.

llvm-svn: 209795
2014-05-29 05:02:22 +00:00
Marshall Clow 2de60eb213 Fix a problem exposed by r208825, which caused bind (and other bits of libc++) to stop working. And tests
llvm-svn: 209785
2014-05-29 01:10:28 +00:00
Marshall Clow af236d36fb Fix bug 19840, where some tests were not testing what we wanted. Thanks to Eric for the bug report
llvm-svn: 209520
2014-05-23 15:30:23 +00:00
Marshall Clow 9393b5113b Fix Bug 19678 - libc++ does not correctly handle the regex: '[^\0]*'
llvm-svn: 209307
2014-05-21 16:29:50 +00:00
Marshall Clow ef0e8c391e Fix bug 19740; round-tripping a pointer through a stream doesn't work
llvm-svn: 209305
2014-05-21 16:02:20 +00:00
Richard Smith 80fd10e6e1 [modules] Add initial module map for libc++.
llvm-svn: 209265
2014-05-21 00:33:49 +00:00
Nico Weber 218f71e148 Update cstddef after clang r207606.
r207606 changed the __need_foo macros to behave like they do with gcc: If they
are set, _only_ the __need_foo stuff gets defined.  As a consequence, cstddef
no longer defined "offsetof".  It looks like the __need_foo defines aren't
needed anymore, so just remove them.

Fixes PR19723.

llvm-svn: 208942
2014-05-16 01:45:02 +00:00
Alp Toker 281dfe85d3 Fix typo 'fourty' in tests
llvm-svn: 208870
2014-05-15 11:33:29 +00:00
Alp Toker f03763a44b Fix typos
llvm-svn: 208869
2014-05-15 11:27:39 +00:00
Justin Bogner e077269764 Work around ABI differences due to LWG 2056 in tests
When testing against the system library, there is a relatively minor
ABI breakage that the std::future_errc values have been changed to
avoid using zero. Update the tests that rely on the values being
consistent.

llvm-svn: 208840
2014-05-15 01:57:42 +00:00
Justin Bogner 1f393c3eaf Remove XFAIL from a number of tests that aren't expected to fail
These tests haven't been failing on darwin11 or 12 since r189610 when
pr17027 was fixed, but they've been keeping the libc++ bot red by
XPASSing since then.

llvm-svn: 208831
2014-05-15 00:55:44 +00:00
Marshall Clow 5c520bd985 Add Address Sanitizer support to std::vector
llvm-svn: 208319
2014-05-08 14:14:06 +00:00
Marshall Clow 0fc6e981b0 Fix PR 19663. Some calls to find(vector<bool>) were returning iterators that were subtly invalid (didn't compare equal). Thanks to Erik Verbruggen for the report (and diagnosis)
llvm-svn: 208096
2014-05-06 15:33:23 +00:00
Joerg Sonnenberger a1fbf3459f Exceptions store the message as reference counted string for
compatibility to libstdc++. Move the implementation into a header for
easier sharing with libc++abi. Merge a number of improvements from that
version. Provide a POD definition for <stdexcept>'s public use to avoid
cast dances. Discussed with Marshall Clow.

llvm-svn: 207695
2014-04-30 19:54:11 +00:00
Marshall Clow 85d3e7a729 Fix bug #18350. Add tests for tuples of all the smart pointers (except auto_ptr)
llvm-svn: 207307
2014-04-26 05:19:48 +00:00
Marshall Clow 190cc60a2d Added some tests for equal elements in min_element and max_element. Bug #19547 was invalid, but we weren't testing that case
llvm-svn: 207232
2014-04-25 15:50:54 +00:00
Marshall Clow 7546a111a9 Default the copy and move constructors for __tuple_leaf. This fixes bugs 18853 and 19118. Add a test case for that.
llvm-svn: 206829
2014-04-21 23:48:09 +00:00
Marshall Clow 3d3974b45b Use compiler intrinsic __is_constructible if available
llvm-svn: 206805
2014-04-21 22:30:32 +00:00
Marshall Clow 79a770ba45 Add more tests for std::ws as pointed out by bug #19497
llvm-svn: 206770
2014-04-21 18:12:09 +00:00
Marshall Clow 5f7c2db2ce Bug #19473. If you pass an allocator to std::function, we should use that allocator, not construct one from scratch. Add a test to make sure
llvm-svn: 206623
2014-04-18 17:23:36 +00:00
Marshall Clow b040647672 Fixed a test that was attempting to use rvalue-references w/o checking to see if they were supported in the language. This resulted in a warning when testing using C++03.
llvm-svn: 206482
2014-04-17 18:11:38 +00:00
Marshall Clow c303bba184 Remove some unnecessary noexcept conditions. Thanks to Richard Smith for the catch.
llvm-svn: 206424
2014-04-16 23:12:55 +00:00
Marshall Clow 91c71ddd8d Define a new macro in libc++ named '_LIBCPP_HAS_NO_ASAN'. When this is defined,
libc++ will not call address_sanitizer to detect addressing errors in the
standard library containers. This is a negative macro to enable users to
disable the libc++ checks even if they are compiling with address sanitizer
enabled by defining this macro.

At the present time, there is no code in libc++ that looks at this macro.
That will come soon. This is just infrastructure.

llvm-svn: 206184
2014-04-14 15:44:57 +00:00
Joerg Sonnenberger 71e07d7175 Not everyone uses bash, so fix test syntax.
llvm-svn: 206118
2014-04-12 21:12:55 +00:00
Marshall Clow ec959d5f46 Remove node from a container before destroying it. Thanks to Alexander Potapenko for pointing this out.
llvm-svn: 206024
2014-04-11 08:22:42 +00:00
Marshall Clow 886c6a645f Fix PR19819
llvm-svn: 205709
2014-04-07 13:32:26 +00:00
Marshall Clow 5cf03ab4b7 Removed 'sized deallocation' from C++14 status page since it turned out to require no library work, and fixed a typo in index.html. Thanks to Tobias for pointing these out.
llvm-svn: 205700
2014-04-07 07:28:33 +00:00
Tim Northover caccac10b7 RTTI Uniqueness: remove __name_for_load function.
It's identical to name() these days. (At one point it avoided masking
of the RTTI uniqueness bit because ARM64 ignored it architecturally,
but no longer).

llvm-svn: 205518
2014-04-03 09:12:38 +00:00
Marshall Clow 17c6aa0f53 Add a section about reporting bugs and contributing patches
llvm-svn: 205507
2014-04-03 03:13:12 +00:00
Marshall Clow 079402d1c1 Reword C++14 status to match C++11 status
llvm-svn: 205505
2014-04-03 02:38:12 +00:00
Marshall Clow ca6e366d07 Mark C++14 status as 'complete'
llvm-svn: 205504
2014-04-03 02:35:29 +00:00
Tim Northover 4b9a505a5e Use defined(__APPLE__) rather than __APPLE__
llvm-svn: 205150
2014-03-30 14:59:12 +00:00
Tim Northover 0090e657cb ARM64: compare RTTI names as strings
ARM64 generates RTTI with hidden visibility, which means that typeinfo
must be compared char-by-char since it's not guaranteed to be uniqued
across the whole program.

llvm-svn: 205139
2014-03-30 11:34:26 +00:00
Tim Northover c3a57e91ef ARM64: use the alternate string layout on Apple platforms.
llvm-svn: 205138
2014-03-30 11:34:22 +00:00
Stephan Tolksdorf e180ecab2c [libc++] Teach is_integral, is_[un]signed and make_[un]signed about __[u]int128_t
This commit also adds tests for std::numeric_limits<__[u]int128_t>.

Reviewed in http://llvm-reviews.chandlerc.com/D2917

llvm-svn: 204849
2014-03-26 19:45:52 +00:00
Marshall Clow 1641a7c1cb Implement LWG issue #2135. If something goes wrong in condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console.
llvm-svn: 204778
2014-03-26 02:45:04 +00:00
Marshall Clow 28c391f68e Add tests that should fail when lock() throws. THis is part of LWG issue #2135. No library changes here.
llvm-svn: 204777
2014-03-26 02:11:47 +00:00
Marshall Clow b43399842f Mark LWG issues #2075 and #2142 as complete. 2142 was a change to the standard
to remove redundant wording, which required no changes to libc++. 2075 was a 
rewrite of the requirements for forward progress, and again, requires no changes
to the library.

llvm-svn: 204724
2014-03-25 14:57:05 +00:00
Marshall Clow 4fdb070817 Add a test to make sure we're doing the right thing for throwing exceptions from deferred functions. This is LWG issue #2186. No change to the library needed.
llvm-svn: 204678
2014-03-24 22:25:24 +00:00
Marshall Clow e2db85a968 Mark LWG Issue #2288 as complete. This was wording cleanup, no code changes required.
Also mark #2104 as complete. Leave the implementation in libc++ as noexcept, since 
implementations are allowed to add noexcept to non-virtual calls. If we throw from
unique_lock& operator=(unique_lock&& u), then that means the preconditions were violated,
and calling terminate() (as a result of throwing from a noexcept function) is as
good example of undefined behavior as any other.

llvm-svn: 204653
2014-03-24 18:38:01 +00:00
David Majnemer 7ec93f9b1c Implement N3891: A proposal to rename shared_mutex to shared_timed_mutex
This is as straightforward as it sounds, a renamed from shared_mutex to
shared_timed_mutex.

Note that libcxx .dylib and .so files built with c++14 support need to
be rebuilt.

llvm-svn: 204078
2014-03-17 20:19:44 +00:00
David Majnemer 2fd6f512e5 Replace a tab with a space
llvm-svn: 204077
2014-03-17 20:13:54 +00:00
Marshall Clow 98de59157c Remove Issue #2235 from the Chicago section. The resolution was approved in Bristol (and it is listed there), and then is was approved *again* in Chicago. Thanks to STL @ microsoft for the catch
llvm-svn: 203995
2014-03-15 01:55:31 +00:00
Bob Wilson 996e992bf2 Exclude .svn (and other "dot" directories) when installing headers.
My fix for PR15820 in r180132 inadvertently removed the exclusion for ".*".
This puts it back again. Thanks for Nico Weber for pointing this out!

llvm-svn: 203807
2014-03-13 16:13:54 +00:00
Saleem Abdulrasool 407964238f build: remove unnecessary modification of CMAKE_REQUIRED_DEFINITIONS
This is unnecessary now that the flag handling has been fixed.  The flags will
be added properly in the main CMakeLists.txt after the config-ix inclusion which
performs the required check.

llvm-svn: 203639
2014-03-12 04:11:34 +00:00
Saleem Abdulrasool 03e6dbbc05 build: fix erroneous overwriting of flags
Always use list(APPEND) as it will perform the desired action even if the list
is empty or previously unset.  The first set is harmless, however, the
subsequent set was overwriting the previous flag setup resulting in an improper
compilation command being generated.  This manifested as a build failure on
Linux when using cmake + ninja.

llvm-svn: 203638
2014-03-12 04:11:31 +00:00
Saleem Abdulrasool 496b68bd5b build: fix add_definition abuse in CMake
add_definitions is meant for adding C preprocessor definitions.  Modern cmake
suggests use of the CMAKE_CXX_FLAGS for the purposes of pushing flags to the
compilation commands.  Simply switch to the modern form given that we are
already requiring a new enough cmake.

llvm-svn: 203637
2014-03-12 04:11:28 +00:00
Saleem Abdulrasool b328a046e0 build: remove an errant comma
llvm-svn: 203636
2014-03-12 04:11:25 +00:00
Marshall Clow b2d74f29f6 THIRD TIME. Richard pointed out (again) that I'd switched the order of the instance variables; and thus failed to repair the ABI break. After this, I'm going to sit down and watch TV for the evening.
llvm-svn: 203631
2014-03-12 01:19:36 +00:00
Marshall Clow 3b83496dd4 Fix ABI break I made in r203587; thanks to Richard Smith for the catch.
llvm-svn: 203610
2014-03-11 22:05:31 +00:00
Marshall Clow 201fe8cfe7 Fix misguided #elif - it checked the value of _AIX instead of defined(_AIX). Thanks to Johan Bergström for the bug report.
llvm-svn: 203589
2014-03-11 17:18:47 +00:00
Marshall Clow ef3d680093 Implement LWG 2360: 'reverse_iterator::operator*() is unimplementable'. Note that this is a (small) behavior change in the library. Reverse iterators whose base iterators' operator* return references to 'within themselves' have been sacrificed to the greater goal of avoiding data races.
llvm-svn: 203587
2014-03-11 17:16:17 +00:00
Marshall Clow b708306128 Patch from Steve MacKenzie to make the libc++ tests play nicely with MSVC's STL. Add '#include <functional>' to four of the priority queue tests.
llvm-svn: 203584
2014-03-11 16:22:53 +00:00
Marshall Clow ed94639ea1 Mark LWG #2314. 'apply() should return decltype(auto) and use decay_t before tuple_size' as complete. This is a correction to some example code in the standard, no change needed for libc++.
llvm-svn: 203579
2014-03-11 15:17:34 +00:00
Marshall Clow b33d838bcf Final bit for LWG #2263; test different allocator pointer types. Note that libc++ already does the right thing here; I've just added tests to ensure that it stays this way.
llvm-svn: 203539
2014-03-11 04:32:12 +00:00
Marshall Clow 17af2f56ab Add tests for LWG issue #2356. Stability of erasure in unordered associative containers. Libc++ already does this, but now we have tests for it.
llvm-svn: 203494
2014-03-10 21:36:36 +00:00
Marshall Clow 988a4e8d0e More tests for LWG Issue #2263; this time to the associative and unordered containers. Still no changes to libc++
llvm-svn: 203480
2014-03-10 19:18:49 +00:00
Marshall Clow 9f60718286 Added tests to the sequence containers for for LWG Issue #2263. Comparing iterators and allocator pointers with different const-character. No changes to libc++
llvm-svn: 203479
2014-03-10 18:54:56 +00:00
Marshall Clow 81fec9b270 Mark issues #2357 (wording changes in the standard, no functionality change) and #2132 (libc++ already does this) as complete.
llvm-svn: 203478
2014-03-10 17:59:59 +00:00
Marshall Clow 415a24e41f Fix bug I introduced (enabling implicit conversions from compare function to map) in r202994. Thanks to Sebastian Redl for the catch.
llvm-svn: 203443
2014-03-10 04:50:10 +00:00
Marshall Clow 5f16f4c087 Update status for LWG 2193 and 2344.
llvm-svn: 203291
2014-03-07 21:47:20 +00:00
Marshall Clow b162b17f05 Implement LWG #2344: quoted()'s interaction with padding is unclear. I think that anyone using quoted with padding is really confused, but it should work the way the rest of iostreams works.
llvm-svn: 203290
2014-03-07 21:45:32 +00:00
Marshall Clow 66b2226eb8 Fix a couple of -Wabsolute-value warnings in the libc++ tests
llvm-svn: 203126
2014-03-06 16:27:17 +00:00
Peter Collingbourne 8845dbd798 Do not derive __gnu_cxx::hash<T> from std::hash<T>.
Instead, define explicit specializations for the basic types listed in
the SGI documentation. This solves two problems:

 1) Helps avoid silent ODR violations caused by the absence of a
    user-supplied __gnu_cxx::hash specialization in cases where a std::hash
    specialization exists (e.g. for std::string).

 2) __gnu_cxx::hash semantics are slightly different to those of
    std::hash (for example, the former may dereference a pointer argument)
    so it is inappropriate for __gnu_cxx::hash to receive std::hash
    specializations by default.

Differential Revision: http://llvm-reviews.chandlerc.com/D2747

llvm-svn: 203070
2014-03-06 04:11:10 +00:00
Marshall Clow 78a87e8a68 Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it.
llvm-svn: 202994
2014-03-05 19:06:20 +00:00
Marshall Clow 28eded3845 Mark is_final as a C++14 feature.
llvm-svn: 202991
2014-03-05 17:58:48 +00:00
Marshall Clow f2c10e1340 Remove definition of std::fmaf from libc++. Fixes bug #18910. This function should come from the C standard library. As a drive-by fix, update the tests to remove a warning from -Wabsolute-value
llvm-svn: 202990
2014-03-05 17:09:51 +00:00
Marshall Clow 39bca1ea99 Implement LWG #2212: std::is_final. This requires compiler support, which modern versions of clang provide. Also mark LWG #2230 as complete - no code changes needed.
llvm-svn: 202934
2014-03-05 03:39:25 +00:00
Marshall Clow 4703f76376 Update synposis in <memory> to show move semantics for weak_ptr; add tests for already existing move semantics. Mark LWG issues #2315 (no changes needed), 2316 (move semantics for weak_ptr), 2252 (previous commit) and 2271 (previous commit) as complete.
llvm-svn: 202931
2014-03-05 03:12:04 +00:00
Marshall Clow 7f10fc480a LWG Issue #2271: regex_traits::lookup_classname specification unclear. libc++ already does the right thing; just update the tests.
llvm-svn: 202904
2014-03-04 22:44:34 +00:00
Marshall Clow d9e7cf3efd LWG issue #2252: Add more tests for exception safety. No changes needed in the library
llvm-svn: 202885
2014-03-04 20:31:21 +00:00
Marshall Clow 7493a29398 Fix issue number error; 2141 --> 2291 and mark it as complete
llvm-svn: 202884
2014-03-04 20:29:09 +00:00
Marshall Clow 5d658fbbdf Add a SG1 paper and some SG1 issues that affect the library to the task list.
llvm-svn: 202881
2014-03-04 19:40:36 +00:00
Marshall Clow 85a15f067e Apply David Majnemer's patch updating the links to the papers from Chicago and Issaquah.
llvm-svn: 202878
2014-03-04 19:22:53 +00:00
Marshall Clow 53ec054da4 Mark issues #2240 (wording only) and #2268 (revision 202876) as complete.
llvm-svn: 202877
2014-03-04 19:18:36 +00:00
Marshall Clow 53b88dad6f Implement LWG #2268: Setting a default argument in the declaration of a member function assign of std::basic_string.
llvm-svn: 202876
2014-03-04 19:17:19 +00:00
Peter Collingbourne 99aadbdb7d [libc++] Const qualify __gnu_cxx::hash_map<>::const_iterator::pointer type.
Differential Revision: http://llvm-reviews.chandlerc.com/D2811

llvm-svn: 202749
2014-03-03 19:50:01 +00:00
Marshall Clow f519be343b Implement LWG 2324: Insert iterator constructors should use addressof(). Add two new container classes to the test suite that overload operator &, and add test cases to the insert/front_insert/back_insert iterator tests that use these containers.
llvm-svn: 202741
2014-03-03 19:20:40 +00:00