# Copyright (C) 2005-2021 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
__Unwind_Backtrace
__Unwind_DeleteException
__Unwind_FindEnclosingFunction
__Unwind_Find_FDE
__Unwind_ForcedUnwind
__Unwind_GetCFA
__Unwind_GetDataRelBase
__Unwind_GetGR
__Unwind_GetIP
__Unwind_GetLanguageSpecificData
__Unwind_GetRegionStart
__Unwind_GetTextRelBase
__Unwind_RaiseException
__Unwind_Resume
__Unwind_Resume_or_Rethrow
__Unwind_SetGR
__Unwind_SetIP
___absvdi2
___absvsi2
___addvdi3
___addvsi3
___ashldi3
___ashrdi3
___clear_cache
___clzdi2
___clzsi2
___cmpdi2
___ctzdi2
___ctzsi2
___deregister_frame
___deregister_frame_info
___deregister_frame_info_bases
___divdi3
___enable_execute_stack
___ffsdi2
___fixdfdi
___fixsfdi
___fixtfdi
___fixunsdfdi
___fixunsdfsi
___fixunssfdi
___fixunssfsi
___fixunstfdi
___floatdidf
___floatdisf
___floatditf
___gcc_personality_v0
___gcc_qadd
___gcc_qdiv
___gcc_qmul
___gcc_qsub
___lshrdi3
___moddi3
___muldi3
___mulvdi3
___mulvsi3
___negdi2
___negvdi2
___negvsi2
___paritydi2
___paritysi2
___popcountdi2
___popcountsi2
___register_frame
___register_frame_info
___register_frame_info_bases
___register_frame_info_table
___register_frame_info_table_bases
___register_frame_table
___subvdi3
___subvsi3
___trampoline_setup
___ucmpdi2
___udivdi3
___udivmoddi4
___umoddi3
