Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

ICL 2016 update 2 still does NOT work with VC2015

vojtech_m_
Beginner
863 Views

Hi, so installing the update 2 doesn't fix the existing errors from update 1, but adds loooooots of others. Here's the command line, minus custom stuff:

icl.exe /D "_SECURE_SCL=0" /D "_WINDOWS" /D "UNICODE" /D "_MBCS" /D "WIN32" /GR- /bigobj /Qrestrict /arch:SSE2 /MT /TP /Fd"!temp/ReleaseReleaseIntelcompiler0/MeldaProductionAudioPluginKernel/vc70.pdb" /D_USRDLL /D_WINDLL /D_WINDOWS /DWIN32 /MP /I "C:/Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.2.180\windows\compiler\include\ia32" /I "C:/Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.2.180\windows\compiler\include" /I "C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" /I "C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt" /I "C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um" /I "C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\shared" /I "C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\winrt" /I "C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2016.2.180/windows/ipp/include" /I "C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2016.2.180/windows/ipp/include" /I "C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2016.2.180/windows/tbb/include" /D_MBCS /Wp64 /c /W3 /Gm- /Qstd=c++14 /Zc:forScope /nologo /Gd /GF /EHsc /fp:fast /GS- /Qm32 /Qopt-report:2 /Qvec-report:4 /ansi-alias /Qftz /Ow /Ox /Ob2 /Oy /Oi /Ot /O2 /QaxAVX /Qip 

