Commit Graph

  • be38d82205 Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2 Nico Weber 2013-12-06 00:37:21 +0000
  • a722aca3bf Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2 Nico Weber 2013-12-06 00:35:35 +0000
  • 7a49616b36 Fix minor initialization bug in Registers_x86_64. Nico Weber 2013-12-06 00:11:01 +0000
  • cfbfdd9b55 80-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
  • c22004f143 Fixed 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
  • 59d65a824f Fix indentation of fields in __cxa_exception to line up Mark Seaborn 2013-11-30 17:37:21 +0000
  • d9eb5fc450 On 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
  • 36fd93fd03 Comment correction. syslog() syntax is: Yaron Keren 2013-11-22 12:11:40 +0000
  • 38a0eeb3ad If 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
  • 7be749ac9c Swap contents of UnwindRegistersRestore.s and UnwindRegistersSave.s Nick Kledzik 2013-11-01 00:37:20 +0000
  • 29180116e5 Rename 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
  • 061240c142 Move local Db type out to namespace scope. Howard Hinnant 2013-10-22 16:45:48 +0000
  • 839f7f23c0 unwinder: conditionalise availability Saleem Abdulrasool 2013-10-17 03:57:41 +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
  • 952df57e2c Fix conditionals on __Unwind_SjLj_* functions to only build for SJLJ based architectures Nick Kledzik 2013-10-08 21:57:22 +0000
  • 17814d74f7 Consistent spelling of names. Joerg Sonnenberger 2013-10-08 12:35:07 +0000
  • b78da9875b libcxxabi 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
  • 6c3f675c0b Adding bad_array_length to libc++abi Marshall Clow 2013-09-11 01:42:02 +0000
  • 01c2084f45 Add ability to set OPTIONS for compile Marshall Clow 2013-09-09 23:53:08 +0000
  • 224f7acc36 Change the two last remaining _LIBCPP_CANTTHROW to _NOEXCEPT Jean-Daniel Dupas 2013-08-29 19:19:27 +0000
  • cdf7d557bd Propagate the removal of _LIBCPP_CANTTHROW (r189046) to libcxxabi. This fixes http://llvm.org/bugs/show_bug.cgi?id=16996. Howard Hinnant 2013-08-25 17:00:57 +0000
  • 41458a0681 tip-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
  • 8ad6a220cf I had a buffer mismanagement bug in the demangler. Howard Hinnant 2013-07-26 22:14:53 +0000
  • e9e83878d6 Updated CREDITS.TXT Howard Hinnant 2013-07-02 19:01:59 +0000
  • b2d1f94e76 I'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
  • eb8d46c54e After 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
  • ab8cfb1dfb Filter out '`' in mangled strings and reject them as invalid if found. Howard Hinnant 2013-06-23 03:36:38 +0000
  • f672517e71 I 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
  • 93433df242 Another demangler crasher. Updated test suite to prevent regression. Howard Hinnant 2013-06-20 21:49:34 +0000
  • b4033ff8b4 Protect against invalid mangled names. Add test suite for invalid mangled names. Howard Hinnant 2013-06-20 01:55:07 +0000
  • 19e36dddb0 Demangle objc mangling implemented in r184250 Howard Hinnant 2013-06-19 13:43:18 +0000
  • c62cbea03e Tweaks/cleanups provided by Matthew Dempsky Howard Hinnant 2013-06-17 20:25:21 +0000
  • 6c33e768c1 Demangler update: This now demangles many more (all?) C++11 symbols. Demangler tests updated. Howard Hinnant 2013-06-17 18:10:34 +0000
  • 5dd173b379 Add capability to demangle invocation functions for ObjC blocks. Howard Hinnant 2013-04-10 19:44:03 +0000
  • 6d00feffc8 Bruce Mitchener: Typo fixes. Howard Hinnant 2013-02-15 15:48:49 +0000
  • cba79c6fd9 Partially 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
  • b6ab0a42e1 Update the copyright coredits -- Happy new year 2013! NAKAMURA Takumi 2013-01-01 10:00:19 +0000
  • fc715856f6 Rename 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
  • 06bbbdde3c Remove 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
  • 7e5a907138 3.2 release branch r167707 release_32 Pawel Wodnicki 2012-11-13 19:42:56 +0000
  • 7d39801ef5 Update CREDIT.TXT Howard Hinnant 2012-11-13 15:57:18 +0000
  • f8f7f7fee6 Wen-Han Gu: Fix for http://llvm.org/bugs/show_bug.cgi?id=14312 Exception Table out-of-range but still keep walking. Howard Hinnant 2012-11-12 18:19:15 +0000
  • d004042acd 3.2 release branch r167707 Pawel Wodnicki 2012-11-12 04:19:18 +0000
  • 4f1b1b490f Make 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
  • 33601b1827 Move TargetData to DataLayout. Micah Villmow 2012-10-08 16:29:26 +0000
  • 326aca3713 Set 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
  • 552b14000a Improve the diagnostic messages on dynamic_cast. Howard Hinnant 2012-09-28 17:58:48 +0000
  • 1a0d1bc64f Two 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
  • bafa55560f Updating email address Marshall Clow 2012-09-24 14:27:24 +0000
  • aab600ca0c Rename class __lambda to __lambda_node to avoid clash with gcc. This fixes http://llvm.org/bugs/show_bug.cgi?id=13889 Howard Hinnant 2012-09-21 19:21:37 +0000
  • 6cb5b2821f Tweak use of dlopen to be a little more correct and higher performing. Howard Hinnant 2012-09-21 19:12:56 +0000
  • b62c5886c6 I'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
  • 86ccacd40f Specifically 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
  • f4ce1e270b 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. Howard Hinnant 2012-08-08 16:15:16 +0000
  • 20300c77d8 Fixes 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
  • de2b1090d4 Update status. Howard Hinnant 2012-08-02 22:06:41 +0000
  • 6c08591500 Update CREDITS.TXT Howard Hinnant 2012-08-01 19:24:04 +0000
  • ab0399980a Erik 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
  • 52918c9658 Andrew 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
  • cdb1d55e23 Andrew 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
  • f59526da20 add a link to the libc++ website Sylvestre Ledru 2012-07-20 17:21:42 +0000
  • 921769df6c Add missing #include <stdlib.h> into test which uses ::exit. Richard Smith 2012-07-11 09:37:56 +0000
  • 08115e4bef Don'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
  • 1c8066cf84 Fix bug in cxa_demangle involving template substitution. Howard Hinnant 2012-05-02 15:38:11 +0000
  • cb7f886ccc Make __cxa_new_handler un-mangled Howard Hinnant 2012-04-28 16:46:04 +0000
  • 80e5b1732e Changed 'cause' from 'terminate' to 'uncaught' in default_terminate_handler Howard Hinnant 2012-04-24 17:41:51 +0000
  • 219b371bb3 Richard 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
  • 4cfb63f075 I 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
  • 0f80bb79c0 I'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
  • 1321731d59 Arm fixes in cxa_personality.cpp and a little refactoring. Howard Hinnant 2012-03-17 00:10:52 +0000
  • 1ba2c4bd78 Less lame "concurrency" support Dave Zarzycki 2012-03-15 08:58:08 +0000
  • 2507beff62 Be friendly to when dead_strip doesn't work Dave Zarzycki 2012-03-15 08:58:06 +0000
  • 439ce87946 move default handlers to their own file so they can be overridden at build time (dyld) Nick Kledzik 2012-03-15 01:52:12 +0000
  • 4d590c39af Missed an underscore on the last commit. Howard Hinnant 2012-03-14 19:39:50 +0000
  • fcd21a1f59 Enable __arm__ on apple Howard Hinnant 2012-03-14 19:30:00 +0000
  • a31cad9a68 fix crash log magic Nick Kledzik 2012-03-14 01:16:14 +0000
  • 96f01710bc Enable / silence -Wunused-parameter. Howard Hinnant 2012-03-09 18:01:37 +0000
  • 3edfd1b86d Enable -Wstrict-aliasing=2 -Wstrict-overflow=4. Howard Hinnant 2012-03-08 20:55:13 +0000
  • ffdd8c414f Enable/silence -Wsign-compare. Howard Hinnant 2012-03-08 20:51:01 +0000
  • 30a486dae2 Enable/silence -Wsign-compare. Howard Hinnant 2012-03-08 20:50:28 +0000
  • 91f198a4c8 Enable/silence -Wmissing-field-initializers. Howard Hinnant 2012-03-08 20:32:50 +0000
  • dfa81caf63 Enable/silence -Wunused-variable. Howard Hinnant 2012-03-08 20:23:24 +0000
  • 85bc82e6d9 Enable/silence -Wconversion. Howard Hinnant 2012-03-08 20:16:45 +0000
  • f2ebd5904c Enable/silence -Wshadow. Howard Hinnant 2012-03-08 19:34:58 +0000
  • 3e5c7d0cdb Enable/silence -Wsign-conversion. Howard Hinnant 2012-03-08 18:45:24 +0000
  • 7f9d213dae First attempt at arm support. Howard Hinnant 2012-02-29 22:14:19 +0000
  • 8f28628704 Insert 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
  • ff94a3ab3a And the handlers should be extern C. Howard Hinnant 2012-02-23 17:25:34 +0000
  • fdac5f9274 I 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
  • 74ecc63c3f Pedantic fix: missing newline at EOF Dave Zarzycki 2012-02-22 05:25:00 +0000
  • a2bde87e21 Move typeinfos for exceptions in <stdexcept> to the abi Howard Hinnant 2012-02-17 19:23:47 +0000
  • 3759e4591b Add (reluctantly) a namespace alias for __cxxabiv1. Howard Hinnant 2012-02-17 18:45:44 +0000
  • e045f21bc1 Remove 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
  • 6a16979347 Pushed optimization back up. Crash disappeared with compiler upgrade. Assumed to be due to compiler bug. Howard Hinnant 2012-02-03 18:36:36 +0000
  • 8e0a2d2378 corrected namespace in test Howard Hinnant 2012-02-02 22:00:52 +0000
  • 0240685ed6 Work on restricting symbol visibility. Howard Hinnant 2012-02-02 20:47:28 +0000