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

Bug report for Intel Compiler v19.0 - rejection on [[deprecated]] tag breaks a library that will be in the C++ 20 standard

Tolmie__Shane
Beginner
375 Views

Hi there,

Just to let you know, I've been working with the author of an upcoming standard that will be in C++20. The library is {fmt/fmtlib}. Unfortunately, this library worked with all major compilers, but it threw a compile error with the Intel Compiler v19.0.

Traced the problem to the Intel Compiler v19.0 not accepting the [[deprecated]] element on some elements that the MSVC compiler accepts it on. All other compilers (including MSVC) accept their equivalent of [[deprecated]] on this element (some in different form, e.g. GCC).

See: https://github.com/fmtlib/fmt/issues/1273

To reproduce the issue:

1. Check out v6.0.0 of said library from: https://github.com/fmtlib/fmt/tree/6.0.0

2. Compile it, it will throw four errors, as the [[deprecated]] tag is accepted by MSVC on some elements, but rejected by the Intel Compiler.

3. Check out master, with the fix 744302a: https://github.com/fmtlib/fmt/commit/744302add085f30120c57f73cddbcb826cc92de9

4. Compile, it will work perfectly under both MSVC and Intel.

Thank you.

p.s. I emailed this issue to parallel.studio.support@intel.com, as per the instructions, but received a wall of silence in response. So I am posting to this forum in the hope that it will reach the relevant people.

0 Kudos
1 Reply
Viet_H_Intel
Moderator
375 Views

Can you create a pre-processed file and provide to us? And also let us know which the VS2017 version.

0 Kudos
Reply