1*04e0dc4aSTimo Kreuzer // 2*04e0dc4aSTimo Kreuzer // tmpfile_initializer.cpp 3*04e0dc4aSTimo Kreuzer // 4*04e0dc4aSTimo Kreuzer // Copyright (c) Microsoft Corporation. All rights reserved. 5*04e0dc4aSTimo Kreuzer // 6*04e0dc4aSTimo Kreuzer // CRT initializers and terminators have been extracted from the main CRT sources 7*04e0dc4aSTimo Kreuzer // to enable the CRT DLL to be built with LTCG enabled. The source files in which 8*04e0dc4aSTimo Kreuzer // the CRT initializers and terminators are defined cannot be compiled as /GL 9*04e0dc4aSTimo Kreuzer // because the compiler will optimize them away during link-time code generation. 10*04e0dc4aSTimo Kreuzer // We inhibit this optimization by defining the initializers and terminators in 11*04e0dc4aSTimo Kreuzer // separate source files that are not compiled with /GL. 12*04e0dc4aSTimo Kreuzer // 13*04e0dc4aSTimo Kreuzer #include <corecrt_internal.h> 14*04e0dc4aSTimo Kreuzer 15*04e0dc4aSTimo Kreuzer extern "C" void __cdecl __acrt_uninitialize_tmpfile(); 16*04e0dc4aSTimo Kreuzer 17*04e0dc4aSTimo Kreuzer extern "C" _CRTALLOC(".CRT$XPX") _PVFV const __acrt_tmpfile_terminator = __acrt_uninitialize_tmpfile; 18