Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

ICC Language Support in VS20xx

sav
Novice
414 Views

Hello, everyone,

After integration IPSXE 2017 with Visual Studio 2015 found, that ICC options for a recently announced C11 Support in Intel C++ Compiler, C++14 Features Supported by Intel® C++ Compiler, and C++17 Features Supported by Intel® C++ Compiler not available in 'Language [Intel C++]' menu of 'VS (Intel C++ 17.0)' projects:

vs_icc_language_menu_current.jpg

From the other side, ICC Language options:

/Qstd=<std>
          enable language support for <std>, as described below
            c99   conforms to ISO/IEC 9899:1999 standard for C programs
            c11   conforms to ISO/IEC 9899:2011 standard for C programs
            c++11 enables C++11 support for C++ programs
            c++14 enables experimental C++14 support for C++ programs
            c++17 enables experimental C++17 support for C++ programs

should not appear in the same build command, since applying 'C99' and 'C11' or 'C++11' and 'C++14' options simulationaly has no sense, as applying 'C11' and 'C++11' options (because ICC distinguishes C and C++ options and throw warnings like:

icl: command line warning #10381: option '/Qstd=c11' is not valid for C++ compilations

if they are mixed in the same build command).

 

Taking into account the above, it make sense:

- to combine C and C++ Language options into one menu, e.g. 'Language Support',

- to add all missing '/Qstd=<std>' options into that menu.

This could be easily done by changing a file:

%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\Intel C++ Compiler 17.0\1033\icl.xml

(patch for IPSXE 2017 Update 2 added in attachment), so 'Language [Intel C++]' menu of VS (Intel C++ 17.0) projects would look like:

vs_icc_language_menu_new.jpg

Could you add this feature to the next IPSXE releases?

 

Alexander

 

0 Kudos
1 Solution
Kittur_G_Intel
Employee
414 Views

Hi Alexander,
I received your private email as well. Just letting you know the issue # is: DPD200380627 and I'll touch base with you as soon as I've an update. Appreciate your patience till then.

Regards,
Kittur

View solution in original post

6 Replies
Kittur_G_Intel
Employee
414 Views

Hi,
Thanks for your feedback and I'll file the issue with the developers and will keep you updated accordingly, appreciate much.
_Kittur

Kittur_G_Intel
Employee
415 Views

Hi Alexander,
I received your private email as well. Just letting you know the issue # is: DPD200380627 and I'll touch base with you as soon as I've an update. Appreciate your patience till then.

Regards,
Kittur

Kittur_G_Intel
Employee
414 Views

Hi,
I forgot to mention to you that there are already exposed properties  /Qstd=c99 and Qstd=c++11 that you can enable in the properties menu. (See attached file lang.png).  I've filed an issue to ensure c14 is added as well and will keep you updated, thanks.
_Kittur

sav
Novice
414 Views

there are already exposed properties  /Qstd=c99 and Qstd=c++11 that you can enable in the properties menu

Yep. And in 1st post I proposed to remove them from VS menu, and add one general parameter "Language Support". This make sense because /Qstd=c99 and /Qstd=c++11 conflict with each other, if both enabled (unfortunately ICC does not distinguish C and C++ parameters, as do GCC using CFLAGS and CXXFLAGS) should not appear in the same build command.

 

Regards,

Alexander

 

Kittur_G_Intel
Employee
414 Views

Thanks Alexander, I've pointed that out in the issue I filed and will touch base with you as soon as I get an update, appreciate much.
_Kittur 

sav
Novice
414 Views

Updated description to the IPSXE 2017 U2.

Reply