History log of /external/libcxx/src/stdexcept.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
12f2b260eddbdeaa1a41410cb13fcbf210c423ba 12-Jul-2017 Eric Fiselier <eric@efcs.ca> Remove <__refstring> header; Move it into source directory.

The libc++ <__refstring> headers has no real reason why it should
be a public header that libc++ ships. The only reason it was in the include
directory was because libc++abi needed it to build the library.

However keeping <__refstring> a header had other problems, like requiring its
dependancies to also be in the headers. For that reason this patch
moves it into the source directory.

To work around libc++abi's need for this header a duplicated copy was added
to libc++abi in r307748. While duplicating the code is an unfortunate solution
it's the best solution that's currently possible.

In the future I would like to start a discussion on the mailing lists about
making libc++abi build as a sub-project of libc++, requiring the libc++ sources
always be present.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@307749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
cfc5515b9d463558331d716bb0edf899757a1853 03-Jan-2017 Eric Fiselier <eric@efcs.ca> Recommit r290839 - Fix configuring and building libc++ w/o an ABI library.

This patch re-commits a previous attempt to support building libc++ w/o
an ABI library. That patch was originally reverted because:

1) It forgot to teach the test suite about "default" ABI libraries.

2) Some LLVM builders don't clear the CMake cache between builds. The previous
patch caused those builders to fail since their old cache entry for
LIBCXX_CXX_ABI="" is no longer valid.

The updated patch addresses both issues. It works around (2) by adding
a hack to force the builders to update their cache entries. The hack will
be removed shortly once all LLVM builders have run.

Original commit message
-----------------------

Typically libc++ uses libc++abi or libcxxrt to provide the ABI and runtime bits
of the C++ STL. However we also support building w/o an ABI library entirely.
This patch fixes building libc++ w/o an ABI library (and incorporates the
`~type_info()` fix in D28211).

The main changes in this patch are:

1) Add `-DLIBCXX_CXX_ABI=default` instead of using the empty string to mean "default".
2) Fix CMake bits which treated "none" as "default" on OS X.
3) Teach the source files to respect `-D_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY`.
4) Define ~type_info() when _LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY is defined.

Unfortunately this patch doesn't help clean up the macro mess that we use to
configure for different ABI libraries.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
983f38443b0756e06628b962ed3fdb75c69cf69c 02-Jan-2017 Eric Fiselier <eric@efcs.ca> Revert r290839 - Fix configuring and building libc++ w/o an ABI library

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
ea38cde827cdb83134adb7eade860a9b77a486b6 02-Jan-2017 Eric Fiselier <eric@efcs.ca> Fix configuring and building libc++ w/o an ABI library.

Typically libc++ uses libc++abi or libcxxrt to provide the ABI and runtime bits
of the C++ STL. However we also support building w/o an ABI library entirely.
This patch fixes building libc++ w/o an ABI library (and incorporates the
`~type_info()` fix in D28211).

The main changes in this patch are:

1) Add `-DLIBCXX_CXX_ABI=default` instead of using the empty string to mean "default".
2) Fix CMake bits which treated "none" as "default" on OS X.
3) Teach the source files to respect `-D_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY`.
4) Define ~type_info() when _LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY is defined.

Unfortunately this patch doesn't help clean up the macro mess that we use to
configure for different ABI libraries.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
6979a42e4412d366e4528e3bf83e3846d1520097 25-Oct-2016 Eric Fiselier <eric@efcs.ca> [libc++] Fix modules build - Rework __refstring definition

Summary:
`__libcpp_refstring` currently has two different definitions. First there is the complete definition in `<__refstring>` but there is also a second in `<stdexcept>`. The historical reason for this split is because both libc++ and libc++abi need to see the inline definitions of __libcpp_refstrings methods, but the `<stdexcept>` header doesn't. However this is an ODR violation and breaks the modules build.

This patch fixes the issue by creating a single class definition in `<stdexcept>` and changing `<__refstring>` to contain only the inline method definitions. This way both `libcxx/src/stdexcept.cpp` and `libcxxabi/src/stdexcept.cpp` see the same declaration in `<stdexcept>` and definitions in `<__refstring>`

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25603

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
8f6e763c49701838c47ab105e81634fc21bc77cf 16-Oct-2015 Benjamin Kramer <benny.kra@googlemail.com> Fix an unfortunate yet old typo that never got attention before r250507.

Should fix the xcode libc++ build.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
99290c6ec8fb6804b168a12ebe19b2c3a79c35e0 16-Oct-2015 Benjamin Kramer <benny.kra@googlemail.com> Remove a long-standing __has_include hack.

