Possible Intel C++ 14.0 compiler bug - stack corruption

Possible Intel C++ 14.0 compiler bug - stack corruption

When switching from the Intel C++ 13 compiler 14.0 I started seeing some stack corruption errors, after narrowing it down to a minimalist example I can not see that it is anything other than a new compiler bug. In the attached Visual Studio 2012 project the stack corruption only occurrs if you place a breakpoint in line 7 of TurtleParser.cpp and only with the Intel C++ 14.0 compiler. If you try the example with Intel Compiler C++ 13 or the Visual Studio compiler it works fine. Also, the stack corruption does not happen if line 14 of TurtleParser.cpp is commented out, even though this line of code is never called by any code.

Tested on Microsoft Visual Studio Professional 2012 Version 11.0.60610.01 Update 3.

Can others confirm?

Downloadapplication/zip turtle.zip30.78 KB
9 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Does it happen in Debug or Release configuration?

I have only tested it in Debug mode.

I wasn't able to build the attached solution. For example, parts of the source are missing (some q--x files) and pre-build event files. 

You must install Quex first, it's a lexer. https://sourceforge.net/projects/quex/files/DOWNLOAD/

Hi Inge

I am getting the following error when I try to reproduce this issue:
1>------ Rebuild All started: Project: TurtleLexer (Intel C++ 14.0), Configuration: Debug Win32 ------
1>  'python' is not recognized as an internal or external command,
1>  operable program or batch file.
1>  quex_turtle_TurtleLexer.cpp
1>C:\Program Files (x86)\quex/quex-0.64.8/quex/code_base/buffer/converter/icu/special_headers.h(38): error : cannot open source file
1>    #include "unicode/utypes.h"   /* Basic ICU data types */
1>                                                            ^
1>icl : error #10298: problem during post processing of parallel object compilation
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Where do I get these ICU specific header? Can you share the pointer for the same.

Thanks and Regards

I have the same error related to the breakpoints using ICC 14.0 with Visual Studio 2012 Update 3. Does anybody know any workarounds?

I did some research of this problem. It looks like ICC 14.0 sometimes produces wrong symbols information. There are 2 attachments. I've set intrinsic breakpoint "__debugbreak()". Then after it was hit, I made a crashdump from Task Manager. Second attachment is a WinDbg screenshot with the similar disassembly. LEA instruction was corrupted by IDE breakpoint!

If you are very attentive, you can see in the attachment 1, that "int 3" instruction is followed by "__debugbreak(); line and "QCoreApplication::arguments()" appears in the middle of the call (i.e. after "push eax").


Downloadimage/png step1.png41.93 KB
Downloadimage/png step2.png42.93 KB


Anoop Madhusoodhanan Prabha (Intel) wrote:

Where do I get these ICU specific header? Can you share the pointer for the same.

Thanks and Regards

ICU, I think I use v4.9 on my system:

Also, Python v2.7.5 is required by Quex:

I'm sorry for the bloathed minimalist example, but I've atleast narrowed it down from 100k+ lines of code where it first appeared :) and it was hard to pin down less bloathed than this.

Leave a Comment

Please sign in to add a comment. Not a member? Join today