- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I had always use Microsoft compiler, and recently in the use of Intel compiler.
The progran runs well when use Microsoft compiler(MVS2012), but when use the Intel compiler(inter C++ 14.0),there will be some errors
just like:
errors::~runtime_error,
errors::runtime_error,
errors::~system_error,
errors::system_error,
errors::~logic_error,
errors::logic_error,
the compiler did not give the error line in the program, and the program is so big, how can I find the error in the program?
Thanks!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What kind of errors? Compilation errors? Unresolved link errors? Can you show us your command line (icl ...) and the errors you are seeing?
thanks
Judy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compile without errors, but when run there will be errors
//=====================compile command lines ==============================
1>------ Build started: Project: ImageReconstructionCompare (Intel C++ 14.0), Configuration: Release x64 ------ 1>icl : message #10346: optimization reporting will be enabled at link time when performing interprocedural optimizations 1> ImageReconstruction.cpp 1>D:\zhanghuiwork\ImageReconstructionCompare\ImageReconstructionCompare\ImageReconstructionCompare\Parameters.h(92): warning #80: a storage class may not be specified here 1> typedef enum mNoiseModel 1> ^ 1> ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
//=======================run command lines=====================
Message 1 message #10346: optimization reporting will be enabled at link time when performing interprocedural optimizations D:\...\icl ImageReconstructionCompare (Intel C++ 14.0)
Error 3 error : :~runtime_error D:\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 836 error : :~runtime_error D:\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 837 error : :runtime_error D:\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 838 error : :~system_error D:\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 839 error : :system_error D:\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 840 error : :~logic_error D:\zhanghuiwork\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Error 861 error : :logic_error D:\zhanghuiwork\...\procedure ImageReconstructionCompare (Intel C++ 14.0)
Message 565 message : loop was not parallelized: existence of parallel dependence D:\zhanghuiwork\ImageReconstructionCompare\...\Rebinning.cpp 21 1 ImageReconstructionCompare (Intel C++ 14.0)
......
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Judith Ward (Intel) wrote:
What kind of errors? Compilation errors? Unresolved link errors? Can you show us your command line (icl ...) and the errors you are seeing?
thanks
Judy
Here is part of the run time output,I have bolded the error:
1>D:\zhanghuiwork\ImageReconstructionCompare\test\ImageReconstructionCompare\test.cpp(69): message : loop was not vectorized: unsupported loop structure 1>D:\zhanghuiwork\ImageReconstructionCompare\test\ImageReconstructionCompare\test.cpp(69): message : loop was not vectorized: not inner loop 1>D:\zhanghuiwork\ImageReconstructionCompare\test\ImageReconstructionCompare\test.cpp(69): message : loop was not vectorized: not inner loop 1>procedure : error : :~runtime_error 1>procedure : error : :runtime_error 1> procedure: error_category::~error_category 1> procedure: error_category::default_error_condition 1> procedure: error_category::equivalent 1> procedure: error_category::equivalent 1>procedure : error : :~system_error 1>procedure : error: :system_error 1> procedure: failure::~failure 1> procedure: failure::~failure 1> procedure: failure::failure 1> procedure: numpunct<char>::~numpunct 1> procedure: numpunct<char>::_Tidy 1> procedure: numpunct<char>::do_grouping 1> procedure: numpunct<char>::do_falsename 1> procedure: numpunct<char>::do_decimal_point 1> procedure: numpunct<char>::do_thousands_sep 1> procedure: numpunct<char>::do_truename 1> procedure: ctype<char>::~ctype 1> procedure: _Generic_error_category::~_Generic_error_category 1> procedure: _Generic_error_category::name 1> procedure: _Generic_error_category::message 1> procedure: _Iostream_error_category::~_Iostream_error_category 1> procedure: _Iostream_error_category::name 1> procedure: _Iostream_error_category::message 1> procedure: numpunct<char>::_Getcat 1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocnum(128): message : loop was not parallelized: existence of parallel dependence 1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocnum(128): message : loop was not parallelized: existence of parallel dependence
......
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Zhang,
For future pasting in of sample output, insert in front of the output:
Left-Square-Bracket, xxx, Right-Square-Bracket (no commas, I cannot illustrate it here)
Following the inserted text
Left-Square-Bracket, forward slash, xxx Right-Square-Bracket
Where "xxx" is language, such as cpp, for text you can use plain or even use cpp
See "To enable syntax highlighting..." below the Comment edit box. "syntax highlighting" also preserves your line breaks.
I believe what you are seeing are not compilation error messages, rather what you are seeing is the class nesting trace of classes who's name happens to be "error", "runtime_error", ...
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
jimdempseyatthecove wrote:
Zhang,
For future pasting in of sample output, insert in front of the output:
Left-Square-Bracket, xxx, Right-Square-Bracket (no commas, I cannot illustrate it here)
Following the inserted text
Left-Square-Bracket, forward slash, xxx Right-Square-Bracket
Where "xxx" is language, such as cpp, for text you can use plain or even use cpp
See "To enable syntax highlighting..." below the Comment edit box. "syntax highlighting" also preserves your line breaks.
I believe what you are seeing are not compilation error messages, rather what you are seeing is the class nesting trace of classes who's name happens to be "error", "runtime_error", ...
Jim Dempsey
Hi jim,Thank you for reminding me!
I have changed it to a simple"Hellow word" program, still it will be error when run!
[cpp]
#include <iostream>
using namespace std;
int main()
{
cout<< "Hello World!" <<endl;
return(0);
}
[/cpp]
If I comment the "cout" line then the progran will be ok.
Here is the output when run this "hello word" program:
[cpp]
1>------ Build started: Project: ImageReconstructionCompare (Intel C++ 14.0), Configuration: Release x64 ------
1> procedure: main
1> procedure: std::operator<<
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ostream(798): message : loop was not parallelized: existence of parallel dependence 1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ostream(811): message : loop was not parallelized: existence of parallel dependence 1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ostream(798): message : loop was not vectorized: nonstandard loop is not a vectorization candidate 1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ostream(811): message : loop was not vectorized: nonstandard loop is not a vectorization candidate
1> procedure: std::basic_ostream<char, std::char_traits<char> >::_Sentry_base::~_Sentry_base
1> procedure: std::basic_ostream<char, std::char_traits<char> >::sentry::~sentry
1> procedure: basic_string<char, std::char_traits<char>, std::allocator<char> >::_Grow
1> procedure: _Wrap_alloc<std::_String_base_types<char, std::allocator<char> >::_Alloc>::allocate
1> procedure: basic_string<char, std::char_traits<char>, std::allocator<char> >::_Tidy
1> procedure: basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
1> procedure: basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
1> procedure: ?_Iostream_object@?$_Error_objects@H@std@@$E
1>procedure : error : :~runtime_error
1> procedure: __sti__?_Iostream_object@?$_Error_objects@H@std@@2V_Iostream_error_category@2@A
1> procedure: failure::~failure
1>procedure : error : :system_error
1>procedure : error : :runtime_error
1> procedure: failure::failure 1> procedure: failure::~failure
1> procedure: _Iostream_error_category::message
1> procedure: _Iostream_error_category::name
1> procedure: _Iostream_error_category::~_Iostream_error_category
1> procedure: _Generic_error_category::message
1> procedure: _Generic_error_category::name
1> procedure: _Generic_error_category::~_Generic_error_category
1>procedure : error : :~system_error
1> procedure: error_category::equivalent
1> procedure: error_category::equivalent
1> procedure: error_category::default_error_condition
1> procedure: error_category::~error_category
1>procedure : error : :~runtime_error
1> xilink: executing 'link' ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
[/cpp]
Thanks again!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I may found the problem, but I do not know why.
When I use the VC++ compiler, I set the "c/c++ - command lines - additional commands" to "/Qpar /Qpar-report:2 /Qvec-report:2 "
this command will automatically inform you of the optimization results.
If I delete this command Then I can use the inter C++ Compiler.
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes it looks like list of error handling classes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is normal for -Qpar-report:2 to print out the procedure names. It is not normal for it to cause a build failure.
I can't reproduce the build failure. Please provide the complete list of compilation options you are using... Does the build failure go away if you remove just the -Qpar-report:2 switch or all three of these switches?
thanks
Judy
This is what I see:
!% cat hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout<< "Hello World!" <<endl;
return(0);
}
!% icl /Qpar /Qpar-report:2 /Qvec-report2 hello.cpp
Intel(R) C++ Compiler XE for applications running on IA-32, Version Mainline Bet
a Build x
Built Oct 14 2013 11:49:09 by jward4 on JWARD4-DESK in D:/workspaces/cfe/dev
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
hello.cpp
procedure: main
procedure: std::operator<<
//sptnap01a.nh.intel.com/wref1/ref/vs2012/VC/include/ostream(798): (col. 4) rema
rk: loop was not parallelized: existence of parallel dependence
//sptnap01a.nh.intel.com/wref1/ref/vs2012/VC/include/ostream(811): (col. 4) rema
rk: loop was not parallelized: existence of parallel dependence
//sptnap01a.nh.intel.com/wref1/ref/vs2012/VC/include/ostream(798): (col. 4) rema
rk: loop was not vectorized: nonstandard loop is not a vectorization candidate
//sptnap01a.nh.intel.com/wref1/ref/vs2012/VC/include/ostream(811): (col. 4) rema
rk: loop was not vectorized: nonstandard loop is not a vectorization candidate
procedure: flush
procedure: setstate
procedure: operator<<
procedure: std::endl
procedure: put
procedure: assign
procedure: allocate
procedure: _Getal
procedure: _Tidy
procedure: ?_System_object@?$_Error_objects@H@std@@$E
procedure: __sti__?_System_object@?$_Error_objects@H@std@@2V_System_error_cat
egory@2@A
procedure: ?_Iostream_object@?$_Error_objects@H@std@@$E
procedure: __sti__?_Iostream_object@?$_Error_objects@H@std@@2V_Iostream_error
_category@2@A
procedure: ?_Generic_object@?$_Error_objects@H@std@@$E
procedure: __sti__?_Generic_object@?$_Error_objects@H@std@@2V_Generic_error_c
ategory@2@A
procedure: ~failure
procedure: failure
procedure: failure
procedure: default_error_condition
procedure: message
procedure: name
procedure: message
procedure: name
procedure: message
procedure: name
procedure: system_error
procedure: equivalent
procedure: equivalent
procedure: default_error_condition
procedure: runtime_error
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.
-out:hello.exe
hello.obj
!%
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Judith,
Why is cout << even considered a candidate for parallelization???
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Judith Ward (Intel) wrote:
It is normal for -Qpar-report:2 to print out the procedure names. It is not normal for it to cause a build failure.
I can't reproduce the build failure. Please provide the complete list of compilation options you are using... Does the build failure go away if you remove just the -Qpar-report:2 switch or all three of these switches?
thanks
Judy
The build failure go away if I remove just the -Qpar-report:2 switch !
Here is the compilation options I am using:
[cpp]
Configuration Properties:
Platform Toolset:Intel C++ Compiler XE 14.0
IDE: Microsoft Visual Studio 2012
Configuration: Release
Intel Options:
Intel Debugging:
Number of Intel Cilk Plus Threads: [n/a]
Intel Performance Libraries:
Use IPP: No
Use MKL: No
Use TBB: No
Instrument for use with Intel Threading Analysis Tools: No
C/C++
Add Processor-Optimized Code Path: None
Additional Include Directories:
Additional Options:/Qpar /Qvec-report:2 %(AdditionalOptions)
Additional Options for MIC Offload Compiler:
Analyze Files Individually: No
Analyze Include Files: No
ASM Lisr Location: $(IntDir)
Check Dangling Pointers: None
Check Pointers: None
Compile As: Default
Diagnostics File: $(IntDir)$(TargetName).diag
Disable All Intel Language Extensions: No
Disable Function Splitting: No
Disable Precompiled Header Messages: No
Disable Specific Diagnostics:
Emit Diagnostics to File: No
Emit Guided Auto Parallelism Diagnostics to File: No
Emit Optimization Diagnostics to File: No
Enable C++0x Support: No
Enable C99 support: No
Enable Function-Level Linking: Yes (/Gy)
Enable Intrinsic Functions:Yes (/Oi)
Enable Matrix Multiply Library Call: Default
Enable Use of ANSI Aliasing Rules in Optimizations: No
Error Limit:
Favor Size Or Speed: Neither
Floating Point Expression Evaluation: Default
Flush Denormal Results To Zero: No
Force Conformance in For Loop Scope: Yes (/Zc:forScope)
Guided Auto Parallelism Analysis: Disable
Guided Auto Parallelism Diagnostics File: $(IntDir)$(TargetName).gap
Intel Processor-Specific Optimization: None
Interprocedural Optimization: Multi-File (/Qipo)
Level of Static Analysis: None
Loop Unrolling:
Mode of Static Analysis: None
Multi-processor Compilation: No
OpenMP Support: No
Optimization Diagnostic Level: Disable
Optimization Diagnostic Phase: All optimizer phases
Optimization Diagnostic Routine:
Optimization Diagnostics File: $(IntDir)$(TargetName).rep
Optimize For Windows Application: No
Parallelization: No
Precompiled Header: Not Using Precompiled Headers
Precompiled Heade File: stdafx.h
Processor Definitions: WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
Recognize The Restrict Keyword: No
Replace Intel Cilk Plus Keywords With Serial Equivalents: No
Static Analysis Results Directory: My Inspector XE Results - $(ProjectName)
Treat Enumerations As Known Ranges: No
Turn off Checking for Undimensioned Arrays: No
Unmask Floating Point Exceptions: No
Use Intel Optimized Headers: No
Vectorizer Diagnostic Level: Default
ALL Options:
/GS /W3 /Gy /Zc:wchar_t /Zi /O2 /Fd"x64\Release\vc110.pdb" /D "WIN32" /D "NDEBUG" /D "_CONSOLE"
/D "_UNICODE" /D "UNICODE" /Qipo /Zc:forScope /Oi /MD /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" /Fp"x64\Release\ImageReconstruction.pch"
Linker:
Interprocedural Optimization: Yes
Assembler Output: No Listing
ASM List Location: [n/a]
Enable COMDAT Folding: Yes (/OPT:ICF)
Enable Incremental Linking: No (/INCREMENTAL:NO)
Enable User Account Control(UAC):Yes (/MANIFESTUAC:)
Object File Name: [n/a]
ALL Options:
/OUT:"D:\zhanghuiwork2\ImageReconstruction\x64\Release\ImageReconstruction.exe" /MANIFEST /NXCOMPAT /PDB:"D:\zhanghuiwork2\ImageReconstruction
\x64\Release\ImageReconstruction.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib"
"shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Release\ImageReconstruction.exe.intermediate.manifest" /OPT:ICF /NOLOGO /TLBID:1
[/cpp]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It appears that when you have auto-parallelization (and no OpenMP nor Cilk++ parallelization), and ask for the auto-parallelizer diagnostic report 2, that then the error occurs. There is no benefit in asking for this report when there is no data for this report, but the request should not present itself as an error.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I duplicated the issue within VS2012 IDE with "release" config with the "/Qpar /Qpar-report:2 /Qvec-report:2" options . It seems a bug in our IDE integration. I'll report it.
Thanks for the reproducible testcase (options).
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Additional note to this issue. Although the output says "build failed", but it does generate the output file "main.exe".
Jennifer
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page