This was put in to get libc++ building without libcxxabi. We now have
macros that show that we are building against libcxxabi so use that
instead. This guards against existing but broken cxxabi.h headers on the
system.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@250507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
55622073f48d56027735468408da513417527569 30-Apr-2014 Joerg Sonnenberger <joerg@bec.de> 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.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@207695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
63fbfd688347d6d53b699a3f076dd6388733329c 17-Jan-2014 Alp Toker <alp@nuanti.com> Adjust build fix from r199494 to use C++ casts

Change suggested by Joerg Sonnenberger!

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@199500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
5f58b89ecdd1fe7b67bcb568545cdc83bdf90052 17-Jan-2014 Alp Toker <alp@nuanti.com> Build fix for gcc builtin

The __sync_add_and_fetch() builtin parameter is volatile but clang has
'different' type checking and ends up accepting this code.

Undo the C++ cast from r198505 to get libc++/LLVM building with g++ while this
is investigated.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@199494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
4a07e0e15964e07f60d470471cc5df0cba081750 07-Jan-2014 Joerg Sonnenberger <joerg@bec.de> Replace casts of __impl_ with the correct reinterpret_cast of the
address. Restores the assembly of before r198504.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@198698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
4c6acb5ecd7fab26583353261fd52a9f7ba2f1e0 04-Jan-2014 Joerg Sonnenberger <joerg@bec.de> Switch to using C++ style casts.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@198505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
d0d308f54baaa977292b6ea586a9577aa6e2a8e4 07-Oct-2013 Peter Collingbourne <peter@pcc.me.uk> Make it possible to link against libstdc++ as well as libsupc++ with CMake.

Linking against libstdc++, rather than libsupc++, is probably better
for people who need to link against clients of libstdc++. Because
libsupc++ is provided only as a static library, its globals are not
shared between the static library and the copy linked into libstdc++.
This has been found to cause at least one test failure.

This also removes a number of symbols which were multiply defined
between libstdc++ and libc++, only when linking with libstdc++.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@192075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
9844b6796b54516b6bcb5afd2cd3c10f722c47a4 05-Oct-2013 Howard Hinnant <hhinnant@apple.com> G M: A small patch to fix a couple of warnings in stdexcept.cpp for cl.exe which does not support #pragma visibility.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@191988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
e31c432a33c0181dc52aa9992558243982b9d0ce 22-Aug-2013 Howard Hinnant <hhinnant@apple.com> Glen: replace obsolete _LIBCPP_CANTTHROW with _NOEXCEPT.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
09ca5d49e179f7b078e3456c64c0baf7ef17c68f 30-Jun-2013 Howard Hinnant <hhinnant@apple.com> Matthew Dempsky: Same as stdexcept.cpp in libc++abi: we've already computed 'len strlen(msg)', so we can use memcpy() instead of strcpy().

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
dece7fe6706591d80e4694a986446f756611733c 18-Mar-2013 Marshall Clow <mclow@qualcomm.com> Removed raw references to __APPLE__; now just check to see if it is defined.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@177297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
460b4cadde3f0e7679ddd12151517e949493b691 03-Sep-2012 Howard Hinnant <hhinnant@apple.com> Some minor mingw64 porting tweaks from Glen.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@163120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
4490c4aaed9e24f5dd57bc1260319214ccb97970 08-Aug-2012 Howard Hinnant <hhinnant@apple.com> Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@161497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
c756f5b4e8b2eb4b8c808840f6bc81e504670cf8 19-Apr-2012 Richard Smith <richard-llvm@metafoo.co.uk> libc++: only #include <cxxabi.h> if it exists. This allows libc++ to build
out of the box on Linux systems. If you're building against libc++abi, you
still need to make sure it can find <cxxabi.h> so it knows not to export
symbols which libc++abi provides.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@155091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
e1642e1c00d30993616c7293959b33fe2007ba2e 17-Feb-2012 Howard Hinnant <hhinnant@apple.com> Move typeinfos for exceptions in <stdexcept> to the abi

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@150835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
1e15fd1856a34a4bc0f7c1d649d2e22df9033326 26-May-2011 Howard Hinnant <hhinnant@apple.com> Applied noexcept to everything in [diagnostics] (Chapter 19)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
b64f8b07c104c6cc986570ac8ee0ed16a9f23976 16-Nov-2010 Howard Hinnant <hhinnant@apple.com> license change

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
04acacadca196a2587b52942c33d4fea51411e1b 04-Sep-2010 Daniel Dunbar <daniel@zuster.org> Fix typos, noticed by Clang.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
adff4895b2746f30b271bc219713e7ded5ae9677 24-May-2010 Howard Hinnant <hhinnant@apple.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
f5256e16dfc425c1d466f6308d4026d529ce9e0b 11-May-2010 Howard Hinnant <hhinnant@apple.com> Wiped out some non-ascii characters that snuck into the copyright.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp
bc8d3f97eb5c958007f2713238472e0c1c8fe02c 11-May-2010 Howard Hinnant <hhinnant@apple.com> libcxx initial import

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/src/stdexcept.cpp