Intel Parallel Composer 2011 / Compiler error

Intel Parallel Composer 2011 / Compiler error

As happy as i was to test the new Parallel Studio with its new features i wanted to apply it to my current project.
Unfortunately in order to do so i have to provide boost libraries compiled with ICC as well.
So i started the simple process of compiling them just to find out that it won't be that simple.

In the boost module filesystem and test i encounter following errors.

C:\\Visual Studio 2010\\VC\\INCLUDE\\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=1]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=1]" at line 912

C:\\Visual Studio 2010\\VC\\INCLUDE\\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=0]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=0]" at line 913

C:\\Visual Studio 2010\\VC\\INCLUDE\\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=1]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=1]" at line 925

C:\\Visual Studio 2010\\VC\\INCLUDE\\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=0]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=0]" at line 926

At first i wanted to blame boost and had inspected its source for the error. But that particular class isn't even being used in boosts sources. So i started to dig deeper.
It turns out that the error happens when the file "xlocmon" is being loaded. For some reason ICC 12 can not compile it. As soon as i comment out the line 296 in the official Microsoft header file the compiler runs as it should.
I am writing this because it was stated that everything that vc10 can do is compatible to Parallel Stutio.
In this case it does not help to add /Qvc10 to the compiler options.

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Seems to work for me....

u74584>more test.cpp

#include

int main (void)

{

return 0;

}

u74584>

u74584>

u74584>icl test.cpp

Intel C++ Compiler for applications running on IA-32, Version 12.0.0.015 Beta

Build 20100309

Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

test.cpp

Microsoft Incremental Linker Version 10.00.30128.01

Copyright (C) Microsoft Corporation. All rights reserved.

-out:test.exe

test.obj

u74584>test

Okay i was wondering why your simple testcase worked for me at first.
Here is where i could narrow it down a bit.

I am using the same testcase you provided above.

X:\TMP>icl test.cpp /MD
Intel C++ Compiler for applications running on IA-32, Version 12.0.0.024 Beta
Build 20100415
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

icl: NOTE: The Beta evaluation period for this product ends on 12-oct-2010 UTC.
test.cpp
C:\Visual Studio 2010\VC\INCLUDE\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=1]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=1]" at line 912

C:\Visual Studio 2010\VC\INCLUDE\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=0]" may not be initialized
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=char, _Intl=0]" at line 913

C:\Visual Studio 2010\VC\INCLUDE\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=1]" may not be initiali
zed
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=1]" at line 925

C:\Visual Studio 2010\VC\INCLUDE\xlocmon(296): error: member "std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=0]" may not be initiali
zed
_PGLOBAL const bool moneypunct<_Elem, _Intl>::intl = _Intl;
^
detected during implicit definition of "const bool std::moneypunct<_Elem, _Intl>::intl [with _Elem=__wchar_t, _Intl=0]" at line 926

compilation aborted for test.cpp (code 2)

The test passes for /MT and /MTd but not for /MD or /MDd .
I hope that helps somehow.

Thanks for the clarification. I'll update this thread after our investigation.

Regards,
An

This is a known bug, and we will have a fix in the next update.

Thanks. I hope it'll come soon.

This is resolvewith the latest update of Intel Parallel Composer 2011

Login to leave a comment.