| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
libsupc++ declares these constructors inline, so we won't necessarily
get a definition for them in the library.
llvm-svn: 191931
|
|
|
|
|
|
|
|
| |
libsupc++ in typeinfo.cpp, bringing it into agreement with
exception.cpp. This fixes link errors due to duplicate symbols from
this translation unit.
llvm-svn: 191397
|
|
|
|
| |
llvm-svn: 191148
|
|
|
|
| |
llvm-svn: 191127
|
|
|
|
| |
llvm-svn: 190857
|
|
|
|
| |
llvm-svn: 190837
|
|
|
|
|
|
| |
(invalid value for broken_promise).
llvm-svn: 190756
|
|
|
|
| |
llvm-svn: 190478
|
|
|
|
|
|
| |
during build.
llvm-svn: 189949
|
|
|
|
| |
llvm-svn: 189772
|
|
|
|
| |
llvm-svn: 189623
|
|
|
|
|
|
| |
it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.
llvm-svn: 189610
|
|
|
|
| |
llvm-svn: 189273
|
|
|
|
| |
llvm-svn: 189140
|
|
|
|
|
|
| |
debug-mode has found a bug (found one in regex). Had to play with extern templates a bit to get this to work since string is heavily used within libc++.dylib.
llvm-svn: 189114
|
|
|
|
| |
llvm-svn: 189046
|
|
|
|
|
|
| |
Leave the (existing, out-of-line, non-constexpr) in the dylib for compatibility with existing programs)
llvm-svn: 188858
|
|
|
|
| |
llvm-svn: 188396
|
|
|
|
| |
llvm-svn: 188395
|
|
|
|
|
|
| |
explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>.
llvm-svn: 188192
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. I had been detecting and trapping iterator == and \!= among iterators
in different containers as an error. But the trapping itself is actually
an error.
Consider:
#include <iostream>
#include <vector>
#include <algorithm>
template <class C>
void
display(const C& c)
{
std::cout << "{";
bool first = true;
for (const auto& x : c)
{
if (\!first)
std::cout << ", ";
first = false;
std::cout << x;
}
std::cout << "}\n";
}
int
main()
{
typedef std::vector<int> V;
V v1 = {1, 3, 5};
V v2 = {2, 4, 6};
display(v1);
display(v2);
V::iterator i = std::find(v1.begin(), v1.end(), 1);
V::iterator j = std::find(v2.begin(), v2.end(), 2);
if (*i == *j)
i = j; // perfectly legal
// ...
if (i \!= j) // the only way to check
v2.push_back(*i);
display(v1);
display(v2);
}
It is legal to assign an iterator from one container to another of the
same type. This is required to work. One might want to test whether or
not such an assignment had been made. The way one performs such a check
is using the iterator's ==, \!= operator. This is a logical and necessary
function and does not constitute an error.
2. I had a header circular dependence bug when _LIBCPP_DEBUG2 is defined.
This caused a problem in several of the libc++ tests.
Fixed.
3. There is a serious problem when _LIBCPP_DEBUG2=1 at the moment in that
std::basic_string is inoperable. std::basic_string uses __wrap_iterator
to implement its iterators. __wrap_iterator has been rigged up in debug
mode to support vector. But string hasn't been rigged up yet. This means
that one gets false positives when using std::string in debug mode. I've
upped std::string's priority in www/debug_mode.html.
llvm-svn: 187636
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC-specific, MSVCRT-specific, or Windows-specific. Because Clang can
also define _MSC_VER, and MSVCRT is not necessarily the only C runtime,
these macros should not be used interchangeably.
This patch divides all Windows-related bits into the aforementioned
categories. Two new macros are introduced:
- _LIBCPP_MSVC: Defined when compiling with MSVC. Detected using
_MSC_VER, excluding Clang.
- _LIBCPP_MSVCRT: Defined when using the Microsoft CRT. This is the default
when _WIN32 is defined.
This leaves _WIN32 for code using the Windows API.
This also corrects the spelling of _LIBCP_HAS_IS_BASE_OF to _LIBCPP_HAS_IS_BASE_OF.
Nico, please prepare a patch for CREDITS.TXT, thanks.
llvm-svn: 187593
|
|
|
|
| |
llvm-svn: 187332
|
|
|
|
| |
llvm-svn: 186951
|
|
|
|
| |
llvm-svn: 185865
|
|
|
|
| |
llvm-svn: 185849
|
|
|
|
| |
llvm-svn: 185467
|
|
|
|
| |
llvm-svn: 185451
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by user
code to specify what version of POSIX the system should provide. If
you want to check what version of POSIX is actually available, you're
supposed to test _POSIX_VERSION.
However, since sysconf() has been in POSIX since 1995, it's probably
safe to assume it's available on any system with a C++11 compiler,
especially if _SC_NPROCESSORS_ONLN is defined too. So no point in a
complicated preprocessor rule if just we unconditionally include
<unistd.h> (on non-Windows systems).
Also, I've added a #warning for to help porters detect when a suitable
implementation isn't detected at compile-time.
Howard: Matthew, can you patch CREDITS.TXT? Thanks.
llvm-svn: 185275
|
|
|
|
|
|
| |
'len strlen(msg)', so we can use memcpy() instead of strcpy().
llvm-svn: 185274
|
|
|
|
| |
llvm-svn: 182162
|
|
|
|
|
|
| |
dependency on libpthread for code that doesn't use threads itself.
llvm-svn: 182161
|
|
|
|
|
|
| |
It also refactors repetitive code in string.cpp do greatly reduce the repetitiveness, increasing maintainability.
llvm-svn: 182026
|
|
|
|
| |
llvm-svn: 181559
|
|
|
|
| |
llvm-svn: 181534
|
|
|
|
|
|
| |
and GCC 4.6 and newer, so protect accordingly.
llvm-svn: 180943
|
|
|
|
|
|
| |
Fixes the value range on platforms with signed char.
llvm-svn: 180940
|
|
|
|
| |
llvm-svn: 180680
|
|
|
|
| |
llvm-svn: 180679
|
|
|
|
| |
llvm-svn: 180678
|
|
|
|
| |
llvm-svn: 180598
|
|
|
|
| |
llvm-svn: 178892
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077133.html
llvm-svn: 178581
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077132.html
llvm-svn: 178545
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130325/077131.html
llvm-svn: 178544
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=15624.
llvm-svn: 178354
|
|
|
|
| |
llvm-svn: 178267
|
|
|
|
|
|
| |
-fsanitize=address on the test suite.
llvm-svn: 177452
|
|
|
|
|
|
| |
should be no functionality change. Clients should see no ABI differences.
llvm-svn: 177443
|
|
|
|
|
|
| |
just check to see if they are defined.
llvm-svn: 177310
|