And here's the output:

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/vcruntime.h(224): warning #2157: NULL defined to 0 (type is integer not pointer)
          #define NULL 0
                        ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winnt.h(7021): warning #161: unrecognized #pragma
  #pragma prefast(push)
          ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winnt.h(7023): warning #161: unrecognized #pragma
  #pragma prefast(disable: 6001 28113, "The barrier variable is accessed only to create a side effect.")
          ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winnt.h(7038): warning #161: unrecognized #pragma
  #pragma prefast(pop)
          ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winbase.h(8809): warning #3199: "defined" is always false in a macro expansion in Microsoft mode
  #if MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS  /* { */
      ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winioctl.h(2705): warning #94: the size of an array must be greater than zero
      BYTE  SerialNumber[0];
                         ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winioctl.h(2883): warning #94: the size of an array must be greater than zero
              BYTE  ParameterList[0];
                                  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/shlobj.h(976): warning #2650: attributes ignored here
  DECLSPEC_DEPRECATED SHSTDAPI    ILLoadFromStream(_In_ IStream *pstm, _Inout_ PIDLIST_RELATIVE *pidl);
  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xtr1common(207): error: identifier "char16_t" is undefined
        struct _Is_integral<char16_t>
                            ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xtr1common(213): error: identifier "char32_t" is undefined
        struct _Is_integral<char32_t>
                            ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xtr1common(213): error: class "std::_Is_integral<<error-type>>" has already been defined
        struct _Is_integral<char32_t>
               ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstddef(405): error: identifier "char16_t" is undefined
        struct hash<char16_t>
                    ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstddef(406): error: identifier "char16_t" is undefined
                : public _Bitwise_hash<char16_t>
                                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstddef(411): error: identifier "char32_t" is undefined
        struct hash<char32_t>
                    ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstddef(411): error: class "std::hash<<error-type>>" has already been defined
        struct hash<char32_t>
               ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstddef(412): error: identifier "char32_t" is undefined
                : public _Bitwise_hash<char32_t>
                                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(611): error: identifier "char16_t" is undefined
  template<> class numeric_limits<char16_t>
                                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(615): error: identifier "char16_t" is undefined
        typedef char16_t _Ty;
                ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(663): error: identifier "char16_t" is undefined
        _STCONS(int, digits, CHAR_BIT * sizeof (char16_t));
        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(901): error: identifier "char32_t" is undefined
  template<> class numeric_limits<char32_t>
                                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(901): error: class "std::numeric_limits<<error-type>>" has already been defined
  template<> class numeric_limits<char32_t>
                   ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(905): error: identifier "char32_t" is undefined
        typedef char32_t _Ty;
                ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(953): error: identifier "char32_t" is undefined
        _STCONS(int, digits, CHAR_BIT * sizeof (char32_t));
        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1115): error: identifier "__builtin_huge_valf" is undefined
                return (__builtin_huge_valf());
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1120): error: identifier "__builtin_nanf" is undefined
                return (__builtin_nanf("0"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1125): error: identifier "__builtin_nansf" is undefined
                return (__builtin_nansf("1"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1178): error: identifier "__builtin_huge_val" is undefined
                return (__builtin_huge_val());
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1183): error: identifier "__builtin_nan" is undefined
                return (__builtin_nan("0"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1188): error: identifier "__builtin_nans" is undefined
                return (__builtin_nans("1"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1241): error: identifier "__builtin_huge_val" is undefined
                return (__builtin_huge_val());
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1246): error: identifier "__builtin_nan" is undefined
                return (__builtin_nan("0"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/limits(1251): error: identifier "__builtin_nans" is undefined
                return (__builtin_nans("1"));
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/iosfwd(267): error: identifier "char16_t" is undefined
        struct char_traits<char16_t>
                           ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/iosfwd(268): error: identifier "char16_t" is undefined
        : public _Char_traits<char16_t, unsigned short>
                              ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/iosfwd(276): error: identifier "char32_t" is undefined
        struct char_traits<char32_t>
                           ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/iosfwd(276): error: class "std::char_traits<<error-type>>" has already been defined
        struct char_traits<char32_t>
               ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/iosfwd(277): error: identifier "char32_t" is undefined
        : public _Char_traits<char32_t, unsigned int>
                              ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2623): error: identifier "char16_t" is undefined
  typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2623): error: identifier "char16_t" is undefined
  typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
                                             ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2623): error: identifier "char16_t" is undefined
  typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
                                                                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2625): error: identifier "char32_t" is undefined
  typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2625): error: identifier "char32_t" is undefined
  typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
                                             ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xstring(2625): error: identifier "char32_t" is undefined
  typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
                                                                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1004): error: identifier "char16_t" is undefined
        class _CRTIMP2_PURE codecvt<char16_t, char, _Mbstatet>
                                    ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1008): error: identifier "char16_t" is undefined
        typedef codecvt<char16_t, char, _Mbstatet> _Mybase;
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1009): error: identifier "char16_t" is undefined
        typedef char16_t _Elem;
                ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1328): error: identifier "char32_t" is undefined
        class _CRTIMP2_PURE codecvt<char32_t, char, _Mbstatet>
                                    ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1328): error: class "std::codecvt<<error-type>, char, _Mbstatet>" has already been defined
        class _CRTIMP2_PURE codecvt<char32_t, char, _Mbstatet>
                            ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1332): error: identifier "char32_t" is undefined
        typedef codecvt<char32_t, char, _Mbstatet> _Mybase;
                        ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xlocale(1333): error: identifier "char32_t" is undefined
        typedef char32_t _Elem;
                ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/string(640): error: identifier "char16_t" is undefined
  inline u16string operator "" s(const char16_t *_Str, size_t _Len)
                                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/string(640): error: invalid pointer parameter type ("const <error-type> *") for literal operator; expected char const*, wchar_t const*, char16_t const*, or char32_t const*
  inline u16string operator "" s(const char16_t *_Str, size_t _Len)
                   ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/string(645): error: identifier "char32_t" is undefined
  inline u32string operator "" s(const char32_t *_Str, size_t _Len)
                                       ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/string(645): error: function "std::literals::string_literals::operator ""s(const <error-type> *, size_t={unsigned int})" has already been defined
  inline u32string operator "" s(const char32_t *_Str, size_t _Len)
                   ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/string(645): error: invalid pointer parameter type ("const <error-type> *") for literal operator; expected char const*, wchar_t const*, char16_t const*, or char32_t const*
  inline u32string operator "" s(const char32_t *_Str, size_t _Len)
                   ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xatomic0.h(55): warning #864: extern inline function "std::_Atomic_load_4" was referenced but not defined
  inline _Uint4_t _Atomic_load_4(volatile _Uint4_t *, memory_order);
                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xatomic0.h(56): warning #864: extern inline function "std::_Atomic_compare_exchange_weak_4" was referenced but not defined
  inline int _Atomic_compare_exchange_weak_4(
             ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xatomic0.h(58): warning #864: extern inline function "std::_Atomic_fetch_add_4" was referenced but not defined
  inline _Uint4_t _Atomic_fetch_add_4(
                  ^

C:/Program Files (x86)\Microsoft Visual Studio 14.0\VC\include/xatomic0.h(60): warning #864: extern inline function "std::_Atomic_fetch_sub_4" was referenced but not defined
  inline _Uint4_t _Atomic_fetch_sub_4(
                  ^


D:\Programming\MDrummer>icl
Intel(R) C++ Compiler for applications running on IA-32, Version 16.0.2.180 Build 20160204
Copyright (C) 1985-2016 Intel Corporation.  All rights reserved.

So basically it's about missing char16_t and char32_t and then there's still the builtinxxx problem...

What am I missing??

0 Kudos
7 Replies
JenniferJ
Moderator
863 Views

Hello,

Many of us couldn't duplicate your error. is it possible to get a testcase? or a preprocessed file? or some code snippets?

Thanks,
Jennifer

0 Kudos
JenniferJ
Moderator
863 Views

do you have a "icl.cfg" that has /Qvc10 option? Or maybe the Tools Option dialog, you have /Qvc10 there.

Jennifer

0 Kudos
vojtech_m_
Beginner
863 Views

Hi, I tried /Qvc10, didn't change anything. Anyway I attached the preprocessed file. Results are pretty much exactly the same as above.

Note that I didn't not have VC2015 installed before update 1, and also I have VC2013 installed as well, when I set the paths to use VC2013, everything gets compiled.

0 Kudos
Judith_W_Intel
Employee
863 Views

 

Does explicitly adding /Qvc14 to the command line help?

/Qvc<arg>
          enable compatibility with a specific Microsoft* Visual Studio version
            11  - Microsoft* Visual Studio 2012 compatibility
            12  - Microsoft* Visual Studio 2013 compatibility
            14  - Microsoft* Visual Studio 2015 compatibility

The /Qvc option should not be necessary if the cl.exe in your PATH is a MSVC++ 1015 cl.exe. But I'm guessing that it might not be?

Judy

 

 

0 Kudos
vojtech_m_
Beginner
863 Views

 

Thanks! /Qvc14 did help, but, well, not entirely. Apart from all the warnings, these are the errors I got:

 

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/heapapi.h(107): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/heapapi.h(121): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winbase.h(944): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winbase.h(960): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winbase.h(1079): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

C:/Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um/winbase.h(1089): error #1292: unknown attribute "allocator"
  DECLSPEC_ALLOCATOR
  ^

 

0 Kudos
Judith_W_Intel
Employee
863 Views

 

Sigh.

It looks like this declspec was recently added by Microsoft to support some memory profiling tools described here:

https://blogs.msdn.microsoft.com/vcblog/2015/10/21/memory-profiling-in-visual-c-2015/

We've opened a bug report (DPD200382118) for our compiler to be fixed to at least parse it and ignore it.

Until then it's a discretionary error which can be disabled with the command line option -Qdiag-disable:1292

Judy

 

0 Kudos
vojtech_m_
Beginner
863 Views

Cool, thanks, that helped! I managed the compile the whole thing. So now it leaves the fact, that ICC doesn't generate correct code for 64-bit, check this:

https://software.intel.com/en-us/forums/intel-c-compiler/topic/608967#comment-1861464

 

0 Kudos
Reply