1 // Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009 2 // Free Software Foundation 3 // 4 // This file is part of GCC. 5 // 6 // GCC is free software; you can redistribute it and/or modify 7 // it under the terms of the GNU General Public License as published by 8 // the Free Software Foundation; either version 3, or (at your option) 9 // any later version. 10 11 // GCC is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // Under Section 7 of GPL version 3, you are granted additional 17 // permissions described in the GCC Runtime Library Exception, version 18 // 3.1, as published by the Free Software Foundation. 19 20 // You should have received a copy of the GNU General Public License and 21 // a copy of the GCC Runtime Library Exception along with this program; 22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 // <http://www.gnu.org/licenses/>. 24 25 #include "tinfo.h" 26 27 namespace __cxxabiv1 { 28 29 __pointer_to_member_type_info:: 30 ~__pointer_to_member_type_info () 31 {} 32 33 bool __pointer_to_member_type_info:: 34 __pointer_catch (const __pbase_type_info *thr_type, 35 void **thr_obj, 36 unsigned outer) const 37 { 38 // This static cast is always valid, as our caller will have determined that 39 // thr_type is really a __pointer_to_member_type_info. 40 const __pointer_to_member_type_info *thrown_type = 41 static_cast <const __pointer_to_member_type_info *> (thr_type); 42 43 if (*__context != *thrown_type->__context) 44 return false; // not pointers to member of same class 45 46 return __pbase_type_info::__pointer_catch (thrown_type, thr_obj, outer); 47 } 48 49 } 50