Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Parser fix needed for correct parsing of GCC 8 standard library headers

Hi all,

It has recently come to my attention that in the libstdc++ (standard library) version that ships with GCC 8, the implementation of the std::is_constructible type trait has been updated to use a new compiler intrinsic __is_constructible, which CDT's parser does not currently recognize.

This type trait is used in the signature of several commonly used standard library functions, such as std::map::insert(), and as a result, the parser can produce false-positive errors at the call sites of such functions, which is fairly noticeable.

I have added parser support for this intrinsic in bug 539052 [1]. However, the design of our parser means that a change like this requires adding new API (since it involves adding a new keyword, a new token type, etc.). This means that while I can commit the fix to the 9.6 branch, it's not easy to backport it to the 9.5 branch.

My understanding is that the current plans are to release CDT 9.6 as part of the 2018-12 simultaneous release. Do we have any options for getting this fix in front of users sooner? As people start upgrading their compilers to GCC 8, they are likely to start noticing this more and more.

Regards,
Nate

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=539052

Back to the top