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