/*
 * kmp_import.cpp
 */


//===----------------------------------------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.txt for details.
//
//===----------------------------------------------------------------------===//


/* Object generated from this source file is linked to Windows* OS DLL import
   library (libompmd.lib) only! It is not a part of regular static or dynamic
   OpenMP RTL. Any code that just needs to go in the libompmd.lib (but not in
   libompmt.lib and libompmd.dll) should be placed in this file. */

#ifdef __cplusplus
extern "C" {
#endif

/*These symbols are required for mutual exclusion with Microsoft OpenMP RTL
  (and compatibility with MS Compiler). */

int _You_must_link_with_exactly_one_OpenMP_library = 1;
int _You_must_link_with_Intel_OpenMP_library = 1;
int _You_must_link_with_Microsoft_OpenMP_library = 1;

#ifdef __cplusplus
}
#endif

// end of file //
