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

error 010101_0

Marián__VooDooMan__M
New Contributor II
1,208 Views

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?

0 Kudos
1 Solution
Shenghong_G_Intel
1,208 Views

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

View solution in original post

0 Kudos
8 Replies
MalReddy_Y_Intel
Employee
1,208 Views

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

 

0 Kudos
Shenghong_G_Intel
1,208 Views

@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

0 Kudos
Shenghong_G_Intel
1,208 Views

@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

0 Kudos
Marián__VooDooMan__M
New Contributor II
1,208 Views

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!

0 Kudos
Marián__VooDooMan__M
New Contributor II
1,208 Views

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.

0 Kudos
Shenghong_G_Intel
1,209 Views

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

0 Kudos
Marián__VooDooMan__M
New Contributor II
1,208 Views

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.

0 Kudos
Shenghong_G_Intel
1,208 Views

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

0 Kudos
Reply