- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greetings,
I was trying (latest) ICC 15.0.1 (Update 1) and got this error in LTCG IPO phase:
c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\thread(55) (col. 3): : error : 010101_0
any ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Marian,
Intel compiler provides the pragma for you to disable optimization for a specific function only. See below for example:
__declspec(noreturn) void MOZ_NoReturn() {} // With this pragma, it works. #pragma intel optimization_level 0 void AddRef(int a) { if (a>10) { // add a condition here, or it will not be reproduced...Note: the internal error points to this line. ::MOZ_NoReturn(); } }
You may try adding that for <thread> header to see whether it works. What is special for your case is, it happens in a system header file, but the option to disable optimization should still work, let me know if it does not work for you. :)
Thanks,
Shenghong
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for reporting your issue, its sort of Internal compiler error with IPO.
We would need a complete test code to reproduce the issue and help you further.
Thanks,
Reddy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Marian,
I have a very similar issues found working on another issue (https://software.intel.com/en-us/forums/topic/535459), although the internal error message is different, I found another error during cut down the test case for that issue, which is same with what you reported.
Also, I have check the thread header file as you provided, it looks like to be totally same error as I found. The test case to reproduce the internal error as below (really simple):
// foo.cpp // icl foo.cpp /Qip -c // foo.cpp(8) (col. 2): internal error: 010101_0 // works with "icl foo.cpp /Qipo -c", but may still fail during final linking stage. __declspec(noreturn) void MOZ_NoReturn() {} void AddRef(int a) { if (a>10) { // add a condition here, or it will not be reproduced...Note: the internal error points to this line. ::MOZ_NoReturn(); } }
Now, check thread header of same VS version, I see below contents at line thread(55) (col. 3):
~thread() _NOEXCEPT { // clean up if (joinable()) // Note: this is line #55 _XSTD terminate(); }
And terminate() is defined as "noreturn", which looks like to same root cause with the existing issue I found yesterday.
You may double confirm and see whether it is same known issue. :) The workaround is to disable optimization for this function.
Thanks,
Shenghong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Marian,
One good news is, the issue is already fixed (developer is so fast!!!) in mainline. :)
If your issue's root cause is same with my test case, you should see the working version in next update.
Thanks,
Shenghong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
shenghong-geng (Intel) wrote:
The workaround is to disable optimization for this function.
It's good to hear this. but how do I disable optimization for this particular STL (inline) function that is included in all units, as a pre-compiled header?
TIA!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IMO it would be really cool if Intel would make nightly builds at least two times a week for use on one's own risk. I was waiting few months for ICC 15.0.1 when compile bugs were fixed. Now I got stuck again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Marian,
Intel compiler provides the pragma for you to disable optimization for a specific function only. See below for example:
__declspec(noreturn) void MOZ_NoReturn() {} // With this pragma, it works. #pragma intel optimization_level 0 void AddRef(int a) { if (a>10) { // add a condition here, or it will not be reproduced...Note: the internal error points to this line. ::MOZ_NoReturn(); } }
You may try adding that for <thread> header to see whether it works. What is special for your case is, it happens in a system header file, but the option to disable optimization should still work, let me know if it does not work for you. :)
Thanks,
Shenghong
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greetings,
yes, workaround
// VDM_BEGIN #if defined(__INTEL_COMPILER_BUILD_DATE) && __INTEL_COMPILER_BUILD_DATE == 20141023 // workaround for bug in ICC 15.0.1 (Update 1) # pragma intel optimization_level 0 #endif // VDM_END ~thread() _NOEXCEPT
worked for me.
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Marian,
FYI. This issue should have been fixed (same with thread https://software.intel.com/en-us/forums/topic/535459). Please verify with v15.0 update 2 release (w_ccompxe_2015.2.179.exe).
Thanks,
Shenghong

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page