Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [libcxxabi] Disallow Base to Derived conversions for catching pointers to ↵ | Eric Fiselier | 2015-04-06 | 1 | -2/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | members. Summary: I accidentally implemented the 4.11 [conv.mem] conversions for libc++abi in a recent patch. @majnemer pointed out that 5.13 [except.handle] only allows the pointer conversions in 4.10 and not those is 4.11. This patch no longer allows the following example code: ```c++ struct A {}; struct B : public A {}; int main() { try { throw (int A::*)0; } catch (int B::*) { // exception caught here. } } ``` Reviewers: mclow.lists, jroelofs, majnemer Reviewed By: majnemer Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D8845 llvm-svn: 234254 | ||||
* | [libcxxabi] Fix multi-level pointer conversions and pointer to member ↵ | Eric Fiselier | 2015-04-02 | 1 | -0/+145 |
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 |