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

ICC Language Support in VS20xx

sav
Novice
767 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
767 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

0 Kudos
6 Replies
Kittur_G_Intel
Employee
767 Views

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

0 Kudos
Kittur_G_Intel
Employee
768 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

0 Kudos
Kittur_G_Intel
Employee
767 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

0 Kudos
sav
Novice
767 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

 

0 Kudos
Kittur_G_Intel
Employee
767 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 

0 Kudos
sav
Novice
767 Views

Updated description to the IPSXE 2017 U2.

0 Kudos
Reply