| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
foreign. Even other C++ exceptions.
llvm-svn: 149518
|
|
|
|
| |
llvm-svn: 149515
|
|
|
|
| |
llvm-svn: 149513
|
|
|
|
|
|
| |
crasher on -O3. I've looked for a libc++abi bug and can't find one. I'm suspecting clang optimizer bug. But I don't have a good test case at the moment. Deferring investigation on this for now as I will soon be developing more and smaller tests.
llvm-svn: 149414
|
|
|
|
|
|
| |
the type of exception instead of the mangled name.
llvm-svn: 149409
|
|
|
|
| |
llvm-svn: 149403
|
|
|
|
|
|
| |
rethrows the same exception then needed information gets overwritten in the original exception header. Therefore save it locally before executing the unexpected_handler.
llvm-svn: 149400
|
|
|
|
|
|
| |
table if the action entry is zero.
llvm-svn: 149389
|
|
|
|
|
|
| |
caught-but-unhandled exception, and choose the handler out of that if found.
llvm-svn: 149329
|
|
|
|
|
|
| |
lists.
llvm-svn: 149272
|
|
|
|
| |
llvm-svn: 149271
|
|
|
|
|
|
| |
war on throw specs, both old and new style. Except where we have already publicly exposed the throw spec, I'm getting rid of them. They may come back later. But they seem somewhat prone to cyclic dependencies here. The throw spec implies compiler generated code that this library has to jump to during stack unwinding. I'd like to minimize the possiblity that the code used to properly make that jump is itself creating such jumps.
llvm-svn: 149251
|
|
|
|
| |
llvm-svn: 149158
|
|
|
|
| |
llvm-svn: 149157
|
|
|
|
|
|
| |
times, and I'm still not quite sure I have them correct.
llvm-svn: 149154
|
|
|
|
|
|
| |
the testing of libc++abi.dylib at this point in time.
llvm-svn: 148967
|
|
|
|
| |
llvm-svn: 148966
|
|
|
|
|
|
| |
to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall. Thanks John.
llvm-svn: 148965
|
|
|
|
|
|
| |
comment regarding reentrancy brought up by John McCall. Thanks John.
llvm-svn: 148963
|
|
|
|
|
|
| |
and link all of the source files into a dylib. Prior to this substitution the changed functions were calling __cxa_call_unexpected which isn't implemented yet. However in none of these cases do we actaully want __cxa_call_unexpected to be called. Primative buildit script added.
llvm-svn: 148880
|
|
|
|
|
|
| |
uncaught_exception() from cxa_vector.cpp. libc++abi is very nearly a self-contained (though not complete) library now.
llvm-svn: 148866
|
|
|
|
|
|
| |
testing purposes. We've agreed to simply rename fallback_malloc.cpp to fallback_malloc.ipp. Thanks Marshall.
llvm-svn: 148863
|
|
|
|
|
|
| |
under #DEBUG (again).
llvm-svn: 148860
|
|
|
|
|
|
| |
header. I've manually included it into the only place it is used: cxa_exception.cpp.
llvm-svn: 148854
|
|
|
|
| |
llvm-svn: 148853
|
|
|
|
|
|
| |
Thanks for the suggestion Doug. The use is consistent with how the same header is used in llvm/lib/Support/PrettyStackTrace.cpp (though there autoconfig is used instead of __has_include).
llvm-svn: 148851
|
|
|
|
|
|
| |
default_terminate_handler. Recovered the equivalent functionality at a lower level.
llvm-svn: 148830
|
|
|
|
|
|
| |
kOurDependentExceptionClass from source to header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed.
llvm-svn: 148829
|
|
|
|
|
|
| |
header so that they can be used in multiple sources. This is a private header, these constants are not publicly exposed.
llvm-svn: 148827
|
|
|
|
| |
llvm-svn: 148763
|
|
|
|
| |
llvm-svn: 148754
|
|
|
|
|
|
| |
script which I'm still working on. I also added a struct for the crash reporter on __APPLE__.
llvm-svn: 148752
|
|
|
|
|
|
| |
returning null if __cxa_get_globals() hasn't been called yet. However it doesn't reliably do that, at least on OS X if __cxa_get_globals_fast() is called prior to pthread_key_create() running. Our choice is to either limit our use of __cxa_get_globals_fast() more than we have, or to have __cxa_get_globals_fast() initialize with pthread_key_create() if necessary. I chose the latter, and replaced pthread_once with a C++11 local static (which should do the same thing).
llvm-svn: 148750
|
|
|
|
| |
llvm-svn: 148749
|
|
|
|
| |
llvm-svn: 148713
|
|
|
|
|
|
| |
setting the adjusted pointer to the caught object appearing in the catch clause.
llvm-svn: 148666
|
|
|
|
|
|
| |
and the void* to the thrown object. So I've gone through these two files and attempted to institute a consistent variable naming scheme, and in a few instances, turned void* into a concrete* to have the type system help me out. No change in functionality for this commit is intended.
llvm-svn: 148663
|
|
|
|
|
|
| |
other type_info-derived classes. This is where all of the virtual functions that serve as details of the inner-workings of type_info will live (safely hidden from public view). All type_info objects will be safely down-castable to __shim_type_info, so as to access implementation detail virtual functions. Also temporarily add some print/display statements to each type_info-derived class. This is in support of the continuing development on the personality function.
llvm-svn: 148647
|
|
|
|
|
|
| |
then try to break out of the loop early, eliminate the attempt to break out of the loop after the last search. And with that, I'm declaring __dynamic_cast done. Though if anyone sees any problems, has suggestions for improvements, or wants to contribute some test cases, that is certainly welcome feedback.
llvm-svn: 148246
|
|
|
|
|
|
| |
timings to all of the tests.
llvm-svn: 148241
|
|
|
|
|
|
| |
of code rearrangement, renaming, and better commenting. This exercise has exposed and fixed a few more bugs. I've also added several more tests (there's definitely a need for more tests here).
llvm-svn: 148227
|
|
|
|
| |
llvm-svn: 148180
|
|
|
|
|
|
| |
code rearrangement optimizations (putting most likely 'if' first in an if-else series. And some major optimizations which involve stopping the search prior to an exhaustive walk over the entire tree. Some of these stops are because an ambiguity is detected earlier. And some of the short circuiting is due to the information from the bits __diamond_shaped_mask and __non_diamond_repeat_mask. The stress test checked in last night is now about 28% faster for the B<Width/2, Depth> -O3 case. I'm still playing with some more optimization possibilities but I'm not sure they will play out.
llvm-svn: 148153
|
|
|
|
|
|
| |
performance. So far I haven't noticed any performance difference between this new __dynamic_cast and gcc's implementation. But I've barely started looking. Also adding a couple of tests which come straight out of the standard.
llvm-svn: 148046
|
|
|
|
|
|
| |
comprehensive test for when there are only 3 types in place. I need to do something similar for 4 and maybe more types, but I'm not sure how comprehensive I can make the test at 4 and above types.
llvm-svn: 148038
|
|
|
|
|
|
| |
code in here that needs to be stripped out. And many, many unit tests need to be written. And comments and probably code cleanliness needs to be improved. But I *think* the basic algorithm is sound. There also may still be some oportunities for algorithm optimization, I'm not positive.
llvm-svn: 147981
|
|
|
|
|
|
| |
statements that are not intended to be in the finished product. However some of the dubbing statements themselves contain important documentation such as how to navigate a __class_type_info hierarchy, documenting object offset and inheritance access. The intention is that this debugging code will migrate into both actual code and comments. And capturing it here so that there is no chance this stuff will be lost.
llvm-svn: 147898
|
|
|
|
| |
llvm-svn: 147776
|
|
|
|
|
|
| |
way to go. But my understanding of what it is supposed to do continues to improve. I am currently contemplating whether I need to implement typeinfo before completing __gxx_personality_v0 in order to get matching catch handlers correct.
llvm-svn: 147761
|
|
|
|
|
|
| |
down to fix these yet. Just don't want anything to fall through the cracks.
llvm-svn: 147760
|