llvm-project/libcxxabi/test
Eric Fiselier 1b00fc5d81 [libcxxabi] Fix multi-level pointer conversions and pointer to member conversion detection.
Summary:
Currently there are bugs in out detection of multi-level pointer conversions and pointer to member conversions. This patch fixes the following issues.

* Allow multi-level pointers with different nested qualifiers.
* Allow multi-level mixed pointers to objects and pointers to members with different nested qualifiers.
* Allow conversions from `int Base::*` to `int Derived::*` but only for non-nested pointers.

There is still some work that needs to be done to clean this patch up but I want to get some input on it.
Open questions:

* Does `__pointer_to_member_type_info::can_catch(...)` need to adjust the pointer if a base to derived conversion is performed?


Reviewers: danalbert, compnerd, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D8758

llvm-svn: 233984
2015-04-02 23:26:37 +00:00
..
libcxxabi Let libc++'s LIT configuration setup our linker paths and env. 2015-03-17 19:45:21 +00:00
support Fix comment on end of #endif to match #if 2014-11-25 03:19:02 +00:00
CMakeLists.txt [libcxxabi] Build both static and shared versions of libc++abi by default. 2015-03-03 15:59:09 +00:00
backtrace_test.pass.cpp Enable backtrace_test for ARM. 2015-01-22 13:40:16 +00:00
catch_array_01.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_array_02.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_class_01.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_class_02.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_class_03.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_class_04.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_const_pointer_nullptr.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_function_01.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_function_02.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_in_noexcept.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_member_data_pointer_01.pass.cpp [libcxxabi] Fix multi-level pointer conversions and pointer to member conversion detection. 2015-04-02 23:26:37 +00:00
catch_member_function_pointer_01.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_member_pointer_nullptr.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_multi_level_pointer.pass.cpp [libcxxabi] Fix multi-level pointer conversions and pointer to member conversion detection. 2015-04-02 23:26:37 +00:00
catch_pointer_nullptr.pass.cpp [libcxxabi] Fix multi-level pointer conversions and pointer to member conversion detection. 2015-04-02 23:26:37 +00:00
catch_pointer_reference.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_ptr.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
catch_ptr_02.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
cxa_thread_atexit_test.pass.cpp Make test require 'linux' instead of 'linux2' 2015-02-03 23:50:47 +00:00
dynamic_cast3.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
dynamic_cast5.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
dynamic_cast14.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
dynamic_cast_stress.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
inherited_exception.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
lit.cfg Fix libcxxabi's library and object root for tests. 2015-02-11 01:07:48 +00:00
lit.site.cfg.in Let libc++'s LIT configuration setup our linker paths and env. 2015-03-17 19:45:21 +00:00
test_aux_runtime.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_aux_runtime_op_array_new.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_demangle.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_exception_storage.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_fallback_malloc.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_guard.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_vector1.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_vector2.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
test_vector3.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
testit Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_01.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_02.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_03.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_04.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_05.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00
unwind_06.pass.cpp Rename all of the tests in preparation for merging lit configs with libcxx 2015-01-21 19:05:37 +00:00