| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Demangler tests updated.
llvm-svn: 184097
|
|
|
|
| |
llvm-svn: 179208
|
|
|
|
| |
llvm-svn: 175275
|
|
|
|
|
|
| |
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.
llvm-svn: 174532
|
|
|
|
| |
llvm-svn: 171342
|
|
|
|
|
|
|
|
| |
4.6 and 4.7
- using "__lambda_node" causes internal compiler error in newer GCC versions
llvm-svn: 169402
|
|
|
|
|
|
| |
__parse_unnamed_type_name wasn't properly handling the list of paramters and was not safe against incorrectly mangled lambdas (running past last).
llvm-svn: 169022
|
|
|
|
|
|
| |
_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.
llvm-svn: 168052
|
|
|
|
| |
llvm-svn: 167847
|
|
|
|
|
|
| |
Table out-of-range but still keep walking.
llvm-svn: 167733
|
|
|
|
|
|
| |
failing dynamic_casts that a few applications are doing on the type_info hierarchy.
llvm-svn: 165883
|
|
|
|
| |
llvm-svn: 165397
|
|
|
|
|
|
| |
full description of _LIBCXX_DYNAMIC_FALLBACK, see src/private_typeinfo.cpp.
llvm-svn: 164863
|
|
|
|
| |
llvm-svn: 164833
|
|
|
|
|
|
| |
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.
llvm-svn: 164809
|
|
|
|
| |
llvm-svn: 164490
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=13889
llvm-svn: 164405
|
|
|
|
| |
llvm-svn: 164404
|
|
|
|
|
|
| |
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.
llvm-svn: 164170
|
|
|
|
|
|
| |
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.
llvm-svn: 163859
|
|
|
|
|
|
| |
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.
llvm-svn: 161496
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 161267
|
|
|
|
| |
llvm-svn: 161221
|
|
|
|
| |
llvm-svn: 161129
|
|
|
|
|
|
|
|
| |
because it crashed lldb when it tried to demangle the added test.
Not sure how it should identify the lambda so that might need changing from the current 'lambdax':: Howard: Please patch CREDITS.TXT.
llvm-svn: 161125
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about the
consistent application of visibility attributes, which causes some new
breakage in libcxxabi:
In file included from src/libcxxabi/src/cxa_default_handlers.cpp:19:
src/libcxxabi/src/private_typeinfo.h:123:23: error: visibility does
not match previous declaration
class __attribute__ ((__visibility__(default))) __class_type_info
^
src/libcxxabi/src/private_typeinfo.h:19:13: note: previous attribute is here
#pragma GCC visibility push(hidden)
^
1 error generated.
The forward declaration of __class_type_info is picking up hidden
visibility from the #pragma, which conflicts with the default
visibility applied when the class is later fully declared. I'm
assuming that the full declaration has it right (and that the
diagnostic is correct), so the attached patch applies the default
visibility attribute to the forward declaration.
llvm-svn: 160933
|
|
|
|
|
|
|
|
| |
uninitialized
which generates -Wsometimes-uninitialized. Howard: The only thing this patch is missing is an update to CREDITS.TXT.
llvm-svn: 160932
|
|
|
|
| |
llvm-svn: 160553
|
|
|
|
| |
llvm-svn: 160039
|
|
|
|
|
|
| |
be null.
llvm-svn: 158556
|
|
|
|
| |
llvm-svn: 155994
|
|
|
|
| |
llvm-svn: 155763
|
|
|
|
| |
llvm-svn: 155452
|
|
|
|
|
|
| |
usage of it as an identifier will need to be renamed.
llvm-svn: 155044
|
|
|
|
|
|
| |
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.
llvm-svn: 153041
|
|
|
|
|
|
| |
__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.
llvm-svn: 153039
|
|
|
|
| |
llvm-svn: 152966
|
|
|
|
|
|
|
|
| |
These APIs aren't thread safe, but they're pretending to be. Let's at
least make the getter as fast as they can be. The setters are a lost
cause unless the API can be fixed.
llvm-svn: 152786
|
|
|
|
|
|
| |
Apple Radar: 11053417
llvm-svn: 152785
|
|
|
|
|
|
| |
time (dyld)
llvm-svn: 152770
|
|
|
|
| |
llvm-svn: 152736
|
|
|
|
| |
llvm-svn: 152735
|
|
|
|
| |
llvm-svn: 152693
|
|
|
|
| |
llvm-svn: 152415
|
|
|
|
| |
llvm-svn: 152338
|
|
|
|
| |
llvm-svn: 152336
|
|
|
|
| |
llvm-svn: 152335
|
|
|
|
| |
llvm-svn: 152334
|
|
|
|
| |
llvm-svn: 152329
|
|
|
|
| |
llvm-svn: 152328
|