be38d82205Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2
Nico Weber
2013-12-06 00:37:21 +0000
a722aca3bfRename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2
Nico Weber
2013-12-06 00:35:35 +0000
7a49616b36Fix minor initialization bug in Registers_x86_64.
Nico Weber
2013-12-06 00:11:01 +0000
cfbfdd9b5580-column wrap a comment in a test
Nico Weber
2013-12-05 21:54:49 +0000
034e79a395[unwind] remove darwin build dependency on <mach-o/dyld_priv.h>
Nick Kledzik
2013-12-05 00:12:03 +0000
c22004f143Fixed a couple of test errors; changed 'const A const *' to 'const A* const'. Thanks to Nico for the catch
Marshall Clow
2013-12-04 05:39:55 +0000
59d65a824fFix indentation of fields in __cxa_exception to line up
Mark Seaborn
2013-11-30 17:37:21 +0000
d9eb5fc450On Windows, typeids are different between DLLs and EXEs, so comparing type_info* will work for typeids from the same compiled file but fail for typeids from a DLL and an executable. Among other things, exceptions are not caught by handlers since can_catch() returns false.
Yaron Keren
2013-11-22 21:43:23 +0000
36fd93fd03Comment correction. syslog() syntax is:
Yaron Keren
2013-11-22 12:11:40 +0000
38a0eeb3adIf libc++ has not declared bad_array_length, then declare it here just so that it gets into the binary.
Howard Hinnant
2013-11-07 17:16:37 +0000
7be749ac9cSwap contents of UnwindRegistersRestore.s and UnwindRegistersSave.s
Nick Kledzik
2013-11-01 00:37:20 +0000
29180116e5Rename LIBUNWIND_AVAIL to LIBUNWIND_UNAVAIL so as to not conflict with other (different) LIBUNWIND_AVAIL define
Nick Kledzik
2013-11-01 00:32:26 +0000
061240c142Move local Db type out to namespace scope.
Howard Hinnant
2013-10-22 16:45:48 +0000
6dc154019d[unwind] Fix unw_init_remote_thread() use to void* instead of thread_t for parameter to match other implementations
Nick Kledzik
2013-10-08 22:59:34 +0000
3dbb334d7a[unwind] add required #include
Nick Kledzik
2013-10-08 22:51:34 +0000
952df57e2cFix conditionals on __Unwind_SjLj_* functions to only build for SJLJ based architectures
Nick Kledzik
2013-10-08 21:57:22 +0000
17814d74f7Consistent spelling of names.
Joerg Sonnenberger
2013-10-08 12:35:07 +0000
b78da9875blibcxxabi contains the runtime support for C++. But, as some folks have realized, it is not complete. It relies on some _Unwind_* functions to be supplied by the OS. That means it cannot be ported to platforms that don’t already have an unwinder.
Nick Kledzik
2013-10-07 21:39:41 +0000
6c3f675c0bAdding bad_array_length to libc++abi
Marshall Clow
2013-09-11 01:42:02 +0000
01c2084f45Add ability to set OPTIONS for compile
Marshall Clow
2013-09-09 23:53:08 +0000
224f7acc36Change the two last remaining _LIBCPP_CANTTHROW to _NOEXCEPT
Jean-Daniel Dupas
2013-08-29 19:19:27 +0000
41458a0681tip-of-trunk clang has corrected some access checks for special members in a virtual inheritance hierarchy. Change a few private inheritances to protected. This change will not impact what the test was testing. This fixes http://llvm.org/bugs/show_bug.cgi?id=16753.
Howard Hinnant
2013-07-30 19:00:45 +0000
8ad6a220cfI had a buffer mismanagement bug in the demangler.
Howard Hinnant
2013-07-26 22:14:53 +0000
e9e83878d6Updated CREDITS.TXT
Howard Hinnant
2013-07-02 19:01:59 +0000
b2d1f94e76I'd no sooner made the last commit when Matthew Dempsky sent me another test case that led me to yet another closely related test case that the current design could not handle. I've now changed the way forward references are handled completely. It wasn't that much code to change. The demangler, when confronted with a forward reference to a template parameter, now parses things twice. During the second parse, all forward references are remembered from the first parse. Test suite updated with new case.
Howard Hinnant
2013-06-23 19:52:45 +0000
eb8d46c54eAfter a private conversation with Arthur O'Dwyer, and a good night's sleep, I believe this fix is a better fix than what I committed in r184656 yesterday. I've basically moved the checking for '`' from the start of the demangling process to the end of it. In the process I discovered that one of the test cases no longer demangled to the expected string. After further investigation I believe this case to not be a valid mangled string, and so I moved the test case to the 'invalid cases'. The reason I believe it is invalid is that it should use T_ instead of T0_ to index the template parameter.
Howard Hinnant
2013-06-23 17:14:35 +0000
ab8cfb1dfbFilter out '`' in mangled strings and reject them as invalid if found.
Howard Hinnant
2013-06-23 03:36:38 +0000
f672517e71I created a random mangled name generator and have thrown about 200 million random strings at the demangler. I succeeded in crashing it twice more and those crashers have been fixed and the test suite updated with the crash cases.
Howard Hinnant
2013-06-21 17:04:24 +0000
93433df242Another demangler crasher. Updated test suite to prevent regression.
Howard Hinnant
2013-06-20 21:49:34 +0000
b4033ff8b4Protect against invalid mangled names. Add test suite for invalid mangled names.
Howard Hinnant
2013-06-20 01:55:07 +0000
19e36dddb0Demangle objc mangling implemented in r184250
Howard Hinnant
2013-06-19 13:43:18 +0000
c62cbea03eTweaks/cleanups provided by Matthew Dempsky
Howard Hinnant
2013-06-17 20:25:21 +0000
6c33e768c1Demangler update: This now demangles many more (all?) C++11 symbols. Demangler tests updated.
Howard Hinnant
2013-06-17 18:10:34 +0000
5dd173b379Add capability to demangle invocation functions for ObjC blocks.
Howard Hinnant
2013-04-10 19:44:03 +0000
6d00feffc8Bruce Mitchener: Typo fixes.
Howard Hinnant
2013-02-15 15:48:49 +0000
cba79c6fd9Partially revert r152770. That commit moved the default handlers to their own file. But it also did some refactoring. It is the latter that is being reverted. The refactoring had accidentally removed the required effect that the default unexpected_handler calls std::terminate(), which is a visible effect.
Howard Hinnant
2013-02-06 19:29:55 +0000
b6ab0a42e1Update the copyright coredits -- Happy new year 2013!
NAKAMURA Takumi
2013-01-01 10:00:19 +0000
fc715856f6Rename class __lambda_node to ___lambda_node to fix compile failure with gcc 4.6 and 4.7 - using "__lambda_node" causes internal compiler error in newer GCC versions
Daniel Malea
2012-12-05 18:55:49 +0000
342f2f9ffa__list::ends_with_template was giving the wrong answer for empty lists. And __parse_unnamed_type_name wasn't properly handling the list of paramters and was not safe against incorrectly mangled lambdas (running past last).
Howard Hinnant
2012-11-30 18:43:50 +0000
06bbbdde3cRemove aborts under __dynamic_cast which were under _LIBCXX_DYNAMIC_FALLBACK. Change all type_info comparisons to use an inlined is_equal helper. However no change in functionality for this latter change at this time. This is just to encapsulate the comparison and make it a little easier to switch back and forth for testing/debugging.
Howard Hinnant
2012-11-15 18:00:42 +0000
4f1b1b490fMake the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy.
Howard Hinnant
2012-10-13 18:45:59 +0000
33601b1827Move TargetData to DataLayout.
Micah Villmow
2012-10-08 16:29:26 +0000
326aca3713Set up code under _LIBCXX_DYNAMIC_FALLBACK which is off by default. For a full description of _LIBCXX_DYNAMIC_FALLBACK, see src/private_typeinfo.cpp.
Howard Hinnant
2012-09-28 22:43:50 +0000
552b14000aImprove the diagnostic messages on dynamic_cast.
Howard Hinnant
2012-09-28 17:58:48 +0000
1a0d1bc64fTwo changes: 1) I still didn't have the ABI correct to match the gcc-4.2 std::string under the exception classes. I think the changes to stdexcept.cpp have got that down now. 2) On Apple platforms I'm seeing visibility bugs in applications with respect to type_info's being hidden. This is causing dynamic_cast to malfunction because there are multiple type_info's running around for one type within an application, making dynamic_cast believe that one type is actually multiple types. As a stop gap measure I'm trying to detect this error, print out an error message, but continue with the most likely desired result. This is all under __APPLE__. This behavior can be expanded to other platforms if desired.
Howard Hinnant
2012-09-28 00:05:34 +0000
6cb5b2821fTweak use of dlopen to be a little more correct and higher performing.
Howard Hinnant
2012-09-21 19:12:56 +0000
b62c5886c6I've added Apple-only behavior that looks for libstdc++ in the same process and if found, checks the string stored in <stdexcept> exception objects to see if it is the gcc empty string singleton before manipulating the reference count. This is done so that if such an exception is created with a zero-length string in libstdc++, libc++abi won't try to delete the memory. This is part of a ongoing process to make libc++ exceptions ABI-compatible with libstdc++-4.2 exceptions, to the point that each library can catch exceptions thrown by the other. If other parties would also like this behavior, the #if __APPLE__ can be broadened.
Howard Hinnant
2012-09-18 21:34:12 +0000
86ccacd40fSpecifically disallow primary-expressions of the form LT_... on the basis of this decition: http://sourcerytools.com/pipermail/cxx-abi-dev/2011-August/002422.html . Failure to disallow this was causing infinite recursion in the demangler when these symbols show up due to mangling bugs. This patch causes the demangler to return an invalid mangled name result rather than crash in infinite recursion.
Howard Hinnant
2012-09-13 23:49:59 +0000
f4ce1e270bChange 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.
Howard Hinnant
2012-08-08 16:15:16 +0000
20300c77d8Fixes apple: #12020687. This was a problem in the demangler with template substitution forward references. That is, sometimes a mangled name refers to a substitution that hasn't yet been defined. The demangler was derferencing a null pointer in this case because it wasn't properly guarded against a forward reference. Test case added to catch this problem.
Howard Hinnant
2012-08-03 22:02:07 +0000
de2b1090d4Update status.
Howard Hinnant
2012-08-02 22:06:41 +0000
6c08591500Update CREDITS.TXT
Howard Hinnant
2012-08-01 19:24:04 +0000
ab0399980aErik Olofsson: This patch adds support for lambda demangling. I fixed this because it crashed lldb when it tried to demangle the added test.
Howard Hinnant
2012-08-01 18:56:46 +0000
52918c9658Andrew Morrow: Mainline clang seems to have recently become more strict about the consistent application of visibility attributes, which causes some new breakage in libcxxabi:
Howard Hinnant
2012-07-29 20:41:19 +0000
cdb1d55e23Andrew Morrow: The variable 't1' on line 10188 of cxa_demangle.cpp is uninitialized which generates -Wsometimes-uninitialized. Howard: The only thing this patch is missing is an update to CREDITS.TXT.
Howard Hinnant
2012-07-29 16:14:52 +0000
f59526da20add a link to the libc++ website
Sylvestre Ledru
2012-07-20 17:21:42 +0000
921769df6cAdd missing #include <stdlib.h> into test which uses ::exit.
Richard Smith
2012-07-11 09:37:56 +0000
08115e4befDon't dereference root in __parse_ctor_dtor_name unless it is known to not be null.
Howard Hinnant
2012-06-15 21:57:51 +0000
1c8066cf84Fix bug in cxa_demangle involving template substitution.
Howard Hinnant
2012-05-02 15:38:11 +0000
cb7f886cccMake __cxa_new_handler un-mangled
Howard Hinnant
2012-04-28 16:46:04 +0000
80e5b1732eChanged 'cause' from 'terminate' to 'uncaught' in default_terminate_handler
Howard Hinnant
2012-04-24 17:41:51 +0000
219b371bb3Richard Smith: __int128 is a GNU keyword which clang 3.1 supports. This usage of it as an identifier will need to be renamed.
Howard Hinnant
2012-04-18 20:55:06 +0000
4cfb63f075I would really like to write the handlers in terms of C++11 atomics. This would give us the best performance, portablity, and safety tradeoff. Unfortunately I can not yet do that. So I've put the desired code in comments, and reverted the handler getters to the slower but safer legacy atomic intrinsics.
Howard Hinnant
2012-03-19 16:56:51 +0000
0f80bb79c0I've moved __cxa_terminate_handler, __cxa_unexpected_handler and __cxa_new_handler from the public header cxxabi.h into the private header cxa_handlers.hpp. During this move I've also moved them from namespace __cxxabiapple into the global namespace. They are, and have always been extern C and so the namespace (or lack of it) does not affect their ABI. In general external clients should not reference these symbols. They are atomic variables and will be changing into C++11 atomic variables in the future. However for those few clients who really need access to them, their name, mangling, size, alignment and layout will remain stable. You just may need your own declaration of them. Include guards have been added to the private header cxa_exception.hpp. The private header cxa_default_handlers.hpp has been removed and the default handlers are now file-static. Include guards have been added to the private header cxa_handlers.hpp.
Howard Hinnant
2012-03-19 16:20:34 +0000
1321731d59Arm fixes in cxa_personality.cpp and a little refactoring.
Howard Hinnant
2012-03-17 00:10:52 +0000
1ba2c4bd78Less lame "concurrency" support
Dave Zarzycki
2012-03-15 08:58:08 +0000
2507beff62Be friendly to when dead_strip doesn't work
Dave Zarzycki
2012-03-15 08:58:06 +0000
439ce87946move default handlers to their own file so they can be overridden at build time (dyld)
Nick Kledzik
2012-03-15 01:52:12 +0000
4d590c39afMissed an underscore on the last commit.
Howard Hinnant
2012-03-14 19:39:50 +0000
fcd21a1f59Enable __arm__ on apple
Howard Hinnant
2012-03-14 19:30:00 +0000
a31cad9a68fix crash log magic
Nick Kledzik
2012-03-14 01:16:14 +0000
96f01710bcEnable / silence -Wunused-parameter.
Howard Hinnant
2012-03-09 18:01:37 +0000
3edfd1b86dEnable -Wstrict-aliasing=2 -Wstrict-overflow=4.
Howard Hinnant
2012-03-08 20:55:13 +0000
ffdd8c414fEnable/silence -Wsign-compare.
Howard Hinnant
2012-03-08 20:51:01 +0000
30a486dae2Enable/silence -Wsign-compare.
Howard Hinnant
2012-03-08 20:50:28 +0000
91f198a4c8Enable/silence -Wmissing-field-initializers.
Howard Hinnant
2012-03-08 20:32:50 +0000
dfa81caf63Enable/silence -Wunused-variable.
Howard Hinnant
2012-03-08 20:23:24 +0000
85bc82e6d9Enable/silence -Wconversion.
Howard Hinnant
2012-03-08 20:16:45 +0000
f2ebd5904cEnable/silence -Wshadow.
Howard Hinnant
2012-03-08 19:34:58 +0000
3e5c7d0cdbEnable/silence -Wsign-conversion.
Howard Hinnant
2012-03-08 18:45:24 +0000
7f9d213daeFirst attempt at arm support.
Howard Hinnant
2012-02-29 22:14:19 +0000
8f28628704Insert a couple of dummy virtual functions to ease low level binary compatibility with other low level tools.
Howard Hinnant
2012-02-23 21:09:29 +0000
ff94a3ab3aAnd the handlers should be extern C.
Howard Hinnant
2012-02-23 17:25:34 +0000
fdac5f9274I had originally made the handler function pointers a static internal detail, not accessible to the outside world. I did this because they must be accessed in a thread-safe manner, and the library provides thread-safe getters and setters for these. However I am at least temporarily making them public and giving them the Apple-extension names. In the future these may disappear again, and I think that would probably be a good idea.
Howard Hinnant
2012-02-23 15:32:07 +0000
74ecc63c3fPedantic fix: missing newline at EOF
Dave Zarzycki
2012-02-22 05:25:00 +0000
a2bde87e21Move typeinfos for exceptions in <stdexcept> to the abi
Howard Hinnant
2012-02-17 19:23:47 +0000
3759e4591bAdd (reluctantly) a namespace alias for __cxxabiv1.
Howard Hinnant
2012-02-17 18:45:44 +0000
e045f21bc1Remove outdated information from comment.
Howard Hinnant
2012-02-17 18:45:04 +0000
9a365feb16__gxx_personality_v0 and __cxa_call_unexpected are complete on darwin and I *think* linux (not positive), but still unimplemented on arm.
Howard Hinnant
2012-02-03 20:53:52 +0000
6a16979347Pushed optimization back up. Crash disappeared with compiler upgrade. Assumed to be due to compiler bug.
Howard Hinnant
2012-02-03 18:36:36 +0000
8e0a2d2378corrected namespace in test
Howard Hinnant
2012-02-02 22:00:52 +0000
0240685ed6Work on restricting symbol visibility.
Howard Hinnant
2012-02-02 20:47:28 +0000