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

More bugs in stringstream template class

Jerzy_P_
Beginner
1,019 Views

I have found more bugs in stringstream template class in  Intel Parallel Studio 2015 XE Update 4 working under Visual Studio 2015 environment. Obtaining errors depends on whether the extension C++11 is used or not.

See at the program test2:

///////////Begin
#include <sstream>
#include <iostream>
int main()
{
 using namespace std;
 stringstream myStream;
 int n;
 myStream << "5\n";
 myStream >> n;
 cout << n << endl;
 return 0;
}
////////End

1) When the program is compiling without C++11 support, I get message on errors like this:

1>------ Rebuild All started: Project: test2, Configuration: Release Win32 ------
1>  test2.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1617): error : a nonstatic member reference must be relative to a specific object
1>      -> decltype(_STD invoke(get(), _STD forward<_Types>(_Args)...))
1>                              ^
1>
1>  compilation aborted for test2.cpp (code 2)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

All compiler option are:

/GS /W1 /Zc:wchar_t /Zi /O2 /Fd"Release\vc140.pdb" /Qipo /Zc:forScope /Gd /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Qprof-dir "Release\" /Fp"Release\test2.pch"

2) When the program was compiling with C++11 support, I get message on errors like this:

1>------ Rebuild All started: Project: test2, Configuration: Release Win32 ------
1>  test2.cpp
1>": : error : ** The compiler has encountered an unexpected problem.
1>  ** Segmentation violation signal raised. **
1>  Access violation or stack overflow. Please contact Intel Support for assistance.
1>
1>  compilation aborted for test2.cpp (code 4)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

All compiler option are:

/GS /W1 /Zc:wchar_t /Zi /O2 /Fd"Release\vc140.pdb" /Qstd=c++11 /Qipo /Zc:forScope /Gd /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Qprof-dir "Release\" /Fp"Release\test2.pch"

Could someone help me how I can work around this problem?

Best regards,

Jerzy

0 Kudos
19 Replies
Shenghong_G_Intel
1,019 Views

Hi Jerzy,

I can reproduce the issue you mentioned with 2015 update 4 version. But it works with latest v16.0 beta compiler, which may have official support for vs2015. Could you please verify with v16.0 beta if you have time and wait for the coming release?

Thanks,

Shenghong

0 Kudos
Jerzy_P_
Beginner
1,019 Views

Hi Shenghong,

Thank you for answer. I have checked the test2 program compilation process by the latest Intel Parallel XE 2016 beta 2. Unfortunately, if I try to compile the test2 program as Release, the Intel Parallel XE 2016 beta 2 gives the same errors as the Intel Parallel XE 2015 update 4.

Only if I try to compile the test2 program by the latest Intel Parallel XE 2016 beta 2 as Debug, I do not get errors.

Regards,

Jerzy

0 Kudos
Shenghong_G_Intel
1,019 Views

Hi Jerzy,

Could you please attach your project file with the source files to me? I've tested with Release and it also works with or without /Qstd=c++11 option. But I do see an error reporting that "Error    #11023    Not all components required for linking are present on command line", which seems like to be a known issue I got recently. It is related to IPO option and without IPO, it works.

Please double confirm your errors, if you get same errors with 2015 U4, please send me the whole project.

Thanks,

Shenghong

0 Kudos
Shenghong_G_Intel
1,019 Views

FYI. The issue I got:

#include <sstream>
#include <iostream>
int main()
{
    using namespace std;
    stringstream myStream;
    int n;
    myStream << "5\n";
    myStream >> n;
    cout << n << endl;
    return 0;
}

C:\Users\sgeng2\Desktop>icl test.cpp /O2 /Qipo /MD
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Versi
on 16.0.0.086 Build 20150708
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

test.cpp
ipo: warning #11021: unresolved __imp_?_Src@?3??_Getffld@?$num_get@DV?$istreambu
f_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator
@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB
        Referenced in E:\TEMP\ipo_1214811.obj
ipo: error #11023: Not all components required for linking are present on comman
d line
Microsoft (R) Incremental Linker Version 14.00.23026.0
Copyright (C) Microsoft Corporation.  All rights reserved.

-out:test.exe
E:\TEMP\ipo_1214811.obj

C:\Users\sgeng2\Desktop>

It only reproduces with both /Qipo and /MD used (works with /MT).

I've report this to dev to fix. If you have other different errors, I may need your project files to figure out what options you've used and it may be different bug...

Thanks,

Shenghong

0 Kudos
Maximilian_L_
Beginner
1,019 Views

Hi everyone,

i have run into the exact same issue that Jerzy reported, though it does not seem to be related to IPO.

I am compiling under Visual Studio Enterprise 2015 and the latest Intel Parallel XE 2016 beta 2. I am using the C++11 option and get

