History log of /external/libcxxabi/test/dynamic_cast_stress.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
830713c63ecaf0a5d7690db92f83f2741754de15 01-Feb-2012 Howard Hinnant <hhinnant@apple.com> More test cases concentrating on catching class types.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/test/dynamic_cast_stress.cpp
9fb5709499823d560501170735097ba77152aa5d 31-Jan-2012 Howard Hinnant <hhinnant@apple.com> Drop the stress a notch on dynamic_cast_stress.cpp. Otherwise it occasionally causes clang to crash. Put a noexcept(false) on a throwing destructor in test_vector1.cpp. The test now passes for both C++03 and C++11 modes. Add testit script. All tests are now PASSING :-)

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@149413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/test/dynamic_cast_stress.cpp
65255631de793131622f701df9075dfd78abfc50 16-Jan-2012 Howard Hinnant <hhinnant@apple.com> One more small optimization: Where possible, for loops that do a search and 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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/test/dynamic_cast_stress.cpp
1309366d3676ca5a34bea0388ad2d2dd5701dc9b 16-Jan-2012 Howard Hinnant <hhinnant@apple.com> I think this is getting close on __dynamic_cast. There's been quite a bit 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).

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/test/dynamic_cast_stress.cpp
a39c1045016e51a6c4a834e02fe158373af2b49d 13-Jan-2012 Howard Hinnant <hhinnant@apple.com> Enclosed is a stress test for dynamic_cast. It stresses both libc++abi, and clang itself. It creates a ridiculously large class hierarchy using variadic templates. You can specify both the width and depth of the class hierarchy. And you can specify whether the cast is to the actual run time type, or to an intermediate layer in the class. About 1/3 of the time I compile this, it crashes the compiler. There seems to be an uninitialized area of memory, and I'm probably blowing past an assumption on class hierarchy size within clang (and understandably so). I can get it work most of the time with a class hierarchy width of 20 and a depth of 7. I'm making timings with both -O3 and -Os, using both cast to root and cast to intermediate, on both libc++abi, and gcc's dynamic_cast. I've put the results in a comment/table at the bottom of the test.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@148083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxxabi/test/dynamic_cast_stress.cpp