1*04e0dc4aSTimo Kreuzer //
2*04e0dc4aSTimo Kreuzer // fma3_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" int __cdecl __acrt_initialize_fma3();
16*04e0dc4aSTimo Kreuzer 
17*04e0dc4aSTimo Kreuzer extern "C" _CRTALLOC(".CRT$XIC") _PIFV const __acrt_tran_fma3_initializer = __acrt_initialize_fma3;
18