1*06c3fb27SDimitry Andric //===-- crtend.c - End of constructors and destructors --------------------===// 2*06c3fb27SDimitry Andric // 3*06c3fb27SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*06c3fb27SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*06c3fb27SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*06c3fb27SDimitry Andric // 7*06c3fb27SDimitry Andric //===----------------------------------------------------------------------===// 8*06c3fb27SDimitry Andric 9*06c3fb27SDimitry Andric #include <stdint.h> 10*06c3fb27SDimitry Andric 11*06c3fb27SDimitry Andric // Put 4-byte zero which is the length field in FDE at the end as a terminator. 12*06c3fb27SDimitry Andric const int32_t __EH_FRAME_LIST_END__[] 13*06c3fb27SDimitry Andric __attribute__((section(".eh_frame"), aligned(sizeof(int32_t)), 14*06c3fb27SDimitry Andric visibility("hidden"), used)) = {0}; 15*06c3fb27SDimitry Andric 16*06c3fb27SDimitry Andric #ifndef CRT_HAS_INITFINI_ARRAY 17*06c3fb27SDimitry Andric typedef void (*fp)(void); 18*06c3fb27SDimitry Andric fp __CTOR_LIST_END__[] 19*06c3fb27SDimitry Andric __attribute__((section(".ctors"), visibility("hidden"), used)) = {0}; 20*06c3fb27SDimitry Andric fp __DTOR_LIST_END__[] 21*06c3fb27SDimitry Andric __attribute__((section(".dtors"), visibility("hidden"), used)) = {0}; 22*06c3fb27SDimitry Andric #endif 23