Environment: Windows SDK 10.0.15063
Affected products: Intel(R) C++ Compiler 18.0 and previous versions.
Problem Description :
This guard macro is defined inside Intel mathimf.h to make sure Microsoft's math header is not included as shown below:
#if defined(_WIN32) || defined(_WIN64) # if defined(_INC_MATH) # error "<mathimf.h> is incompatible with system <math.h>!" # else # define _INC_MATH /* Prevent possible inclusion of MS <math.h> below */ # define __MATH_H_INCLUDED /* Prevent possible inclusion of Intel <math.h> below */ # define __COMPLEX_H_INCLUDED /* Prevent possible inclusion of Intel <complex.h> below */ # endif #endif
In versions of Windows SDK prior to 10.0.15063.0, the math header from Microsoft had the following guard macro:
#ifndef _INC_MATH #define _INC_MATH
But with Windows SDK 10.0.15063.0 and above, the guard macro is taken away (please check corecrt_math.h shipped with Microsoft Compiler):
#pragma once #define _INC_MATH
Test Program to reproduce the issue:
#include<mathimf.h> #include<memory>
Compilation error message:
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.4.246 Build 20160811 Copyright (C) 1985-2016 Intel Corporation. All rights reserved. testissue.cpp C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(24): error: invalid redeclaration of type name "____exception" (declared at line 1305 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") struct _exception ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(89): warning #47: incompatible redefinition of macro "INFINITY" (declared at line 152 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(90): warning #47: incompatible redefinition of macro "HUGE_VAL" (declared at line 150 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define HUGE_VAL ((double)INFINITY) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(91): warning #47: incompatible redefinition of macro "HUGE_VALF" (declared at line 146 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define HUGE_VALF ((float)INFINITY) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(92): warning #47: incompatible redefinition of macro "HUGE_VALL" (declared at line 148 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define HUGE_VALL ((long double)INFINITY) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(93): warning #47: incompatible redefinition of macro "NAN" (declared at line 141 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define NAN ((float)(INFINITY * 0.0F)) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(100): warning #47: incompatible redefinition of macro "FP_INFINITE" (declared at line 220 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_INFINITE _INFCODE ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(101): warning #47: incompatible redefinition of macro "FP_NAN" (declared at line 219 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_NAN _NANCODE ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(102): warning #47: incompatible redefinition of macro "FP_NORMAL" (declared at line 223 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_NORMAL _FINITE ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(103): warning #47: incompatible redefinition of macro "FP_SUBNORMAL" (declared at line 222 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_SUBNORMAL _DENORM ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(104): warning #47: incompatible redefinition of macro "FP_ZERO" (declared at line 221 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_ZERO 0 ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(107): warning #47: incompatible redefinition of macro "FP_ILOGB0" (declared at line 131 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_ILOGB0 (-0x7fffffff - _C2) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(108): warning #47: incompatible redefinition of macro "FP_ILOGBNAN" (declared at line 132 of "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.4.246\windows\compiler\include\mathimf.h") #define FP_ILOGBNAN 0x7fffffff ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(289): error: expected an identifier _Check_return_ inline int fpclassify(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(289): error: expected a ")" _Check_return_ inline int fpclassify(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(289): error: expected a ")" _Check_return_ inline int fpclassify(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(289): error: expected a "{" _Check_return_ inline int fpclassify(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(294): error: expected an identifier _Check_return_ inline int fpclassify(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(294): error: expected a ")" _Check_return_ inline int fpclassify(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(294): error: expected a ")" _Check_return_ inline int fpclassify(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(294): error: expected a "{" _Check_return_ inline int fpclassify(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(299): error: expected an identifier _Check_return_ inline int fpclassify(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(299): error: expected a ")" _Check_return_ inline int fpclassify(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(299): error: expected a ")" _Check_return_ inline int fpclassify(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(299): error: expected a "{" _Check_return_ inline int fpclassify(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(304): error: expected an identifier _Check_return_ inline bool signbit(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(304): error: expected a ")" _Check_return_ inline bool signbit(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(304): error: expected a ")" _Check_return_ inline bool signbit(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(304): error: expected a "{" _Check_return_ inline bool signbit(_In_ float _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(309): error: expected an identifier _Check_return_ inline bool signbit(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(309): error: expected a ")" _Check_return_ inline bool signbit(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(309): error: expected a ")" _Check_return_ inline bool signbit(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(309): error: expected a "{" _Check_return_ inline bool signbit(_In_ double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(314): error: expected an identifier _Check_return_ inline bool signbit(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(314): error: expected a ")" _Check_return_ inline bool signbit(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(314): error: expected a ")" _Check_return_ inline bool signbit(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(314): error: expected a "{" _Check_return_ inline bool signbit(_In_ long double _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(400): error: expected an identifier _Check_return_ inline bool isfinite(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(400): error: expected a ")" _Check_return_ inline bool isfinite(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(406): error: expected an identifier _Check_return_ inline bool isinf(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(406): error: expected a ")" _Check_return_ inline bool isinf(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(412): error: expected an identifier _Check_return_ inline bool isnan(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(412): error: expected a ")" _Check_return_ inline bool isnan(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(418): error: expected an identifier _Check_return_ inline bool isnormal(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(418): error: expected a ")" _Check_return_ inline bool isnormal(_In_ _Ty _X) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(424): error: expected an identifier _Check_return_ inline bool isgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(424): error: expected a ")" _Check_return_ inline bool isgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(430): error: expected an identifier _Check_return_ inline bool isgreaterequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(430): error: expected a ")" _Check_return_ inline bool isgreaterequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(436): error: expected an identifier _Check_return_ inline bool isless(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(436): error: expected a ")" _Check_return_ inline bool isless(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(442): error: expected an identifier _Check_return_ inline bool islessequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(442): error: expected a ")" _Check_return_ inline bool islessequal(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(448): error: expected an identifier _Check_return_ inline bool islessgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(448): error: expected a ")" _Check_return_ inline bool islessgreater(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(454): error: expected an identifier _Check_return_ inline bool isunordered(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(454): error: expected a ")" _Check_return_ inline bool isunordered(_In_ _Ty1 _X, _In_ _Ty2 _Y) throw() ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(572): error: more than one instance of overloaded function "__libm_nexttoward64f" has "C" linkage _Check_return_ _ACRTIMP float __cdecl nexttowardf(_In_ float _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(774): error: more than one instance of overloaded function "acosh" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl acoshl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(776): error: more than one instance of overloaded function "acos" has "C" linkage _Check_return_ __inline long double __CRTDECL acosl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(781): error: more than one instance of overloaded function "asinh" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl asinhl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(783): error: more than one instance of overloaded function "asin" has "C" linkage _Check_return_ __inline long double __CRTDECL asinl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(788): error: more than one instance of overloaded function "atan2" has "C" linkage _Check_return_ __inline long double __CRTDECL atan2l(_In_ long double _Y, _In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(793): error: more than one instance of overloaded function "atanh" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl atanhl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(795): error: more than one instance of overloaded function "atan" has "C" linkage _Check_return_ __inline long double __CRTDECL atanl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(800): error: more than one instance of overloaded function "cbrt" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl cbrtl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(802): error: more than one instance of overloaded function "ceil" has "C" linkage _Check_return_ __inline long double __CRTDECL ceill(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(812): error: more than one instance of overloaded function "copysign" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl copysignl(_In_ long double _Number, _In_ long double _Sign); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(819): error: more than one instance of overloaded function "cosh" has "C" linkage _Check_return_ __inline long double __CRTDECL coshl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(824): error: more than one instance of overloaded function "cos" has "C" linkage _Check_return_ __inline long double __CRTDECL cosl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(829): error: more than one instance of overloaded function "erf" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl erfl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(830): error: more than one instance of overloaded function "erfc" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl erfcl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(832): error: more than one instance of overloaded function "exp" has "C" linkage _Check_return_ __inline long double __CRTDECL expl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(837): error: more than one instance of overloaded function "exp2" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl exp2l(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(838): error: more than one instance of overloaded function "expm1" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl expm1l(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(845): error: more than one instance of overloaded function "fdim" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl fdiml(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(847): error: more than one instance of overloaded function "floor" has "C" linkage _Check_return_ __inline long double __CRTDECL floorl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(852): error: more than one instance of overloaded function "fma" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl fmal(_In_ long double _X, _In_ long double _Y, _In_ long double _Z); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(853): error: more than one instance of overloaded function "fmax" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl fmaxl(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(854): error: more than one instance of overloaded function "fmin" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl fminl(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(856): error: more than one instance of overloaded function "fmod" has "C" linkage _Check_return_ __inline long double __CRTDECL fmodl(_In_ long double _X, _In_ long double _Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(861): error: more than one instance of overloaded function "frexp" has "C" linkage _Check_return_ __inline long double __CRTDECL frexpl(_In_ long double _X, _Out_ int *_Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(866): error: more than one instance of overloaded function "ilogb" has "C" linkage _Check_return_ _ACRTIMP int __cdecl ilogbl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(873): error: more than one instance of overloaded function "hypot" has "C" linkage _Check_return_ __inline long double __CRTDECL hypotl(_In_ long double _X, _In_ long double _Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(878): error: more than one instance of overloaded function "ldexp" has "C" linkage _Check_return_ __inline long double __CRTDECL ldexpl(_In_ long double _X, _In_ int _Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(883): error: more than one instance of overloaded function "lgamma" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl lgammal(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(884): error: more than one instance of overloaded function "llrint" has "C" linkage _Check_return_ _ACRTIMP long long __cdecl llrintl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(885): error: more than one instance of overloaded function "llround" has "C" linkage _Check_return_ _ACRTIMP long long __cdecl llroundl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(887): error: more than one instance of overloaded function "log" has "C" linkage _Check_return_ __inline long double __CRTDECL logl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(892): error: more than one instance of overloaded function "log10" has "C" linkage _Check_return_ __inline long double __CRTDECL log10l(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(897): error: more than one instance of overloaded function "log1p" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl log1pl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(898): error: more than one instance of overloaded function "log2" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl log2l(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(899): error: more than one instance of overloaded function "logb" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl logbl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(900): error: more than one instance of overloaded function "lrint" has "C" linkage _Check_return_ _ACRTIMP long __cdecl lrintl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(901): error: more than one instance of overloaded function "lround" has "C" linkage _Check_return_ _ACRTIMP long __cdecl lroundl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(903): error: more than one instance of overloaded function "modf" has "C" linkage _Check_return_ __inline long double __CRTDECL modfl(_In_ long double _X, _Out_ long double* _Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(912): error: more than one instance of overloaded function "nearbyint" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl nearbyintl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(913): error: more than one instance of overloaded function "nextafter" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl nextafterl(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(914): error: more than one instance of overloaded function "__libm_nexttoward64l" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl nexttowardl(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(916): error: more than one instance of overloaded function "pow" has "C" linkage _Check_return_ __inline long double __CRTDECL powl(_In_ long double _X, _In_ long double _Y) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(921): error: more than one instance of overloaded function "remainder" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl remainderl(_In_ long double _X, _In_ long double _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(922): error: more than one instance of overloaded function "remquo" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl remquol(_In_ long double _X, _In_ long double _Y, _Out_ int* _Z); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(923): error: more than one instance of overloaded function "rint" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl rintl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(924): error: more than one instance of overloaded function "round" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl roundl(_In_ long double _X); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(925): error: more than one instance of overloaded function "scalbln" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl scalblnl(_In_ long double _X, _In_ long _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(926): error: more than one instance of overloaded function "scalbn" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl scalbnl(_In_ long double _X, _In_ int _Y); ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(928): error: more than one instance of overloaded function "sinh" has "C" linkage _Check_return_ __inline long double __CRTDECL sinhl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(933): error: more than one instance of overloaded function "sin" has "C" linkage _Check_return_ __inline long double __CRTDECL sinl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(938): error: more than one instance of overloaded function "sqrt" has "C" linkage _Check_return_ __inline long double __CRTDECL sqrtl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(943): error: more than one instance of overloaded function "tanh" has "C" linkage _Check_return_ __inline long double __CRTDECL tanhl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(948): error: more than one instance of overloaded function "tan" has "C" linkage _Check_return_ __inline long double __CRTDECL tanl(_In_ long double _X) ^ C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\ucrt\corecrt_math.h(953): error: more than one instance of overloaded function "tgamma" has "C" linkage _Check_return_ _ACRTIMP long double __cdecl tgammal(_In_ long double _X); ^ compilation aborted for testissue.cpp (code 4)
Resolution:
This issue is resolved in Intel(R) C++ Compiler 18.0 Update 1.