Howard Hinnant
bd0c160078
noexcept for <stack>. This completes noexcept for Chapter 23 [containers].
...
llvm-svn: 132652
2011-06-04 22:09:19 +00:00
Howard Hinnant
6971d82668
noexcept for <queue>.
...
llvm-svn: 132650
2011-06-04 21:32:33 +00:00
Howard Hinnant
557da866a3
noexcept for <unordered_set>.
...
llvm-svn: 132647
2011-06-04 20:18:37 +00:00
Howard Hinnant
3714107ed6
noexcept for <unordered_map>.
...
llvm-svn: 132646
2011-06-04 18:54:24 +00:00
Howard Hinnant
e691351098
Made more implementation details of [multi]map/set noexcept.
...
llvm-svn: 132642
2011-06-04 17:10:24 +00:00
Howard Hinnant
0e9f71c13f
noexcept for <set>. Plus a few fixes to noexcept for <map>.
...
llvm-svn: 132640
2011-06-04 15:22:34 +00:00
Howard Hinnant
1052ee39cb
noexcept for <map>.
...
llvm-svn: 132639
2011-06-04 14:31:57 +00:00
Howard Hinnant
3297ed7065
noexcept for <vector>. This also includes installing move_if_noexcept() into vector.
...
llvm-svn: 132577
2011-06-03 19:40:40 +00:00
Howard Hinnant
2d45a18c24
Bring noexcept for <string> inline with other containers.
...
llvm-svn: 132573
2011-06-03 18:40:47 +00:00
Howard Hinnant
4590010473
noexcept for <list>.
...
llvm-svn: 132562
2011-06-03 17:30:28 +00:00
Howard Hinnant
91a4750733
noexcept for <forward_list>.
...
llvm-svn: 132553
2011-06-03 16:20:53 +00:00
Howard Hinnant
801291139c
After sleeping on it I've decided that all special members that can be noexcept, should be declared so. The client has the traits to detect and branch on this information, and it is often an important optimization. Give deque() a noexcept. Add test for deque default constructor and deque destructor.
...
llvm-svn: 132549
2011-06-03 15:16:49 +00:00
Howard Hinnant
60954bbbbc
Add noexcept tests for deque.
...
llvm-svn: 132523
2011-06-03 01:46:22 +00:00
Howard Hinnant
b58f59cdb3
Second try at getting noexcept on move and swap for deque. I changed std::alloctor to propagate_on_container_move_assignment so as to make deque<T> move assignment noexcept. What we really need is a compile-time switch that says an allocator always compares equal.
...
llvm-svn: 132490
2011-06-02 21:38:57 +00:00
Howard Hinnant
9eebe11dd5
I've become quite disatsified with the lack of noexcept specifications on container move construction, move assignment operator and swap. Without proper decoration on at least move construction, vectors of containers will have unacceptable performance. Here's the fix for deque.
...
llvm-svn: 132480
2011-06-02 20:00:14 +00:00
Howard Hinnant
f9dc28313f
noexcept for forward_list.
...
llvm-svn: 132461
2011-06-02 16:44:28 +00:00
Howard Hinnant
a87e836083
noexcept for deque.
...
llvm-svn: 132459
2011-06-02 16:10:22 +00:00
Howard Hinnant
bc95cf0d5f
Experimental support for a meaningful __is_swappable<T>::value. This does not appear to be strictly needed for correct functioning of the library. If it causes any problems, I'd rather pull it sooner rather than later.
...
llvm-svn: 132421
2011-06-01 19:59:32 +00:00
Howard Hinnant
e88f577da1
Turning on cxx_nullptr exposed a latent bug in is_function, causing nullptr to wrongly classify as a function. Fixed.
...
llvm-svn: 132406
2011-06-01 17:25:11 +00:00
Howard Hinnant
542b2507de
I've seen this question enough times to know that it should be fixed: http://stackoverflow.com/questions/6193734/implicit-conversions-with-stdfunction
...
llvm-svn: 132363
2011-05-31 21:45:26 +00:00
Howard Hinnant
8f0cd597f1
noexcept for <array>.
...
llvm-svn: 132359
2011-05-31 21:06:33 +00:00
Howard Hinnant
e3c6708439
Upgrade <ratio> to use template aliases when available.
...
llvm-svn: 132342
2011-05-31 16:55:36 +00:00
Howard Hinnant
b5d866d4a3
noexcept for Chapter 22 [localization].
...
llvm-svn: 132337
2011-05-31 15:34:58 +00:00
Howard Hinnant
f5c91471a4
Add _ATTRIBUTE macro for gcc: Justin Hibbits
...
llvm-svn: 132334
2011-05-31 13:13:49 +00:00
Howard Hinnant
76c7cd0e15
noexcept for Chapter 21 [strings].
...
llvm-svn: 132296
2011-05-29 19:57:12 +00:00
Howard Hinnant
28d55e0745
http://llvm.org/bugs/show_bug.cgi?id=10045 . Please review, I have not tested this on linux.
...
llvm-svn: 132287
2011-05-29 13:57:49 +00:00
Howard Hinnant
af152c8431
minor documentation update
...
llvm-svn: 132286
2011-05-29 13:53:56 +00:00
Howard Hinnant
9e5c99f61f
noexcept for <typeindex>. This completes Chapter 20 [utilities].
...
llvm-svn: 132267
2011-05-28 18:57:24 +00:00
Howard Hinnant
cfd52789dc
noexcept for <scoped_allocator>.
...
llvm-svn: 132266
2011-05-28 18:51:12 +00:00
Howard Hinnant
d53d81522d
noexcept for <chrono>.
...
llvm-svn: 132265
2011-05-28 18:34:36 +00:00
Howard Hinnant
6a07d6f06d
noexcept for <functional>.
...
llvm-svn: 132264
2011-05-28 17:59:48 +00:00
Howard Hinnant
3739fe79e5
noexcept for <memory>. I've added a few extension noexcept to: allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default|
...
llvm-svn: 132261
2011-05-28 14:41:13 +00:00
Howard Hinnant
d368a84c91
noexcept for <bitset>.
...
llvm-svn: 132216
2011-05-27 20:52:28 +00:00
Howard Hinnant
27d0a2a75d
noexcept for <tuple>. And in the process learned that I had done it wrong for pair's swap. I needed to create an __is_nothrow_swappable<T>::value trait that was smart enought to answer false when __is_swappable<T>::value is false. Otherwise one gets compile-time errors when using pair or tuple of non-swappable types, even if you never try to swap the pair or tuple.
...
llvm-svn: 132204
2011-05-27 19:08:18 +00:00
Howard Hinnant
a676f7d36a
noexcept for <utility>. This included a little repair on pair, and some noexcept workarounds.
...
llvm-svn: 132186
2011-05-27 15:04:19 +00:00
Howard Hinnant
a62f28994c
Applied noexcept to everything in [diagnostics] (Chapter 19)
...
llvm-svn: 132137
2011-05-26 19:48:01 +00:00
Howard Hinnant
411d1bcc3b
Turn on cxx_alias_templates support
...
llvm-svn: 132134
2011-05-26 19:07:54 +00:00
Howard Hinnant
fafca58c58
Applied noexcept to everything in [language.support] (Chapter 18)
...
llvm-svn: 132129
2011-05-26 18:23:59 +00:00
Howard Hinnant
400b244339
Added [[noreturn]] attribute everywhere it should be
...
llvm-svn: 132125
2011-05-26 17:07:32 +00:00
Nick Kledzik
bc6191fba9
support another Apple build environment
...
llvm-svn: 131996
2011-05-24 20:27:31 +00:00
Nick Kledzik
664c0da5d8
on Darwin re-export C++0x type infos
...
llvm-svn: 131995
2011-05-24 20:26:04 +00:00
Howard Hinnant
cf76200bd3
http://llvm.org/bugs/show_bug.cgi?id=9399 fixed by Ryuta Suzuki
...
llvm-svn: 131961
2011-05-24 12:54:00 +00:00
Howard Hinnant
2fa07ae9a0
Fix const correctness bug in bind involving reference_wrapper found by Jonathan Sauer
...
llvm-svn: 131852
2011-05-22 15:07:43 +00:00
Howard Hinnant
5eb6bdfa1d
__invokable and __invoke_of now check for incomplete types and issue a compile-time diagnostic if they are used with incomplete types for anything except a return type. Note that both arguments *and* parameters are checked for completeness.
...
llvm-svn: 131818
2011-05-22 00:09:02 +00:00
Howard Hinnant
6282a4a1d3
This is a simplified (and superior) implementation of __invoke, __invokable and __invoke_of. It is superior in that __invoke now handles reference qualified member functions whereas the previous implementation did not. And it simply has less infrastructure in its implementation. I'm still learning how to program in C++11 (and probably will be for a long time). This change does not impact the behavior we're seeing in http://llvm.org/bugs/show_bug.cgi?id=9975
...
llvm-svn: 131761
2011-05-20 22:02:53 +00:00
Howard Hinnant
2344d6c195
Simplied bind using __invoke. In the process, found and fixed a couple of bugs. C++11 only.
...
llvm-svn: 131667
2011-05-19 19:41:47 +00:00
Howard Hinnant
ec0810e1c8
I had a giant misunderstanding of what 'synchronizes with' meant in [futures.async]/p5. This invalidated the current design of async in <future>. This is a new design, based on my new understanding, which has been confirmed on the lwg mailing list. The summary is that ~future() (and ~shared_future()) will block when they are created from within async, and the thread hasn't finished yet. As part of this work I created two new type traits: __invokable<F, Args...>::value and __invoke_of<F, Args...>::type. These are what result_of<F(Args...)> wanted to be when it grew up, but never will be. __invoke_of is carefully crafted so that it can serve as its own enable_if (type doesn't exist if the signature isn't invokable). All of this work is C++11 only.
...
llvm-svn: 131639
2011-05-19 15:05:04 +00:00
Howard Hinnant
c2bf9e1851
This commit was accidental. Reverting.
...
llvm-svn: 131514
2011-05-18 00:47:00 +00:00
Howard Hinnant
781afe1934
A bunch of future tests got invalidated with the latest updates to thread. Fixed the tests.
...
llvm-svn: 131509
2011-05-17 23:32:48 +00:00
Howard Hinnant
dcaa2e9294
Fix ambiguity in operator== of scoped_allocator_adaptor.
...
llvm-svn: 131485
2011-05-17 20:41:18 +00:00
Howard Hinnant
651fedb82c
Fixed bug in recently introduced bind move constructor
...
llvm-svn: 131484
2011-05-17 20:27:51 +00:00
Howard Hinnant
5fdeee5b3a
Fix and beef up test bug for move_if_noexcept
...
llvm-svn: 131483
2011-05-17 20:10:42 +00:00
Howard Hinnant
fe7e3eeddc
Clean up a bunch of warnings in the tests, 3 of which actually turned out to be test bugs.
...
llvm-svn: 131479
2011-05-17 19:12:55 +00:00
Howard Hinnant
872a91167e
Brought call_once variadic call up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
...
llvm-svn: 131414
2011-05-16 19:05:11 +00:00
Howard Hinnant
8df61ea84d
Brought thread variadic constructor up to current spec, which allows move-only functors and move-only arguments, but disallows functors with non-const lvalue reference parameters.
...
llvm-svn: 131413
2011-05-16 18:40:35 +00:00
Howard Hinnant
7735ccaf86
Supply missing std::qualifier to call.
...
llvm-svn: 131410
2011-05-16 16:20:59 +00:00
Howard Hinnant
23fdcd70c6
Spit 5th bullet __invoke into function pointers and everything else because result_of doesn't deal with function pointers.
...
llvm-svn: 131409
2011-05-16 16:20:21 +00:00
Howard Hinnant
07de7bcaa0
Supply missing move ctor in __bind_r, though this one will eventually be defaulted
...
llvm-svn: 131408
2011-05-16 16:19:01 +00:00
Howard Hinnant
15c34d48ba
Redesign of result_of to handle reference-qualified member functions
...
llvm-svn: 131407
2011-05-16 16:17:21 +00:00
Howard Hinnant
b12c37b302
Fix type-o found by Justin Hibbits
...
llvm-svn: 131348
2011-05-14 18:20:45 +00:00
Howard Hinnant
6db38ae05c
Fix type-o found by Justin Hibbits
...
llvm-svn: 131346
2011-05-14 17:24:22 +00:00
Howard Hinnant
af6c26b366
Warning suppression in test.
...
llvm-svn: 131344
2011-05-14 15:38:08 +00:00
Howard Hinnant
3962348edf
Warning suppression in test.
...
llvm-svn: 131343
2011-05-14 15:36:25 +00:00
Howard Hinnant
6c4c6a8047
Warning suppression in test.
...
llvm-svn: 131341
2011-05-14 14:53:12 +00:00
Howard Hinnant
c6b9ff1169
Correction to hexfloat hack.
...
llvm-svn: 131340
2011-05-14 14:33:56 +00:00
Howard Hinnant
e0d67710e9
Fix test bug.
...
llvm-svn: 131328
2011-05-14 00:07:53 +00:00
Howard Hinnant
fe7cffaf57
Suppress some warings in the tests.
...
llvm-svn: 131327
2011-05-14 00:04:05 +00:00
Howard Hinnant
a7fa0710cb
Suppress some warings in the tests.
...
llvm-svn: 131326
2011-05-13 23:59:50 +00:00
Howard Hinnant
fb7f07e3bd
http://llvm.org/bugs/show_bug.cgi?id=9854 . Also created an emulated hexfloat literal for use in some of the tests. <sigh> And cleaned up some harmless but irritating warnings in the tests.
...
llvm-svn: 131318
2011-05-13 21:52:40 +00:00
Howard Hinnant
3e71464d50
http://llvm.org/bugs/show_bug.cgi?id=9118
...
llvm-svn: 131296
2011-05-13 17:16:06 +00:00
Howard Hinnant
467fc38320
A much improved type_traits for C++0x. Not yet done: is_trivially_constructible, is_trivially_assignable and underlying_type.
...
llvm-svn: 131291
2011-05-13 14:08:16 +00:00
Howard Hinnant
5dbf45dfe0
CWG 1170 has been fixed for destructors
...
llvm-svn: 131290
2011-05-13 13:39:08 +00:00
Alexis Hunt
662d91f1cd
__is_trivially_copyable now supplied by clang
...
llvm-svn: 131271
2011-05-13 00:32:09 +00:00
Howard Hinnant
f208605bd4
Corrected misspelling
...
llvm-svn: 131265
2011-05-13 00:03:08 +00:00
Howard Hinnant
b24491b73e
Updated to reflect updated use of existing clang support
...
llvm-svn: 131264
2011-05-13 00:01:01 +00:00
Howard Hinnant
f738497500
Corrected some bugs in both memory and the tests. Preparing for being able to turn on support for alias templates.
...
llvm-svn: 131199
2011-05-11 20:21:19 +00:00
Howard Hinnant
08ad63b580
Redid nothrow traits in terms of non-nothrow traits when noexcept is available
...
llvm-svn: 131198
2011-05-11 20:19:40 +00:00
Howard Hinnant
0cfdb9517e
Updated type_traits and the type_traits design doc with recent work done in clang.
...
llvm-svn: 131090
2011-05-09 19:21:17 +00:00
Nick Kledzik
f9ad245c90
change RC_BUILDIT to RC_XBS for detecting Apple build environment
...
llvm-svn: 130970
2011-05-06 01:13:20 +00:00
Nick Kledzik
7db91cefb2
add support for setjmp/longjmp based exceptions
...
llvm-svn: 130938
2011-05-05 18:45:41 +00:00
Nick Kledzik
de214e29df
<rdar://problem/9014045> more support for Apple internal build environments
...
llvm-svn: 130872
2011-05-04 21:50:46 +00:00
Howard Hinnant
575d41ee92
Correction to set of overloaded pair constructors for C++0x
...
llvm-svn: 130521
2011-04-29 18:10:55 +00:00
Douglas Gregor
6c38001ec5
Qualify calls to std::next(), to avoid conflicts with
...
libraries/applications that define their own 'next' template.
llvm-svn: 130511
2011-04-29 16:20:26 +00:00
Howard Hinnant
9d06c8c326
http://llvm.org/bugs/show_bug.cgi?id=9765
...
llvm-svn: 129910
2011-04-21 14:29:59 +00:00
Howard Hinnant
866d73c7b4
Think-o in poisson_distribution at mean == 10
...
llvm-svn: 129520
2011-04-14 15:59:22 +00:00
Howard Hinnant
a23551cad4
Fix bug in Sseq constraints found by Seth Cantrell
...
llvm-svn: 129285
2011-04-11 18:22:12 +00:00
Howard Hinnant
40dab2ce86
http://llvm.org/bugs/show_bug.cgi?id=9672
...
llvm-svn: 129266
2011-04-11 02:18:41 +00:00
Howard Hinnant
784ba65787
Changes to cerrno to protect against the case the ELAST is not defined.
...
llvm-svn: 129255
2011-04-10 19:46:55 +00:00
Howard Hinnant
1444d85b5a
time_get was missing the %F specifier. This change impacts the binary.
...
llvm-svn: 129251
2011-04-10 17:54:14 +00:00
Howard Hinnant
a9c7c14ebb
Chris Jefferson found a missing const (Bugzilla 9632)
...
llvm-svn: 128885
2011-04-05 14:55:28 +00:00
Howard Hinnant
e4b11156d7
Corrected tests for http://llvm.org/bugs/show_bug.cgi?id=9351
...
llvm-svn: 128807
2011-04-04 01:42:30 +00:00
Howard Hinnant
e4bafbee25
... And these wonderful tests.
...
llvm-svn: 128797
2011-04-03 20:06:31 +00:00
Howard Hinnant
dbe14303da
Chris Jefferson submitted this patch to fix http://llvm.org/bugs/show_bug.cgi?id=9351
...
llvm-svn: 128796
2011-04-03 20:05:29 +00:00
Howard Hinnant
890477f333
Provide a more readable error message for <atomic> until it is implemented.
...
llvm-svn: 128636
2011-03-31 16:39:39 +00:00
Howard Hinnant
382600ff97
Jonathan Sauer found a bug in the way ^ was handled
...
llvm-svn: 128350
2011-03-26 20:02:27 +00:00
Howard Hinnant
8e2617780a
Jonathan Sauer updated is_base_of traits status
...
llvm-svn: 128349
2011-03-26 19:58:42 +00:00
Nick Kledzik
4f8ccdf2f8
<rdar://problem/9073695> std::uncaught_exception() becomes true before evaluating the throw-expression rather than after
...
llvm-svn: 127499
2011-03-11 22:33:07 +00:00
Howard Hinnant
8f934e42d8
http://llvm.org/bugs/show_bug.cgi?id=9444
...
llvm-svn: 127412
2011-03-10 17:27:57 +00:00
Howard Hinnant
8cad46266c
I have to revert this recent fix to tuple conversions until clang implements cwg 1170. Without this fix pair and tuple don't convert properly. With it, associative containers get access errors when they shouldn't. cwg 1170 fixes the latter.
...
llvm-svn: 127411
2011-03-10 17:27:30 +00:00
Howard Hinnant
709b108ae1
Corrected const-correctness on nullptr type_traits, and beefed up the test for nullptr_t.
...
llvm-svn: 127338
2011-03-09 17:17:06 +00:00
Howard Hinnant
d6c80dec76
Walter Brown brought to my attention that type_traits was failing to correctly classify nullptr_t
...
llvm-svn: 127334
2011-03-09 15:10:51 +00:00
Howard Hinnant
f1bf6f9a3a
Chris Jefferson found a defect in the C++0x working draft by trying to run libc++ against boost. I've submitted an issue to the LWG, and this commit attempts to implement the proposed resolution of that defect report. I'd point to the issue but it hasn't been put into the LWG list yet. The title of the issue will be: Stage 2 accumulate incompatibilty
...
llvm-svn: 127303
2011-03-09 01:03:19 +00:00
Howard Hinnant
3145a948d6
http://llvm.org/bugs/show_bug.cgi?id=9349 I introduced a bug with the last fix and Ryuta Suzuki has corrected it. And hopefully I committed Ryuta Suzuki's directions correctly this time.
...
llvm-svn: 126917
2011-03-03 01:59:23 +00:00
Howard Hinnant
01533ed9ad
http://llvm.org/bugs/show_bug.cgi?id=9349 I have not personally tested this patch. Please let me know if it causes problems.
...
llvm-svn: 126846
2011-03-02 17:29:46 +00:00
Howard Hinnant
b5d166ad93
Chris Jefferson found this bug to pair/tuple introduced by a recent change to the draft that I missed.
...
llvm-svn: 126743
2011-03-01 14:27:55 +00:00
Howard Hinnant
99847d2bf1
Fix copy_n to increment only n-1 times for an input iterator. This works much better with std::istream_iterator<int>(std::cin). Credit: Matan Nassau.
...
llvm-svn: 126581
2011-02-27 20:55:39 +00:00
Howard Hinnant
73736effce
Fixed two problems found by Chris Jefferson: Made operator>> for char consistent with gcc. Opened an LWG issue on this one. 2) Renamed some private typedefs which are causing boost grief.
...
llvm-svn: 126576
2011-02-27 18:02:02 +00:00
Howard Hinnant
a8d8ca4d6f
http://llvm.org/bugs/show_bug.cgi?id=9326
...
llvm-svn: 126504
2011-02-25 19:52:41 +00:00
Howard Hinnant
0c68ed006d
Chris Jefferson spotted a problem with messages_base::catalog while getting libc++ to work on boost. The standard says this type must be an int. But this type is the key returned by the OS facility catopen. On OS X the type returned by catopen is void*, which doesn't fit into an int on 64 bit platforms. Chris suggested using ptrdiff_t instead of void*. It still isn't compliant with the standard, but chances are that this change will fix what is ailing boost. Chris also supplied the algorithm for distinguishing high-order pointers from error conditions. Thanks Chris.
...
llvm-svn: 126462
2011-02-25 00:51:08 +00:00
Howard Hinnant
80a3cadab7
Jean-Daniel Dupas fixes install directions
...
llvm-svn: 126222
2011-02-22 14:18:34 +00:00
Howard Hinnant
1a36219c86
Change install name to libc++.1.dylib
...
llvm-svn: 125626
2011-02-16 00:40:06 +00:00
Howard Hinnant
a0fe8c436e
Chris Jefferson noted many places where function calls needed to be qualified (thanks Chris).
...
llvm-svn: 125510
2011-02-14 19:12:38 +00:00
Howard Hinnant
bd356a8011
Update testit to default to clang
...
llvm-svn: 125498
2011-02-14 18:06:10 +00:00
Howard Hinnant
f190990546
fix stupid type-o
...
llvm-svn: 125311
2011-02-10 21:34:42 +00:00
Howard Hinnant
05033424f9
Installed __has_feature(is_convertible_to) and __has_feature(is_base_of)
...
llvm-svn: 125290
2011-02-10 17:46:03 +00:00
Howard Hinnant
da3b02fdb3
Missing traits::to_int_type in fstream
...
llvm-svn: 124727
2011-02-02 17:37:16 +00:00
Howard Hinnant
72c5e14203
Qualify calls to addressof with std::. Bug 9106
...
llvm-svn: 124726
2011-02-02 17:36:20 +00:00
Howard Hinnant
2774545736
Bug 9096 - list::iterator not default constructible
...
llvm-svn: 124508
2011-01-28 23:46:28 +00:00
Howard Hinnant
d44be13fa8
minor corrections to test, and hook is_base_of up to clang intrinsic
...
llvm-svn: 124502
2011-01-28 20:00:37 +00:00
Douglas Gregor
59f5dc60d2
Eliminate extraneous {};
...
llvm-svn: 124456
2011-01-27 23:36:08 +00:00
Howard Hinnant
e4de279009
Updated getting started directions.
...
llvm-svn: 124452
2011-01-27 23:18:19 +00:00
Howard Hinnant
8d3b8265a6
updated buildit to work with recent clang updates
...
llvm-svn: 124432
2011-01-27 21:01:51 +00:00
Howard Hinnant
80b2905b83
clang found a missing return statement.
...
llvm-svn: 124431
2011-01-27 21:01:11 +00:00
Howard Hinnant
eb92df7e9e
Make forward_list splice_after and merge work for lvalue lists
...
llvm-svn: 124430
2011-01-27 21:00:35 +00:00
Howard Hinnant
7015add232
Reverted previous fix to is_convertible as it caused more problems than it fixed. But this reverted fix will only matter for non-clang compilers. Installed __is_convertible_to for clang.
...
llvm-svn: 124429
2011-01-27 21:00:00 +00:00
Douglas Gregor
71711a673b
Inline namespaces are always available in Clang. Rely on that without
...
testing via __has_feature, since __has_feature for C++0x features no
longer evaluates true in C++98/03 mode.
Also, eliminate the redundant using directive. Inline namespaces make
their members visible in the enclosing namespace automatically.
llvm-svn: 124293
2011-01-26 15:39:56 +00:00
Douglas Gregor
d18302f1bb
Teach move_iterator that rvalue references cannot bind to non-function
...
lvalues, nor can one take the address of an xvalue, by adding
appropriate static_cast's (in the first case) and a temporary (in the
second case).
llvm-svn: 124255
2011-01-26 00:12:48 +00:00
Howard Hinnant
ad16003517
Add always_inline to string move constructors
...
llvm-svn: 124252
2011-01-26 00:06:59 +00:00
Douglas Gregor
175a104028
Remove an (incorrect) compiler workaround in the __mu function. The
...
workaround relied on rvalue references binding to non-function
lvalues, while the original formulation (with std::forward) does the
right thing.
llvm-svn: 124241
2011-01-25 23:11:15 +00:00
Howard Hinnant
389eb9b54a
placeholder test
...
llvm-svn: 124193
2011-01-25 16:32:04 +00:00
Howard Hinnant
2a3f1bc13f
tweak for readability (no functionality change)
...
llvm-svn: 124192
2011-01-25 16:31:30 +00:00
Douglas Gregor
912e161ce0
An rvalue reference cannot bind to an lvalue, so static_cast the
...
result of the __tuple_leaf::get() call to an rvalue reference when
returning from tuple's get().
llvm-svn: 124190
2011-01-25 16:14:21 +00:00
Douglas Gregor
a7b2241407
Eliminate the C++0x-only is_convertible testing function that accepts
...
a cv-qualifier rvalue reference to the type, e.g.,
template <class _Tp> char __test(const volatile typename remove_reference<_Tp>::type&&);
The use of this function signature rather than the more
straightforward one used in C++98/03 mode, e.g.,
template <class _Tp> char __test(_Tp);
is broken in two ways:
1) An rvalue reference cannot bind to lvalues, so is_convertible<X&,
X&>::value would be false. This breaks two of the unique_ptr tests
on Clang and GCC >= 4.5. Prior GCC's seem to have allowed rvalue
references to bind to lvalues, allowing this bug to slip in.
2) By adding cv-qualifiers to the type we're converting to, we get
some incorrect "true" results for, e.g., is_convertible<const X&, X&>::value.
llvm-svn: 124166
2011-01-25 01:15:41 +00:00
Howard Hinnant
465abe92a5
Chandler Carruth changed >> to > > in several places.
...
llvm-svn: 124120
2011-01-24 16:07:25 +00:00
Chandler Carruth
ce395a9acd
Teach the Lit configuration to actually use the cxx0x setting when
...
constructing compile flags, and to link against the 'rt' library on
Linux for clock_gettime and friends.
llvm-svn: 124052
2011-01-23 01:05:20 +00:00
Howard Hinnant
2503626838
Add attribute to inlined member.
...
llvm-svn: 123392
2011-01-13 20:05:05 +00:00
Howard Hinnant
59a7dc95de
Fixing an ambiguity in variadics found by clang.
...
llvm-svn: 123337
2011-01-12 22:56:59 +00:00
Howard Hinnant
119cd0ba12
fix guard
...
llvm-svn: 123269
2011-01-11 20:02:45 +00:00
Howard Hinnant
b5b2a1e19a
Two minor fixes: 1. Put integral_constant conversion to integral in even without constexpr support. 2. Add ios_base to <iosfwd>. The latter is being tracked by LWG 2026.
...
llvm-svn: 123080
2011-01-08 20:00:48 +00:00
Howard Hinnant
36fd9f96cf
Reverting an old optimization that conflicts with the new allocator model, and causes some test casees to compile that shouldn't.
...
llvm-svn: 122830
2011-01-04 19:53:31 +00:00
Howard Hinnant
ab061a656d
Marshall Clow's fix for Bug 8421.
...
llvm-svn: 122825
2011-01-04 19:21:05 +00:00
Howard Hinnant
c950e77d1d
Effort to reduce the number of exported symbols
...
llvm-svn: 122057
2010-12-17 14:46:43 +00:00
Howard Hinnant
ba31cbdbca
Reduced copying cost of tuple_cat from quadratic to linear.
...
llvm-svn: 121655
2010-12-12 23:04:37 +00:00
Howard Hinnant
7f64810bc8
LWG 1385 [FCD] tuple_cat should be a single variadic signature ( http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#1385 ). This issue is only in Ready status, meaning it is not official, but probably will be this March in Madrid. It was tentatively accepted in Batavia with the previso that Bill and I didn't have any problems implementing it. This is my part of that agreement.
...
llvm-svn: 121619
2010-12-11 20:47:50 +00:00
Howard Hinnant
d4a83d078c
The implementation of the new definition of result_of (N3123) resulted in some test failures in [func.memfn] that I failed to previously notice. This corrects that mistake.
...
llvm-svn: 121600
2010-12-11 00:05:19 +00:00
Michael J. Spencer
f5799be4a8
Add CMake build and fix major Linux blockers.
...
llvm-svn: 121510
2010-12-10 19:47:54 +00:00
Howard Hinnant
7f8e26867f
Test adjustment for recent changes in allocator_traits
...
llvm-svn: 121503
2010-12-10 19:22:37 +00:00
Howard Hinnant
088bd9aa14
This got accidentally removed
...
llvm-svn: 121502
2010-12-10 19:22:00 +00:00
Howard Hinnant
966b5a3157
N3158 Missing preconditions for default-constructed match_result objects
...
llvm-svn: 121282
2010-12-08 21:07:55 +00:00
Howard Hinnant
3135def61d
cleaning up...
...
llvm-svn: 121275
2010-12-08 20:09:09 +00:00
Howard Hinnant
b5452b3db5
After a long break to wait for the atomic spec to settle, this completes the library part of <atomic>. It currently won't even parse as it depends on the existence of the intrinsics specified at http://libcxx.llvm.org/atomic_design_a.html . Everything has been tested using fake intrinsics which have now been removed. As the intrinsics come online, the ATOMIC_* macros will need to be adjusted to reflect which operations are lock-free. These macros will probably need to be #ifdef'd for each supported platform.
...
llvm-svn: 121267
2010-12-08 17:20:28 +00:00
Michael J. Spencer
5f53fceff0
test: Rename string_op+= to string_op_plus_equal. Windows git doesn't like it.
...
llvm-svn: 121265
2010-12-08 17:06:47 +00:00
Howard Hinnant
c5f5f0a166
atomics ...
...
llvm-svn: 121204
2010-12-07 23:24:41 +00:00
Howard Hinnant
0e1cd17d0a
atomics ...
...
llvm-svn: 121202
2010-12-07 23:20:28 +00:00
Howard Hinnant
c772a62096
Work on <atomic> continues. The file size is actually sane now...
...
llvm-svn: 121181
2010-12-07 20:46:14 +00:00
Howard Hinnant
9847abacb1
Getting <atomic> warmed back up. We have a hopefully more stable spec now. And I believe the intrinsic spec at http://libcxx.llvm.org/atomic_design_a.html is still good.
...
llvm-svn: 121064
2010-12-06 23:10:08 +00:00
Howard Hinnant
fd18df5b2e
Add a couple more std-qualifers.
...
llvm-svn: 121002
2010-12-06 15:11:48 +00:00
Howard Hinnant
75357bcd39
oops, forgot std::
...
llvm-svn: 120915
2010-12-04 19:56:43 +00:00
Howard Hinnant
816cb8975d
Fix up uses of new/terminate/unexpected handlers to use the new getters.
...
llvm-svn: 120914
2010-12-04 19:54:11 +00:00
Howard Hinnant
4dcf83cbd5
Add typeinfo for char16_t, char32_t and nullptr.
...
llvm-svn: 120810
2010-12-03 17:25:24 +00:00
Howard Hinnant
1596c4531b
N3189 Observers for the three handler functions
...
llvm-svn: 120712
2010-12-02 16:45:21 +00:00
Howard Hinnant
92e3718b13
Implemented N3194
...
llvm-svn: 120458
2010-11-30 20:23:32 +00:00
Howard Hinnant
6fd5c65095
Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK
...
llvm-svn: 120258
2010-11-28 19:41:07 +00:00
Howard Hinnant
0c6a0fe7fb
Add template alias emulation to <ratio>
...
llvm-svn: 120098
2010-11-24 17:05:06 +00:00
Howard Hinnant
e78881314a
Update testsuite strucuture to latest draft
...
llvm-svn: 120064
2010-11-23 22:13:07 +00:00
Howard Hinnant
b32f147bbf
Update testsuite strucuture to latest draft
...
llvm-svn: 120058
2010-11-23 20:55:56 +00:00
Howard Hinnant
fedfe3b69c
Update testsuite strucuture to latest draft
...
llvm-svn: 120057
2010-11-23 20:55:36 +00:00
Howard Hinnant
ab7be6e43c
Update testsuite strucuture to latest draft
...
llvm-svn: 120054
2010-11-23 20:47:09 +00:00
Howard Hinnant
4030e72457
Update testsuite strucuture to latest draft
...
llvm-svn: 120045
2010-11-23 20:26:48 +00:00
Howard Hinnant
46cc61ea7c
Update testsuite strucuture to latest draft
...
llvm-svn: 120043
2010-11-23 20:25:10 +00:00
Howard Hinnant
e8ce332127
Update testsuite strucuture to latest draft
...
llvm-svn: 120040
2010-11-23 20:21:36 +00:00
Howard Hinnant
274541968b
Update testsuite strucuture to latest draft
...
llvm-svn: 120036
2010-11-23 19:52:19 +00:00
Howard Hinnant
e5cb278766
Update testsuite strucuture to latest draft
...
llvm-svn: 120029
2010-11-23 19:15:49 +00:00
Howard Hinnant
e3120ed1bf
N3188 - Revision to N3113: Async Launch Policies (CH 36)
...
llvm-svn: 120027
2010-11-23 18:33:54 +00:00
Howard Hinnant
3dc6455ff0
N3191: C++ Timeout Specification
...
llvm-svn: 119909
2010-11-20 19:16:30 +00:00
Howard Hinnant
092980dd65
N3123
...
llvm-svn: 119906
2010-11-20 18:25:22 +00:00
Howard Hinnant
ca74048398
N3142. Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right.
...
llvm-svn: 119854
2010-11-19 22:17:28 +00:00
Howard Hinnant
348bb56a82
type_traits intrinsics design
...
llvm-svn: 119776
2010-11-19 01:48:13 +00:00
Howard Hinnant
4b88967b70
type_traits intrinsics design
...
llvm-svn: 119775
2010-11-19 01:38:58 +00:00
Howard Hinnant
d518d1c807
LWG 1522
...
llvm-svn: 119710
2010-11-18 17:34:48 +00:00
Howard Hinnant
908484b147
LWG 1439
...
llvm-svn: 119703
2010-11-18 17:01:36 +00:00
Howard Hinnant
48d05bd26c
LWG 1339
...
llvm-svn: 119699
2010-11-18 16:13:03 +00:00
Howard Hinnant
fb34010258
LWG 1432
...
llvm-svn: 119611
2010-11-18 01:47:02 +00:00
Howard Hinnant
a4a1ef1fc2
LWG 1404
...
llvm-svn: 119609
2010-11-18 01:40:00 +00:00
Howard Hinnant
d09f711dc2
LWG 1325
...
llvm-svn: 119571
2010-11-17 21:53:14 +00:00
Howard Hinnant
5ba1459c4c
LWG 1323
...
llvm-svn: 119560
2010-11-17 21:11:40 +00:00
Howard Hinnant
601afb30ec
LWG 1191
...
llvm-svn: 119545
2010-11-17 19:52:17 +00:00
Howard Hinnant
ef6168357a
LWG 1118
...
llvm-svn: 119541
2010-11-17 19:22:43 +00:00
Howard Hinnant
57d1ebcc38
Update <string> to use allocator_traits.
...
llvm-svn: 119522
2010-11-17 17:55:08 +00:00
Howard Hinnant
412dbebe1b
license change
...
llvm-svn: 119395
2010-11-16 22:09:02 +00:00
Chris Lattner
58dffe641b
libc++ is now dual licensed under both UIUC and MIT licenses.
...
llvm-svn: 119391
2010-11-16 21:40:19 +00:00
Chris Lattner
4c9fa8a132
add a credits file for libc++
...
llvm-svn: 119390
2010-11-16 21:39:15 +00:00
Howard Hinnant
9b35c8275c
Dave Zarzycki showed how the efficiency of shared_ptr could be significantly
...
increased. The following program is running 49% faster:
#include <iostream>
#include <memory>
#include <chrono>
#include <vector>
#include "chrono_io"
int main()
{
typedef std::chrono::high_resolution_clock Clock;
Clock::time_point t0 = Clock::now();
{
std::shared_ptr<int> p(new int (1));
std::vector<std::shared_ptr<int> > v(1000000, p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
}
Clock::time_point t1 = Clock::now();
std::cout << (t1-t0) << '\n';
}
llvm-svn: 119388
2010-11-16 21:33:17 +00:00
Howard Hinnant
c4931c4746
I have reverted all contributions made by Jesse Towner in revision 110724
...
llvm-svn: 119383
2010-11-16 21:10:23 +00:00
Nick Kledzik
4b6ccfd9ce
update to use new linker option to re-export from libc++abi.dylb
...
llvm-svn: 117691
2010-10-29 19:46:14 +00:00
Howard Hinnant
5ec1826429
Secure __next_prime from overflowing
...
llvm-svn: 117650
2010-10-29 14:10:30 +00:00
Howard Hinnant
007b26be68
Fixed bug in random_shuffle to avoid swapping with self
...
llvm-svn: 117098
2010-10-22 15:26:39 +00:00
Howard Hinnant
a7c2f3eac3
[atomics.types.address]
...
llvm-svn: 117033
2010-10-21 17:44:19 +00:00
Howard Hinnant
6b4120915e
Updated chart with weekly test results, and updated export files for chnages in <atomic>.
...
llvm-svn: 116943
2010-10-20 20:15:14 +00:00
Howard Hinnant
f9c02e15c4
atomic_schar, atomic_uchar, atomic_short, atomic_ushort, atomic_int, atomic_uint, atomic_long, atomic_ulong, atomic_llong, atomic_ullong, atomic_char16_t, atomic_char32_t and atomic_wchar_t.
...
llvm-svn: 116860
2010-10-19 21:22:10 +00:00
Howard Hinnant
d89b01e521
atomic_char
...
llvm-svn: 116813
2010-10-19 16:51:18 +00:00
Howard Hinnant
b2b5513dcc
Changing <atomic> to follow Design A
...
llvm-svn: 116742
2010-10-18 20:39:07 +00:00
Howard Hinnant
8166eca7b4
Update atomic Design A spec with reference C++ implementations for the purpose of documeting the semantics of each atomic operation.
...
llvm-svn: 116713
2010-10-18 16:40:13 +00:00
Howard Hinnant
1f1f63a698
Update atomic Design A spec
...
llvm-svn: 116707
2010-10-18 16:02:24 +00:00
Howard Hinnant
c1ef47986b
Fix two test bugs
...
llvm-svn: 116515
2010-10-14 21:08:32 +00:00
Howard Hinnant
3daef8dce2
Convert __thread_local_data to the singleton pattern and change export files...
...
llvm-svn: 116501
2010-10-14 19:24:23 +00:00
Howard Hinnant
10e4a48a26
Convert __thread_local_data to the singleton pattern
...
llvm-svn: 116500
2010-10-14 19:18:04 +00:00
Howard Hinnant
a65a935ba4
Bug 7983 fixed by Bernhard Rosenkraenzer
...
llvm-svn: 116487
2010-10-14 17:11:39 +00:00
Nick Kledzik
fd6fdbecd4
temporarily use cc to link instead of clang to work around issue with -Xarch
...
llvm-svn: 116435
2010-10-13 21:12:41 +00:00
Nick Kledzik
2b23d60cb3
update export list for when building with clang++
...
llvm-svn: 116434
2010-10-13 21:11:52 +00:00
Howard Hinnant
279312ec4e
updated for weekly test results
...
llvm-svn: 116425
2010-10-13 20:24:31 +00:00
Howard Hinnant
e79d71e2e3
Patch by Marshall Clow to make the assignment operators of piecewise_constant_distribution and piecewise_linear_distribution exception safe.
...
llvm-svn: 116404
2010-10-13 14:37:09 +00:00
Howard Hinnant
71dee18c43
Updated atomic design docs
...
llvm-svn: 116065
2010-10-08 17:36:50 +00:00
Howard Hinnant
0f444b3b16
Corrected an inconsistency with recent changes in tuple, and perfect forwarding within bind
...
llvm-svn: 115930
2010-10-07 18:03:23 +00:00
Howard Hinnant
149f659af3
Relaxing timing test a bit to avoid spurious test failures under load
...
llvm-svn: 115920
2010-10-07 16:25:31 +00:00
Howard Hinnant
dc2394f856
Update atomic design A
...
llvm-svn: 115913
2010-10-07 14:18:37 +00:00
Howard Hinnant
a35a35fc90
Updated <atomic> docs with three design options
...
llvm-svn: 115791
2010-10-06 16:15:10 +00:00
Howard Hinnant
b93850f370
A compiler writer's guide to <atomic>, minor update
...
llvm-svn: 115633
2010-10-05 17:22:28 +00:00
Howard Hinnant
1de2266f07
A compiler writer's guide to <atomic>
...
llvm-svn: 115629
2010-10-05 16:44:40 +00:00
Howard Hinnant
772699070e
Make flag type configurable by the compiler
...
llvm-svn: 115614
2010-10-05 14:02:23 +00:00
Howard Hinnant
69c3cb85ab
Thanks Sebastian\!
...
llvm-svn: 115612
2010-10-05 13:38:23 +00:00
Howard Hinnant
668523a1b8
Filling out the infrastructure in <atomic>
...
llvm-svn: 115577
2010-10-04 23:55:35 +00:00
Howard Hinnant
d5a97fc683
__has_feature crutch
...
llvm-svn: 115540
2010-10-04 19:01:30 +00:00
Howard Hinnant
2b672e24a5
Still working on the basic design of <atomic>. I'm working towards a system by which the compiler only needs to define the strongest intrinsics it can. Weaker atomics in the library automatically try stronger and stronger variants, picking the weakest compiler intrinsic available. If no compiler intrinsics are available for a given operation, the library locks a mutex and does the job. Better documentation to follow...
...
llvm-svn: 115538
2010-10-04 18:52:54 +00:00
Howard Hinnant
2ec672fff5
Tweak to make clang blocks work with std::functional (very fragile)
...
llvm-svn: 115461
2010-10-03 13:59:56 +00:00
Howard Hinnant
f717f3ae61
Bug 7984 by Bernhard Rosenkraenzer
...
llvm-svn: 115443
2010-10-02 23:27:23 +00:00
Howard Hinnant
18217738c7
Bug 8254 by Bernhard Rosenkraenzer
...
llvm-svn: 115430
2010-10-02 23:23:25 +00:00
Howard Hinnant
748a5279b1
[atomics.flag] completed. Initialization is not working on clang and can't be made to work without defaulted default constructors.
...
llvm-svn: 115207
2010-09-30 21:05:29 +00:00
Howard Hinnant
a31e741ac9
Name change of intrinsics as suggested by Jeffrey Yasskin
...
llvm-svn: 115145
2010-09-30 14:04:35 +00:00
Howard Hinnant
88efc1c7a5
Contemplating this <atomic> reorganization...
...
llvm-svn: 115087
2010-09-29 21:20:03 +00:00
Howard Hinnant
77f965b75a
updated per weekly tests
...
llvm-svn: 115081
2010-09-29 20:15:25 +00:00
Howard Hinnant
7d489d7a73
Didn't mean to commit that one
...
llvm-svn: 115058
2010-09-29 18:33:45 +00:00
Howard Hinnant
7387390d6e
Wrestling with the slowly dawning realization that <atomic> isn't implementable on any compiler at my disposal...
...
llvm-svn: 115054
2010-09-29 18:13:54 +00:00
Howard Hinnant
eb9e9a3710
fixing whitespace
...
llvm-svn: 114967
2010-09-28 17:19:10 +00:00
Howard Hinnant
cfe0b0a1ab
[atomics.order]
...
llvm-svn: 114966
2010-09-28 17:13:38 +00:00
Howard Hinnant
cd39d413b4
Getting started on <atomic>
...
llvm-svn: 114887
2010-09-27 21:17:38 +00:00
Howard Hinnant
f5241d7586
Bugzilla 8231
...
llvm-svn: 114851
2010-09-27 18:09:23 +00:00
Howard Hinnant
30ad985b6b
Cleaning up some tuple code.
...
llvm-svn: 114848
2010-09-27 17:54:17 +00:00
Howard Hinnant
789847ddbb
visibility-decoration sweep completed.
...
llvm-svn: 114685
2010-09-23 18:58:28 +00:00
Howard Hinnant
e060133553
visibility-decoration.
...
llvm-svn: 114671
2010-09-23 17:31:07 +00:00
Howard Hinnant
53ec0b4e8e
visibility-decoration.
...
llvm-svn: 114658
2010-09-23 16:27:36 +00:00
Howard Hinnant
3e84caaebb
visibility-decoration.
...
llvm-svn: 114647
2010-09-23 15:13:20 +00:00
Howard Hinnant
392183f99d
visibility-decoration.
...
llvm-svn: 114559
2010-09-22 18:02:38 +00:00
Howard Hinnant
848a5374d0
visibility-decoration.
...
llvm-svn: 114551
2010-09-22 16:48:34 +00:00
Howard Hinnant
3030b2f1ab
visibility-decoration.
...
llvm-svn: 114545
2010-09-22 15:29:08 +00:00
Howard Hinnant
a3988679f9
visibility-decoration.
...
llvm-svn: 114543
2010-09-22 14:16:26 +00:00
Howard Hinnant
0af133f941
visibility-decoration.
...
llvm-svn: 114496
2010-09-21 22:55:27 +00:00
Howard Hinnant
fb100021b7
visibility-decoration.
...
llvm-svn: 114486
2010-09-21 21:28:23 +00:00
Howard Hinnant
f5ab703f68
visibility-decoration.
...
llvm-svn: 114470
2010-09-21 20:16:37 +00:00
Howard Hinnant
35ae4a20cd
visibility-decoration.
...
llvm-svn: 114465
2010-09-21 18:58:51 +00:00
Howard Hinnant
43d9923860
visibility-decoration.
...
llvm-svn: 114451
2010-09-21 17:32:39 +00:00
Howard Hinnant
4c88c9803f
Getting started on a visibility-decoration sweep.
...
llvm-svn: 114440
2010-09-21 16:04:28 +00:00
Howard Hinnant
d8e7922ba2
Tweak clang support for char16_t/char32_t
...
llvm-svn: 114129
2010-09-16 23:27:26 +00:00
Howard Hinnant
5da7228ec0
Updated chart for weekly test results.
...
llvm-svn: 114029
2010-09-15 21:56:37 +00:00
Daniel Dunbar
5f09d9e00a
tests/lit: Split options into two groups, so we don't get driver warnings about
...
unused linker arguments for compile only tests.
llvm-svn: 113935
2010-09-15 04:31:58 +00:00
Daniel Dunbar
ecd98d5173
tests: Remove some stray cleanup code.
...
llvm-svn: 113934
2010-09-15 04:18:37 +00:00
Daniel Dunbar
bc9a848e04
tests: Fixup lit config, which got garbled somehow...
...
llvm-svn: 113931
2010-09-15 04:11:29 +00:00
Daniel Dunbar
42ea463089
tests: Sketch a lit config for running libc++ tests; currently expects libc++ to have been installed.
...
llvm-svn: 113925
2010-09-15 03:57:04 +00:00
Howard Hinnant
03976c1b62
Cement ABI on clang for char16_t and char32_t. Also fixed some comments in <iterator>.
...
llvm-svn: 113842
2010-09-14 20:26:27 +00:00
Howard Hinnant
8fb62e398a
Experimenting with a new forward fomulation (kudos Daniel Kruegler), updated insert iterators to work better with pproxies, and doubled the speed of __next_prime.
...
llvm-svn: 113731
2010-09-13 01:43:27 +00:00
Howard Hinnant
37030a77a0
Fix another const bug in function. Thanks to Daniel Krugler for finding this and the previous bug.
...
llvm-svn: 113686
2010-09-11 15:33:21 +00:00
Howard Hinnant
42daac442b
Fix const bug in function
...
llvm-svn: 113684
2010-09-11 15:09:37 +00:00
Nick Kledzik
d1d6f2ca46
<rdar://problem/8279559> [libstdcxx] use new linker options to make symbols non-weak
...
llvm-svn: 113616
2010-09-10 20:42:36 +00:00
Howard Hinnant
f9cca3b7d0
I am experimenting with putting visibility-default attributes on all struct/classes in libc++. This checkin decorates only basic_string and vector as an experiment, and for review by those in this audience that might know more about visibilty than I do. If I get no negative feedback on this procedure I will begin to decorate the entire library in this way.
...
llvm-svn: 113590
2010-09-10 16:42:26 +00:00
Howard Hinnant
7d1c2a0f3a
Yonggang Luo fixed gcc version checking for type_traits support.
...
llvm-svn: 113487
2010-09-09 13:58:34 +00:00
Howard Hinnant
1c1620b269
Updated by-chapter-summary with weekly test results, and fixed up some bad paths in some tests caused by aligning the test suite with N3126.
...
llvm-svn: 113403
2010-09-08 20:31:42 +00:00
Howard Hinnant
10b9b7b4bd
Hooked the following up to clang: is_class, is_enum, has_nothrow_copy_assign, has_trivial_destructor, has_virtual_destructor, is_pod. Implemented has_copy_assign.
...
llvm-svn: 113373
2010-09-08 17:55:32 +00:00
Howard Hinnant
1be27f0929
has_nothrow_copy_assign hooked up to clang
...
llvm-svn: 113364
2010-09-08 16:39:18 +00:00
Howard Hinnant
331b3dd2ad
has_trivial_copy_assign hooked up to clang (without workarounds). Filed http://llvm.org/bugs/show_bug.cgi?id=8109 to take care of several types which don't work yet. If there is some reason we don't want to handle these types in the compiler, I can handle most of them in the library.
...
llvm-svn: 113312
2010-09-07 23:38:59 +00:00
Howard Hinnant
bfc4026f4c
Made a stab at has_copy_constructor. Got it mostly working for g++-4.0, but only works for scalar types on clang. Ultimately this needs a compiler-supported is_constructible which clang is missing, and won't be able to use until it gets variadic templates.
...
llvm-svn: 113304
2010-09-07 23:11:28 +00:00
Howard Hinnant
06fc97019a
has_nothrow_copy_constructor hooked up to clang. Filed http://llvm.org/bugs/show_bug.cgi?id=8107 to take care of several types which don't work yet. If there is some reason we don't want to handle these types in the compiler, I can handle most of them in the library.
...
llvm-svn: 113294
2010-09-07 22:09:07 +00:00
Howard Hinnant
01fd31000b
has_trivial_copy_constructor hooked up to clang. Filed http://llvm.org/bugs/show_bug.cgi?id=8105 to take care of void, arrays of incomplete bounds and complete bounds which don't work yet. If there is some reason we don't want to handle these types in the compiler, I can handle them in the library.
...
llvm-svn: 113270
2010-09-07 20:31:18 +00:00
Howard Hinnant
ba6f71b030
Made a stab at has_default_constructor. Got it mostly working for g++-4.0, but only works for scalar types on clang. Ultimately this needs a compiler-supported is_constructible which clang is missing, and won't be able to use until it gets variadic templates.
...
llvm-svn: 113225
2010-09-07 17:47:31 +00:00
Howard Hinnant
f336abfcd2
has_nothrow_default_constructor hooked up to clang. Filed http://llvm.org/bugs/show_bug.cgi?id=8101 to take care of void, arrays of incomplete types, and classes with virtual destructors which don't work yet. If there is some reasons we don't want to handle these types in the compiler, I can handle them in the library.
...
llvm-svn: 113217
2010-09-07 17:15:17 +00:00
Howard Hinnant
c3ed8c312e
has_trivial_default_constructor hooked up to clang. Filed http://llvm.org/bugs/show_bug.cgi?id=8097 to take care of void and arrays of incomplete types which don't work yet. If there is some reasons we don't want to handle these types in the compiler, I can handle them in the library.
...
llvm-svn: 113205
2010-09-07 15:53:26 +00:00
Howard Hinnant
db3e9975d0
Working the type_traits area: Hooked up to clang's __is_union. Got has_trivial_copy_assign working.
...
llvm-svn: 113162
2010-09-06 19:10:31 +00:00
Howard Hinnant
eea166dfd4
Updated current status.
...
llvm-svn: 113110
2010-09-05 17:31:48 +00:00
Howard Hinnant
cbf93f3959
sync with N3126
...
llvm-svn: 113101
2010-09-05 01:14:30 +00:00
Howard Hinnant
f9e81f9acb
sync with N3126
...
llvm-svn: 113100
2010-09-05 01:10:45 +00:00
Howard Hinnant
771f325a1f
sync with N3126
...
llvm-svn: 113099
2010-09-05 01:06:34 +00:00
Howard Hinnant
5bed8c6f65
sync with N3126
...
llvm-svn: 113098
2010-09-05 00:57:20 +00:00
Howard Hinnant
e7d99b29be
sync with N3126
...
llvm-svn: 113097
2010-09-05 00:49:04 +00:00
Howard Hinnant
959cf8aede
Fix whitespace
...
llvm-svn: 113089
2010-09-04 23:46:48 +00:00
Howard Hinnant
7609c9b665
Changed __config to react to all of clang's currently documented has_feature flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature.
...
llvm-svn: 113086
2010-09-04 23:28:19 +00:00
Daniel Dunbar
0a779b97fe
Fix typos, noticed by Clang.
...
llvm-svn: 113061
2010-09-04 03:15:51 +00:00
Howard Hinnant
7f2aae9937
Configure libc++ to recognize and use inline namespaces for clang. Many, many thanks to Sebastian Redl for implementing it in clang, and to Daniel Dunbar for rattling my cage about it. This is huge for libc++. Thanks to you both\!
...
llvm-svn: 113026
2010-09-03 23:03:25 +00:00
Howard Hinnant
b77c0c03bb
[futures.atomic_future] and notify_all_at_thread_exit. This completes the header <future> and all of Chapter 30 (for C++0x enabled compilers).
...
llvm-svn: 113017
2010-09-03 21:46:37 +00:00
Howard Hinnant
ead85506a7
[futures.shared_future]
...
llvm-svn: 112990
2010-09-03 18:39:25 +00:00
Howard Hinnant
1f7ae51ef2
Updated for weekly test results.
...
llvm-svn: 112737
2010-09-01 20:33:41 +00:00
Howard Hinnant
27f000e10b
[futures.task] and [futures.async]. Requires variadics and rvalue-ref support.
...
llvm-svn: 112500
2010-08-30 18:46:21 +00:00
Howard Hinnant
c009b09c2b
[futures.unique_future]
...
llvm-svn: 112423
2010-08-29 14:20:30 +00:00
Howard Hinnant
8759d9d4d0
[futures.promise]. Depends on rvalue-ref support to work 100%.
...
llvm-svn: 112388
2010-08-28 21:01:06 +00:00
Howard Hinnant
167fd1084b
future continues ...
...
llvm-svn: 112284
2010-08-27 20:10:19 +00:00
Howard Hinnant
370bbab490
Updated for weekly test results
...
llvm-svn: 112078
2010-08-25 19:45:31 +00:00
Howard Hinnant
dae3481b28
Getting started on <future>
...
llvm-svn: 112061
2010-08-25 17:32:05 +00:00
Howard Hinnant
01f586ca2c
Corrected some int -> char narrowing conversions
...
llvm-svn: 111849
2010-08-23 21:41:03 +00:00
Howard Hinnant
8c93ff2ce3
Accidentally changed a data file during the whitespace cleanup
...
llvm-svn: 111845
2010-08-23 21:23:21 +00:00
Howard Hinnant
fae824a32d
Remove tabs
...
llvm-svn: 111778
2010-08-22 13:53:14 +00:00
Howard Hinnant
2807d4a58b
Fixing whitespace problems
...
llvm-svn: 111769
2010-08-22 01:04:38 +00:00
Howard Hinnant
94b2dd0998
Fixing whitespace problems
...
llvm-svn: 111767
2010-08-22 00:59:46 +00:00
Howard Hinnant
2cb7936efe
Fixing whitespace problems
...
llvm-svn: 111765
2010-08-22 00:50:25 +00:00
Howard Hinnant
bf2897cf45
Fixing whitespace problems
...
llvm-svn: 111764
2010-08-22 00:47:54 +00:00
Howard Hinnant
f36101dd3d
Fixing whitespace problems
...
llvm-svn: 111763
2010-08-22 00:45:01 +00:00
Howard Hinnant
a0eaf608cd
Fixing whitespace problems
...
llvm-svn: 111762
2010-08-22 00:42:21 +00:00
Howard Hinnant
3bad6b61e5
Fixing whitespace problems
...
llvm-svn: 111761
2010-08-22 00:39:25 +00:00
Howard Hinnant
b5a4c50a03
Fixing whitespace problems
...
llvm-svn: 111760
2010-08-22 00:31:12 +00:00
Howard Hinnant
0022123b95
Fixing whitespace problems
...
llvm-svn: 111759
2010-08-22 00:29:01 +00:00
Howard Hinnant
66dbf0d311
Fixing whitespace problems
...
llvm-svn: 111758
2010-08-22 00:26:48 +00:00
Howard Hinnant
62bfbb0974
Fixing whitespace problems
...
llvm-svn: 111757
2010-08-22 00:22:24 +00:00
Howard Hinnant
5cf4e1f1f0
Fixing whitespace problems
...
llvm-svn: 111756
2010-08-22 00:20:12 +00:00
Howard Hinnant
8f2f7e7c79
Fixing whitespace problems
...
llvm-svn: 111755
2010-08-22 00:15:28 +00:00
Howard Hinnant
664ae8118e
Fixing whitespace problems
...
llvm-svn: 111753
2010-08-22 00:08:10 +00:00
Howard Hinnant
940e211c87
Fixing whitespace problems
...
llvm-svn: 111751
2010-08-22 00:03:27 +00:00
Howard Hinnant
b3371f6f49
Fixing whitespace problems
...
llvm-svn: 111750
2010-08-22 00:02:43 +00:00
Howard Hinnant
9f1102b7fe
US 108, N3109
...
llvm-svn: 111747
2010-08-21 21:14:53 +00:00
Howard Hinnant
e8e7af2477
DE 23
...
llvm-svn: 111746
2010-08-21 21:01:59 +00:00
Howard Hinnant
3db88036f6
US 117
...
llvm-svn: 111745
2010-08-21 20:58:44 +00:00
Howard Hinnant
4eb27b79c1
US 122, N3106
...
llvm-svn: 111742
2010-08-21 20:10:01 +00:00
Howard Hinnant
9b0b6d45d2
Installed allocator into std::function
...
llvm-svn: 111672
2010-08-20 19:36:46 +00:00
Howard Hinnant
cbbc430d24
JP 3 & JP 4
...
llvm-svn: 111547
2010-08-19 19:20:10 +00:00
Howard Hinnant
907af2668f
GB 85, GB 87
...
llvm-svn: 111546
2010-08-19 19:15:54 +00:00
Howard Hinnant
de6d046575
DE 19
...
llvm-svn: 111544
2010-08-19 19:09:08 +00:00
Howard Hinnant
1102fbbd67
US 98, US 99
...
llvm-svn: 111542
2010-08-19 18:59:38 +00:00
Howard Hinnant
20cc2a42b8
US 107
...
llvm-svn: 111538
2010-08-19 18:39:17 +00:00
Howard Hinnant
e57dc14c44
LWG 1278
...
llvm-svn: 111532
2010-08-19 17:40:04 +00:00
Howard Hinnant
5e2f7b89e9
Updated by-chapter chart with weekly test results. Also did some prototyping on result_of, but if-def'd out the prototyped part (which the LWG may or may not accept)
...
llvm-svn: 111389
2010-08-18 18:52:04 +00:00
Howard Hinnant
86550b0038
[re.alg.replace]. This finishes all of <regex>. That being said, <regex> is exceptionally difficult to thoroughly test. If anyone has the ability to test this, combined with the interest to do so, now would be a good time. :-)
...
llvm-svn: 111333
2010-08-18 00:13:08 +00:00
Howard Hinnant
14dcd3d1ff
[re.tokiter]
...
llvm-svn: 111278
2010-08-17 20:42:03 +00:00
Howard Hinnant
2bf1fd99b1
[re.regiter]
...
llvm-svn: 111178
2010-08-16 20:21:16 +00:00
Howard Hinnant
51e3967484
[re.alg.match]
...
llvm-svn: 111075
2010-08-14 19:58:44 +00:00
Howard Hinnant
48b242a275
Everything under [re.results]
...
llvm-svn: 111074
2010-08-14 18:14:02 +00:00
Howard Hinnant
5cd6658798
Everything under [re.regex]
...
llvm-svn: 111024
2010-08-13 18:11:23 +00:00
Howard Hinnant
3d87b69f7d
Filling out regex tests...
...
llvm-svn: 110955
2010-08-12 21:14:20 +00:00
Howard Hinnant
824ea8f9cd
Didn't mean to change lib/buildit on the last check in
...
llvm-svn: 110834
2010-08-11 18:11:36 +00:00
Howard Hinnant
54b409fdb9
now works with -fno-exceptions and -fno-rtti
...
llvm-svn: 110828
2010-08-11 17:04:31 +00:00
David Chisnall
37aab7674a
#ifdef around Solaris/Linux/Darwin-specific error codes and replace them with their BSD equivalents if they are not available.
...
llvm-svn: 110827
2010-08-11 16:52:41 +00:00
David Chisnall
2a072dde4b
Include sys/endian.h on FreeBSD and use that to detect the byte order.
...
llvm-svn: 110824
2010-08-11 16:27:20 +00:00
Howard Hinnant
08b0997cc1
Modified the definition of std::foward to address National Body Comment US 90
...
llvm-svn: 110805
2010-08-11 14:05:55 +00:00
Howard Hinnant
2bcfef5e9c
Fix conflict with cstring and using namespace std
...
llvm-svn: 110736
2010-08-10 21:57:23 +00:00
Howard Hinnant
eb2692571f
patch by Jesse Towner, and bug fix by Sebastian Redl
...
llvm-svn: 110724
2010-08-10 20:48:29 +00:00
Howard Hinnant
719ed7d058
buildit adjustment
...
llvm-svn: 109931
2010-07-30 23:15:01 +00:00
Howard Hinnant
e7b3e177c4
Let C lib supply stdbool.h
...
llvm-svn: 109894
2010-07-30 21:28:27 +00:00
Howard Hinnant
a8e3da215c
Make complex.h play nice with C
...
llvm-svn: 109791
2010-07-29 18:43:15 +00:00
Howard Hinnant
7189782c6b
bug fix concerning search not at beginning of string and word boundaries
...
llvm-svn: 109750
2010-07-29 15:17:28 +00:00
Howard Hinnant
7949ab0743
fix bug incrementing past end in search
...
llvm-svn: 109716
2010-07-29 01:15:27 +00:00
Howard Hinnant
4ea5240e05
fix parse bug in ecma non-greedy loop
...
llvm-svn: 109711
2010-07-29 00:36:00 +00:00
Howard Hinnant
ea4c4fbf07
weekly by-chapter summary updated
...
llvm-svn: 109695
2010-07-28 23:23:51 +00:00
Howard Hinnant
6e156afa71
Fixed some bugs in the ecma bracket epression regarding escaped characters, and got the awk grammar going.
...
llvm-svn: 109599
2010-07-28 17:35:27 +00:00
Howard Hinnant
c1124300fe
lookahead for ecma
...
llvm-svn: 109548
2010-07-27 22:20:32 +00:00
Howard Hinnant
93da3b2e41
grep and egrep grammars
...
llvm-svn: 109534
2010-07-27 19:53:10 +00:00
Howard Hinnant
6afe8b0a23
continued regex development...
...
llvm-svn: 109512
2010-07-27 17:24:17 +00:00
Howard Hinnant
5c67986156
A good start on ecma regex's. Maybe even feature complete, not sure yet. Also an unrelated fix to is_constructible thanks to Daniel Krugler.
...
llvm-svn: 109479
2010-07-27 01:25:38 +00:00
Howard Hinnant
a9e0cfd729
Updated weekly by chapter summary
...
llvm-svn: 109135
2010-07-22 20:29:53 +00:00
Howard Hinnant
f7109438ea
I believe posix extended expr is feature complete. Getting started on ecma exprs.
...
llvm-svn: 109126
2010-07-22 17:53:24 +00:00
Howard Hinnant
b762bea3ba
A few more tests for posix extended alternation
...
llvm-svn: 109107
2010-07-22 14:12:20 +00:00
Howard Hinnant
c1198c320f
A good start on extended posix regex. Loops working. Alternation working. Also update by-chapter completeness summary.
...
llvm-svn: 108548
2010-07-16 19:08:36 +00:00
Howard Hinnant
6ded099399
Tests for basic posix regex templated on wchar_t
...
llvm-svn: 108435
2010-07-15 18:18:07 +00:00
Howard Hinnant
5d695f041c
Fixed to work with generalized iterators.
...
llvm-svn: 108359
2010-07-14 21:14:52 +00:00
Howard Hinnant
5699358c63
Minor optimizations. Minor bug fixes. More tests.
...
llvm-svn: 108331
2010-07-14 15:45:11 +00:00
Howard Hinnant
8ab959c961
Bracket expressions are working (lightly tested).
...
llvm-svn: 108280
2010-07-13 21:48:06 +00:00
Howard Hinnant
fdec08bd8b
regex_constants icase and collate for matching a single char and for matching back references
...
llvm-svn: 108178
2010-07-12 19:11:27 +00:00
Howard Hinnant
aea2afe334
back references for BRE
...
llvm-svn: 108168
2010-07-12 18:16:05 +00:00
Howard Hinnant
0cbed7e140
Redesign number 3. The previous design was not handling matching of empty strings inside of loops.
...
llvm-svn: 108151
2010-07-12 15:51:17 +00:00
Howard Hinnant
87ec03a2ea
weekly update to by-chapter-summary, plus left and right anchor support in basic posix.
...
llvm-svn: 107938
2010-07-09 00:15:26 +00:00
Howard Hinnant
8c459a14a9
Marked subexpressions in a loop in basic posix working (only lightly tested so far)
...
llvm-svn: 107889
2010-07-08 17:43:58 +00:00
Howard Hinnant
189b212662
First loop test passed. The data structure and search algorithm is still crude and in-flux. But this milestone needed to be locked in. Right now every loop is implemented in terms of a structure that will handle the most complicated {min, max} loop. Though only *-loops are tested at the moment. In a future iteration *-loops will likely be optimized a little more. The only tests are for basic posix so far, but I have prototype code running for extended posix and ecma. The prototype code lacks the complicating properties of the real <regex> requirements though.
...
llvm-svn: 107803
2010-07-07 19:14:52 +00:00
Howard Hinnant
47a3e26cf8
Updated chart with weekly test results
...
llvm-svn: 107431
2010-07-01 21:39:12 +00:00
Howard Hinnant
928658cd70
First test for marked subexpressions
...
llvm-svn: 107317
2010-06-30 20:30:19 +00:00
Howard Hinnant
237ee6fef8
First, very primitive, search results on one engine
...
llvm-svn: 107294
2010-06-30 17:22:19 +00:00
Howard Hinnant
cdefdeee28
two steps forward, one step back...
...
llvm-svn: 107230
2010-06-30 00:21:42 +00:00
Howard Hinnant
e5561b04e4
[re.submatch]
...
llvm-svn: 107187
2010-06-29 18:37:43 +00:00
Howard Hinnant
99724799fb
Minor fixup
...
llvm-svn: 107022
2010-06-28 17:19:47 +00:00
Howard Hinnant
853aff80dd
regex: learning to crawl
...
llvm-svn: 106882
2010-06-25 20:56:08 +00:00
Howard Hinnant
24e98486a3
Continuing to work through regex, and updated libcxx_by_chapter.pdf with weekly test results
...
llvm-svn: 106790
2010-06-24 21:28:00 +00:00
Howard Hinnant
24757ff75e
Finished [re.traits]. I'd like to acknowledge the help of Bjorn Reese with <regex>.
...
llvm-svn: 106478
2010-06-21 21:01:43 +00:00
Howard Hinnant
6cf1b791dd
updated for weekly tests
...
llvm-svn: 106288
2010-06-18 16:13:40 +00:00
Howard Hinnant
70505305c1
Just getting our toes wet on <regex>
...
llvm-svn: 106187
2010-06-17 00:34:59 +00:00
Dan Gohman
f4e31c8974
Fix an apparent typo.
...
llvm-svn: 105467
2010-06-04 14:16:02 +00:00
Howard Hinnant
3b61d21fac
updated by-chapter-complete chart
...
llvm-svn: 105402
2010-06-03 19:31:49 +00:00
Howard Hinnant
3bdce1c166
test results are now stored internal to Apple.
...
llvm-svn: 105394
2010-06-03 17:05:53 +00:00
Howard Hinnant
d1803b6c87
[util.smartptr.hash]
...
llvm-svn: 105393
2010-06-03 16:42:57 +00:00
Howard Hinnant
8ae5097f81
for Ubuntu
...
llvm-svn: 105338
2010-06-02 18:53:22 +00:00
Howard Hinnant
2234ef3407
I've reverted the changes needed for Ubuntu. The changes for Ubuntu should go under a #if and I'm not sure what that #if should look like.
...
llvm-svn: 105337
2010-06-02 18:41:21 +00:00
Howard Hinnant
cbbf633edb
[string.conversions]
...
llvm-svn: 105336
2010-06-02 18:20:39 +00:00
Howard Hinnant
6508e9936c
[conversions.buffer]
...
llvm-svn: 105286
2010-06-01 20:09:18 +00:00
Howard Hinnant
5d3c11337a
[conversions.string]
...
llvm-svn: 105254
2010-05-31 20:58:54 +00:00
Howard Hinnant
0c17e32edd
[locale.stdcvt]
...
llvm-svn: 105174
2010-05-30 21:39:41 +00:00
Howard Hinnant
bc3c5dc767
Fixed [support.types]. <cstddef> wasn't definining NULL or offsetof.
...
llvm-svn: 104982
2010-05-28 18:04:31 +00:00
Howard Hinnant
9d4a2861bb
[support.initlist.range]
...
llvm-svn: 104975
2010-05-28 17:53:59 +00:00
Howard Hinnant
a950f39bac
Corrected a test bug in reverse_iterator
...
llvm-svn: 104960
2010-05-28 16:53:29 +00:00
Howard Hinnant
e95bd34de6
UTF-8 data in this file somehow got garbled
...
llvm-svn: 104952
2010-05-28 16:37:38 +00:00
Howard Hinnant
03ec83e9e8
Implemented some adaptor constructors which I had missed.
...
llvm-svn: 104946
2010-05-28 15:49:54 +00:00
Howard Hinnant
a391bc1323
Corrected rethrow_if_nested
...
llvm-svn: 104943
2010-05-28 13:35:41 +00:00
Howard Hinnant
c8edcb3651
weekly test results plus a bug fix clang found
...
llvm-svn: 104877
2010-05-27 20:06:01 +00:00
Howard Hinnant
019fe4b8fd
[except.nested]
...
llvm-svn: 104850
2010-05-27 17:06:52 +00:00
Howard Hinnant
40c7ef90b2
[numeric.iota]
...
llvm-svn: 104719
2010-05-26 18:53:44 +00:00
Howard Hinnant
f9d540b062
Completed [alg.random.shuffle].
...
llvm-svn: 104708
2010-05-26 17:49:34 +00:00
Howard Hinnant
5b00ffede4
For compiling on FreeBSD
...
llvm-svn: 104616
2010-05-25 17:25:25 +00:00
Howard Hinnant
b4d2fd2f0f
[rand.dist.samp.plinear]. This means we've got a fully tested and functional <random>! 489 tests over 48 sections are passing. :-) The only thing still on my plate in this area is to back-port some of this technology to random_shuffle/shuffle in <algorithm>. That will involve shuffling header bits around (<random> depepends on <algorithm>), but it won't entail that much development (compared to what has been required for <random>).
...
llvm-svn: 104575
2010-05-25 00:27:34 +00:00
Howard Hinnant
128ba7191d
patch by Jeffrey Yasskin for porting to Ubuntu Hardy. Everything was accepted except there were some bug fixes needed in <locale> for the __nolocale_* series. For the apple branch I ended up using templates instead of the var_args solution because it seemed both safer and more efficient.
...
llvm-svn: 104516
2010-05-24 17:49:41 +00:00