1>------ Build started: Project: Clrp, Configuration: Release x64 ------
1>  Arc.cpp
1>  Heuristic.cpp
1>  Instance.cpp
1>": : error : ** The compiler has encountered an unexpected problem.
1>  ** Segmentation violation signal raised. **
1>  Access violation or stack overflow. Please contact Intel Support for assistance.
1>
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

where Instance.cpp uses the istringstream template.

However, this error only occurs when either specifying some Optimization level different than "Disabled" and/or choosing Inline Function Expansion Settings "Any Suitable" or "only __inline". Interprocedural Optimization does not result in an error.

Greetings,

Max

0 Kudos
Shenghong_G_Intel
1,019 Views

Hi Max,

Could you please attached your VS solution to reproduce the error? It may be a different issue than the one I've reproduced. Thank you.

Thanks,

Shenghong

0 Kudos
Shenghong_G_Intel
1,019 Views

There is an existing issue in our problem tracking system, which is very similiar like the issue you reported (with vs2015, Access violation compiling stream iterator), but was fixed in beta update 2. Please double check and make sure you are using beta update 2. If you still have issues, please send me your VS solution, or, you may try build it in command line and tell me the options you are using (I've tried several options and failed to reproduce in VS). Thank you very much.

Thanks,

Shenghong

0 Kudos
Todd_T_Intel
Employee
1,019 Views

Hello,

I am encountering a very similar problem.

We had been successfully building a python module, scipy, with python 3.5 on Windows Server 2012 using Visual Studio 2015 RC (14.0.22823.1) and Composer 2015 update 4 (15.0.4). This has been stable for months.

A few days ago, I updated Visual Studio from the RC version to the released version of 2015. Since then we have been unable to build the scipy module, encountering this error:

building 'scipy.interpolate._interpolate' extension
compiling C++ sources
C:\Program Files (x86)\Intel_sw_development_tools\compilers_and_libraries_2016.0.063\windows\bin\intel64\icl.exe /c /nologo /O3 /MD /W3 /Qstd=c99 /QxSSE4.2 /QaxCORE-AVX2 /fp:strict -Iscipy\interpolate\src -IC:\Users\xxxxxxxx\projects\pydist35\Lib\site-packages\numpy\core\include -IC:\Users\xxxxxxxx\projects\pydist35\include -IC:\Users\xxxxxxxx\projects\pydist35\include /Tpscipy\interpolate\src\_interpolate.cpp /Fobuild\temp.win-amd64-3.5\Release\scipy\interpolate\src\_interpolate.obj
icl: command line warning #10381: option '/Qstd=c99' is not valid for C++ compilations
_interpolate.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(1617): error: a nonstatic member reference must be relative to a specific object
                -> decltype(_STD invoke(get(), _STD forward<_Types>(_Args)...))

I tried updating to the v16 beta Intel compiler, but saw the same error.

Are there other suggestions for repairing this? Thank you.

Todd

0 Kudos
Shenghong_G_Intel
1,019 Views

Hi Todd,

Could you please try with 2016 beta Update 2 to verify it? This issue was reported in v16.0, but fixed in Update 2 now. From the command line, you are using an 2016 update 1 only.

The version of v16.0 update 2 should be: 16.0.0.086 Build 20150708.

Let me know if it works, if not, I may download scipy and build it for you (if possible, provide me a summary of the main steps and commands about how you build it with Intel compiler).

Thanks,

Shenghong

0 Kudos
Todd_T_Intel
Employee
1,019 Views

Shenghong, I installed v16 from this download: "parallel_studio_xe_2016_beta_update2_setup" so I thought I had update 2. Does parallel studio update 2 not come with the compiler update 2?

Todd

0 Kudos
Melanie_B_Intel
Employee
1,019 Views

This issue was also discussed here, https://software.intel.com/en-us/forums/topic/562570

Please see the workaround provided by Judy Ward.

The issue will be fixed in the 16.0 compiler which will be released soon.

--Melanie

0 Kudos
Todd_T_Intel
Employee
1,019 Views

Melanie,

Using this beta version of the Intel compiler:

Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, version 16.0.0 Pre-Release (Beta) Package ID: w_comp_lib_2016.0.063

PLUS the /Qstd=c++11 compiler switch solved the problem for me. Thank you!

Todd

0 Kudos
Jerzy_P_
Beginner
1,019 Views

Todd,

Did you really compiled my test2 program as Release (no Debug)?

I tried to compile this program using the same version of compiler as you, i.e. Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, version 16.0.0 Pre-Release (Beta) Package ID: w_comp_lib_2016.0.063 (and using the MS VS Enterprise 2015, version 14.0.23107.0 D14REL environment).

When I switch /Qstd=c++11 compiler, I get the error:

1>------ Rebuild All started: Project: test2, Configuration: Release Win32 ------
1>  test2.cpp
1>": : error : ** The compiler has encountered an unexpected problem.
1>  ** Segmentation violation signal raised. **
1>  Access violation or stack overflow. Please contact Intel Support for assistance.
1>
1>  compilation aborted for test2.cpp (code 4)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Regards,

Jerzy

0 Kudos
Shenghong_G_Intel
1,019 Views

Hi Jerzy, Todd, Max, Melanie,

First of all, sorry that I was using a wrong compiler version (my version seems to be an internal/dev version which is more recent than beta update 2!!! I do not know who installed that in our team shared machine...) :( 2016 beta update 2 compiler is: 16.0.0.063 Beta Build 20150527, the version you are using.

Now, Let me update my test results and the status for all the issues reported here with beta update 2:

Intel Compiler Issue with Jerzy's test2:

#1: build with Debug mode, it will get "a nonstatic member reference must be relative to a specific object" error, and it can be built with /Qstd=c++11.

Status: This issue is fixed in our problem tracking system, and you can see, I cannot even reproduce it with my internal version. :) I assume it will be included in the coming v16.0 initial release very soon.

#2: build with Release mode, it will get same error like #1 without /Qstd=c++11, and when adding /Qstd=c++11, you'll get the crash "Access violation or stack overflow".

Status: Same for #1, I assume it will be fixed in v16.0 initial release.

#3: The error "Not all components required for linking are present on command line" I mentioned. You may ignore this as this is only reproducible with the dev version I was using, this issue is also implemented in v16.0.

Summary: all the issues reported in this thread are invalid and I can reproduce them. And, they've all be fixed already. Let's wait for the coming v16.0 initial release.

Hope it helps.

Thanks,

Shenghong

0 Kudos
Shenghong_G_Intel
1,019 Views

Hi All,

FYI that the v16.0 initial release is activated today, and I've verified that #1 and #2 mentioned in my last reply are fixed, but unfortunately, #3 is not mentioned. You may verify it but I do not think the code will be built. :(

From the problem tracking system, the fix for #3 is merged into v15.0 branch already, but not promoted to v16.0 yet as the gate is closed for v16.0 initial release. It'll be promoted soon, and hope you'll see the fix in v16.0 update 1.

Thanks,

Shenghong

0 Kudos
Christophe_H_Intel2
1,019 Views

Hello,

For clarification, I still have to use the /Qstd=c++11 flag to compile c++11 code.  Without the flag, I get the following:

building 'scipy.interpolate._interpolate' extension
compiling C++ sources
icl: command line warning #10381: option '/Qstd=c99' is not valid for C++ compil
ations
_interpolate.cpp
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vadefs.h(127): er
ror: bool type is not allowed
              enum : bool { __the_value = false };

 

plus many additional errors.  These errors go away when I use the /Qstd=c++11 flag.

Is the issue fixed ONLY IF the flag is used, or should the flag not be required?

I'm using Intel c++ compiler version 16.0.0.110 Build 20150815 and VS Professional 2015 version 14.0.23107.0 D14REL.

Thanks,

Chris

0 Kudos
Melanie_B_Intel
Employee
1,019 Views

Don't routinely use /Qstd=c++11.  Since you're using vs2015 in this compilation, the Intel compiler accepts the c++ features that are implemented in vs2015 (modulo whether the c++ feature has been implemented in the Intel compiler)

Would you please attach a reproducer (source file) including command line used? You can use the -E command line switch and redirect the compiler output to a file and attach the file (icl -c -E ... source.cpp > preprocessed_source.txt) and attach preprocessed_source.txt along with the command line. if it's confidential you can use Intel Premier Support to open a ticket.  Thanks very much.

0 Kudos
Shenghong_G_Intel
1,019 Views
@Chris, I'll add more clarification based on Melanie's reply. From your description, your issue does not seem to be related to this stringstream issue. First of all, the warning is that you are building C++ code, so, you cannot use /Qstd=c99, which is only valid for C code. Regarding the errors, you may provide us a test case, I think it is not the test case in this forum thread (please submit in a new thread, or in premier support website, so that it will not confusing other people who get the stringstream issue in this thread). You need to be noted, MS compiler support C++11 options by default (it just support all the features it implements without an option). But Intel compiler needs to open this /Qstd=c++11 flag if you are writing C++11 code, like most of other compilers like GCC/Clang. For this specific case, it is possible that your code do requires C++11 feature, in this case, it is not a bug. So, please submit us the test case, and we'll check the C++11 spec to double confirm it. Hope it is clear. Thanks, Shenghong
0 Kudos
Shenghong_G_Intel
1,019 Views

FYI, the #3 issue I mentioned above is also fixed in v16.0 Update 1.

Till now, all the 3 issues I summarized above are fixed in v16.0 Update 1.

Thanks,

Shenghong

0 Kudos
Reply